3.2 Docker的基本操作

一、Docker操作镜像

  1. 镜像名称一般分两部分组成:[repository]:[tag],比如:mysql:5.7

  2. 命令:

    1. 从本地构建镜像:docker build 前提:本地存在Dokerfile文件

    2. 拉取镜像:docker pull

    3. 查看本地已有镜像:docker images

    4. 删除镜像:dcker rmi

    5. 分享镜像:

      1. 推送到镜像服务器:docker push

      2. 镜像保存成压缩包:docker save

      3. 将压缩包还原成镜像:docker load

    备注:可以通过 docker [内容] --help查看帮助文档

二、Dcoker操作容器

  1. 命令

    1. 创建容器:docker run

    2. 暂停容器:docker pause

    3. 从暂停恢复容器:docker unpause

    4. 停止容器:docker stop

    5. 从停止恢复容器:docker start

    6. 查看所有运行的容器:docker ps [-a] -a是看所有的容器

    7. 查看容器运行日志:docker logs

    8. 进入容器执行命令:docker exec

    9. 删除容器:docker rm

  2. 运行详述

    1. 比如:docker run --name nginxName -p 80:80 nginx

      解释:docker run:创建并运行一个容器

      --name:给容器起一个名字,这里为nginxName

      -p:将宿主机端口与容器端口进行映射,冒号左侧是宿主机端口,右侧是容器端口,容器端口基于服务而定,一般来说是固定的

      -d:后台运行容器

      nginx:镜像名字

    2. 持续监控日志:docker logs -f nginxName

      备注:对nginxName容器持续进行日志监控

  3. 进入容器,修改文件

    1. 进入容器:docker exec -it nginxName bash

      解释:docker exec:进入容器内部,执行一个命令

      -it:给当前进入的容器创建一个标准输入、输出终端,允许我们与容器交互

      nginxName:要进入的容器的名称

      bash:进入容器后执行的命令,bash是一个linux终端交互命令

    2. 退出容器:exit

    注意:这个操作是不建议的,因为以后会出问题

三、Docker操作数据卷

  1. 容器与数据耦合的问题

    1. 不便于修改

    2. 数据不可服用

    3. 升级维护困难

  2. 数据卷(volume)是一个虚拟目录,指向宿主机文件系统中的某个目录

    1. 宿主机文件系统存放位置:/var/lib/docker/volume/

    2. 每创建一个数据卷,都会在上面的目录下创建一个目录

  3. 操作命令

    1. docker volume [COMMAND]

      备注:docker volume是数据库按操作

      [COMMAND]确定下一步操作

    2. [COMMAND]示例

      1. create:创建一个volume

      2. inspect:显示一个或多个volume信息

      3. ls:列出所有的volume

      4. prune:删除未使用的volume

      5. rm:删除一个或多个指定的volume

  4. 将数据卷挂载到容器中

    1. 我们创建容器时,可以通过-v参数来挂载一个数据卷到某个容器目录

    2. 举例:docker run --name nginxName -v html:/root/html -p 80:80 nginx

      备注:-v html:/root/htm:把html数据卷挂载到容器内的/root/html这个目录中

      ​ 容器内的目录可以在DockerHub官网上查看

      ​ 如果数据卷不存在,创建容器时候可以自动创建

  5. 宿主机目录直接挂载到容器中

    1. 语法:-v [宿主机目录]:[容器内目录]-v [宿主机文件]:[容器内文件]

      备注:目录以及文件全部需要提前手动创建

最后更新于

这有帮助吗?