二、Docker相关指令

引擎和镜像相关命令

  1. 引擎相关命令
    docker info 查看docker相关信息
    docker version 查看docker版本信息
    docker --help 或 docker 查看docker的帮助 该命令很有用
  2. 镜像相关操作
  • docker images 查看本地当前的镜像
    在这里插入图片描述

  • 下载镜像

    1. docker pull 镜像名:tag
      在 https://hub.docker.com/ 先搜索要下载的镜像是否存在
      docker pull mysql:8.0
    2. docker pull 镜像名:DIGEST:(摘要)
      docker pull mysql:DIGEST:sha256:faa0f261263965c7e4e80dfd1ba5510d53d41d16d3cf944f75a9add47ddf9e00
  • 使用命令搜索镜像
    docker search mysql
    docker search mysql:8.0

  • 查看命令参数
    docker image --help

  • 删除镜像
    docker image rm 镜像:tag | 镜像ID
    强删 docker image rm -f 镜像:tag | 镜像ID
    强删 docker rmi -f 镜像:tag | 镜像ID

  • 查看某类镜像
    docker images mysql

  • 显示所有镜像
    docker images -a

  • 只显示所有的镜像ID
    docker images -q

  • 删除所有镜像
    docker rmi -f $(docker images -q)

容器相关命令

  1. 运行一个容器
    docker run 镜像名:tag | 镜像ID

  2. 导入tar格式镜像文件
    docker load -i tar镜像文件名

  3. 查看当前正在运行的容器
    docker ps
    在这里插入图片描述

  4. 宿主机端口与容器端口映射
    docker run -p 宿主机端口:容器端口 镜像名:tag | 镜像ID
    docker run -p 8080:8080 tomcat:jdk8-corretto
    在这里插入图片描述

  5. 以后台方式运行容器 加 -d 参数
    docker run -d -p 8080:8080 tomcat:jdk8-corretto

  6. 以后台运行的方式并添加端口映射,指定容器名称 运行一个容器
    docker run -d -p 宿主机端口:容器端口(可以写多个-p 映射多个端口) --name 容器名称 镜像名:tag | 镜像ID
    docker run -d -p 8081:8080 --name tomcat01 tomcat:jdk8-corretto
    在这里插入图片描述

  7. 查看当前正在运行的容器
    docker ps 查看当前正在运行的容器
    docker ps -a 查看所有的容器 包括已经停止了的
    docker ps -q 查看正在运行的容器的ID
    docker ps -aq 查看所有的容器ID
    可使用docker ps --help命名查看ps命令能携带的参数

  8. 停止 重启容器
    docker start 容器ID | 容器名称 ----启动容器
    docker restart 容器ID | 容器名称 ----重启容器
    docker stop 容器ID | 容器名称 ----正常停止容器
    docker kill 容器ID | 容器名称 ----立即停止容器

  9. 删除容器
    docker rm 容器ID | 容器名称 ----删除停止的容器
    docker rm -f 容器ID | 容器名称 ----强制删除一个容器 包括正在运行的
    docker rm -f $(docker ps -aq) ----删除所有的容器

  10. 查看容器日志
    docker logs 容器ID | 容器名称 ---- 显示一屏的日志
    docker logs -f 容器ID | 容器名称 ----- 显示实时日志 容器必须启动
    docker logs -tf 容器ID | 容器名称 ----- 显示实时日志 并添加时间戳
    docker logs --tail 5 容器ID | 容器名称 ------显示日志最后N行

  11. 查看容器内的进程
    docker top 容器ID | 容器名称

  12. 与容器内部进行交互
    docker exec -it 容器ID | 容器名称 bash ----进入容器内部的命令行
    exit ----从容器内部的命令行退出到宿主机系统

  13. 宿主机系统与容器的文件传输
    docker cp (容器ID | 容器名称):容器内文件路径 宿主机系统中路径
    docker cp c3358f23a2a1:/usr/local/tomcat/RUNNING.txt ./RUNNING.txt -----将文件从容器拷贝到宿主机
    docker cp 宿主机系统中文件路径 (容器ID | 容器名称):容器内路径
    docker cp test.html c3358f23a2a1:/usr/local/tomcat/webapps -----将宿主机文件拷贝到容器中

  14. 查看容器内部细节
    docker inspect 容器ID | 容器名称

  15. 数据卷 volume
    作用:实现宿主机系统与容器之间的文件共享
    自定义数据卷目录
    docker run -d -p 8080:8080 -name tomcat1 -v 宿主机绝对路径:容器目录 镜像名:tag | 镜像ID
    docker run -d -p 8081:8080 --name tomcat2 -v /root/apps:/usr/local/tomcat/webapps tomcat:jdk8-corretto

    自动数据卷目录
    docker run -d -p 8081:8080 --name tomcat2 -v aa:/usr/local/tomcat/webapps tomcat:jdk8-corretto
    注意:
    1.上面命令中的aa代表一个数据卷名字,可以随便写,当目录不存在时docker会自动创建这个目录
    2.同时会将容器中对应的目录下的内容拷贝到aa目录中
    3.aa目录默认会创建到 /var/lib/docker/volumes/ 路径下

  16. 将容器打包成一个新的镜像
    docker commit -m “描述” -a “作者” 容器ID|容器名称 镜像名称:标签
    docker commit -m “test container deploy” -a “z_s” 7a7edffb7c45 test_tomcat:01

  17. 将镜像备份出来
    docker save 镜像名称:tag -o 文件名称
    docker save test_tomcat:01 -o test_tomcat-01.tar

    使用命令导入镜像
    docker load -i test_tomcat-01.tar

