• Docker基本操作和相关命令


    一、镜像相关命令

    • 镜像名称一般分两部分组成:[repository]:[tag]
    • 在没有指定tag时,默认是latest,代表最新版本的镜像
      镜像操作有哪些?
    • docker images 查看镜像
    • docker rmi 删除镜像
    • docker pull 拉取镜像
    • docker push 推送镜像
    • docker save 保存镜像
    • docker load 加载镜像
    • docker xx --help 查看命令如何使用
      在这里插入图片描述

    二、容器相关命令

    • docker run + 镜像名称 运行容器
    • docker pause 暂停
    • docker unpause 恢复运行
    • docker stop 停止运行
    • docker start 重新开始运行
    • docker exec 进入容器执行命令,命令是docker exec -it [容器名] [要执行的命令],exec命令可以进入容器修改文件,但是在容器内修改文件是不推荐的,一是不方便,二在容器中的修改没有记录。
    • docker logs 查看容器运行日志,添加 -f 参数可以持续查看日志
    • docker ps 查看所有运行的容器及状态,添加-a参数查看所有状态的容器
    • docker rm 删除容器,不能删除运行中的容器,除非添加 -f 参数
      在这里插入图片描述
      案例1:创建运行一个Nginx容器
      步骤一:去docker hub查看Nginx的容器运行命令
    docker run --name containerName -p 80:80 -d nginx
    
    • 1

    命令解读:

    • docker run :创建并运行一个容器
    • –name : 给容器起一个名字,比如叫做mn
    • -p :将宿主机端口与容器端口映射,冒号左侧是宿主机端口,右侧是容器端口
    • -d:后台运行容器
    • nginx:镜像名称,例如nginx
      在这里通过宿主机的ip + 80端口 就可以访问容器的80端口,访问到nginx。

    案例2:进入Nginx容器,修改HTML文件内容,添加“传智教育欢迎您”
    步骤一:进入容器。进入我们刚刚创建的nginx容器的命令为:

    docker exec -it mn bash
    
    • 1

    命令解读:

    • docker exec :进入容器内部,执行一个命令
    • -it : 给当前进入的容器创建一个标准输入、输出终端,允许我们与容器交互
    • mn :要进入的容器的名称
    • bash:进入容器后执行的命令,bash是一个linux终端交互命令

    步骤二:进入nginx的HTML所在目录 /usr/share/nginx/html

    cd /usr/share/nginx/html
    
    • 1

    步骤三:修改index.html的内容,这里用不了vi命令,容器中没有。

    sed -i 's#Welcome to nginx#传智教育欢迎您#g' index.html
    sed -i 's###g' index.html
    
    • 1
    • 2

    案例三:创建并运行一个redis容器,并且支持数据持久化
    步骤一:到DockerHub搜索Redis镜像
    步骤二:查看Redis镜像文档中的帮助信息
    步骤三:利用docker run 命令运行一个Redis容器

    docker run --name redis -p 6379:6379 -d redis redis-server --appendonly yes
    
    • 1

    在这里插入图片描述
    案例四:进入redis容器,并执行redis-cli客户端命令,存入num=666

    步骤一:进入redis容器

    docker exec -it redis bash
    
    • 1

    在这里插入图片描述
    步骤二:执行redis-cli客户端命令

    redis-cli
    
    • 1

    在这里插入图片描述
    步骤三:设置数据num=666

    set num 666
    
    • 1

    在这里插入图片描述

    三、数据卷相关命令

    1. 容器与数据耦合的问题:
    在这里插入图片描述
    所以必须想办法解决容器与数据耦合的问题,所以就需要学习数据卷。
    数据卷(volume)是一个虚拟目录,指向宿主机文件系统中的某个目录。
    在这里插入图片描述
    2. 数据卷的作用:
    将容器与数据分离,解耦合,方便操作容器内数据,保证数据安全。
    3. 数据卷操作:

    • docker volume create 创建一个volume
    • docker volume ls 显示一个或多个volume的信息
    • docker volume inspect 列出所有的volume
    • docker volume rm 删除未使用的volume
    • docker volume prune 删除一个或多个指定的volume

    案例1:创建一个数据卷,并查看数据卷在宿主机的目录位置
    步骤一:创建数据卷

    docker volume create html
    
    • 1

    步骤二:查看所有数据

    docker volume ls
    
    • 1

    在这里插入图片描述

    步骤三:查看数据卷详细信息卷

    docker volume inspect html
    
    • 1

    在这里插入图片描述
    4. 挂载数据卷:
    我们在创建容器时,可以通过 -v 参数来挂载一个数据卷到某个容器目录。
    例如:docker run --name mn -v html:/root/html -p 8080:80 nginx

    • docker run :就是创建并运行容器
    • – name mn :给容器起个名字叫mn
    • -v html:/root/htm :把html数据卷挂载到容器内的/root/html这个目录中
    • -p 8080:80 :把宿主机的8080端口映射到容器内的80端口
    • nginx :镜像名称

    案例1:创建一个nginx容器,修改容器内的html目录内的index.html内容
    需求说明:上个案例中,我们进入nginx容器内部,已经知道nginx的html目录所在位置/usr/share/nginx/html ,我们需要把这个目录挂载到html这个数据卷上,方便操作其中的内容。
    步骤:

    1. 创建容器并挂载数据卷到容器内的HTML目录
    docker run --name mn -v html:/usr/share/nginx/html -p 80:80 -d nginx
    
    • 1
    1. 进入html数据卷所在位置,并修改HTML内容
    # 查看html数据卷的位置
    docker volume inspect html
    # 进入该目录
    cd /var/lib/docker/volumes/html/_data
    # 修改文件
    vi index.html
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    ps: 如果容器运行时数据卷volume不存在,docker会帮我们自动创建出来。

    5. docker run 挂载宿主机文件或目录到容器中:

    目录挂载与数据卷挂载的语法是类似的:

    • -v volume名称:容器内目录
    • -v 宿主机文件:容器内文件
    • -v 宿主机目录:容器内目录
      数据卷挂载与目录直接挂载的比较:
    • 数据卷挂载耦合度低,由docker来管理目录,但是目录较深,不好找。
    • 目录挂载耦合度高,需要我们自己管理目录,不过目录容易寻找查看。
  • 相关阅读:
    顺序表存储一元多项式,并实现两个多项式相加运算(C++,无序输入)
    122. 买卖股票的最佳时机 II
    二叉树经典oj面试题
    社区街道治安智慧监管方案,AI算法赋能城市基层精细化治理
    【torch.utils.data.sampler】采样器的解析和使用
    使用idea创建多模块Maven项目(模块间的继承与依赖)
    手写vue3.0 -项目结构初始化
    HTTP协议和HTTPS协议
    鸿鹄工程项目管理系统em Spring Cloud+Spring Boot+前后端分离构建工程项目管理系统
    C++中带默认值的函数参数
  • 原文地址:https://blog.csdn.net/weixin_44925547/article/details/133153497