Docker中容器之间的网络配置

  1. 为什么提供网络功能
    Docker 允许通过外部访问容器或容器互联的方式来提供网络服务。
    当Docker引擎启动时,会在宿主机系统上创建一个名称为docker0的虚拟网卡,地址为 172.17.0.1
    在这里插入图片描述
    当启动一个容器时,会为容器生成一个ip地址 , 使用 docker inspect 容器ID|容器名称 查看容器信息
    在这里插入图片描述
    再启动一个容器,会分配另外一个ip地址
    在这里插入图片描述
    从上面两图可以看出,默认情况下,两个容器在同一个网段。

  2. docker容器与宿主机通信机制
    在这里插入图片描述

    以上默认的网桥配置会存在一个问题,就是多个项目使用同一个网桥时,网络带宽会相互影响
    一般的使用方式是,为每一个项目创建一个网桥。

  3. 创建一个网桥
    docker network create tomcat-work
    在使用 docker network ls 命令查看,多了一个网桥
    在这里插入图片描述
    此时查看宿主机的网卡信息 ip addr,会多出一个虚拟网卡
    在这里插入图片描述

  4. 删除网桥
    docker network rm 网桥名称

  5. 查看网桥详情
    docker inspect 网桥名称

  6. 启动容器时,指定网桥
    docker run -d -p 8080:8080 --name tomcat01 --network tomcat-network test_tomcat:01
    此时查看容器信息 docker inspect tomcat01
    在这里插入图片描述

再使用上面的网桥启动一个容器
docker run -d -p 8082:8080 --name tomcat02 --network tomcat-network test_tomcat:01
在这里插入图片描述
使用network 指定网桥时,网桥必须存在

数据卷

  1. 作用
    用来实现容器与宿主机之间的数据共享
  2. 数据卷的特点
    数据卷可以在容器之间共享和重用
    对数据卷的修改会立即影响到容器
    对数据卷的修改不会影响到镜像
    数据卷默认会一直存在,即使容器被删除
  3. 创建只读数据卷 加 ro
    docker run -d -p 8080:8080 --name tomcat01 -v /root/apps/:/usr/local/tomcat/webapps/:ro test_tomcat:01
  4. 查看数据卷
    docker volume ls
  5. 查看数据卷细节
    docker volume inspace 卷名
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值