docker常用命令

帮助命令
  • 查看docker版本信息:docker version

  • 显示docker系统信息:docker info

  • 命令帮助:–help

镜像命令
  • 列出本地主机上的镜像:docker images

    • 列出所有镜像:docker images -a

    • 只显示镜像id:docker images -q

    • 显示镜像摘要信息:docker images -digests

  • 搜索镜像:docker search

  • 下载远程仓库的镜像:docker pull

    • 指定版本下载(MySQL5.7仓库要有的):docker pull mysql:5.7
  • 删除镜像:docker rmi

    • 删除全部:docker rmi $(docker images -aq)

    • 删除多个:docker rmi 镜像名:版本号 镜像名:版本号

    • 根据镜像id删除:docker rmi 镜像ID

  • 打包镜像:docker save -o 压缩文件名 镜像ID:版本号

  • 加载镜像文件:docker load -i 压缩文件名

容器命令
  • 新建容器并运行:docker run -参数 镜像名 /bin/bash

    • –name给容器一个指定的名字

    • -i 交互模式运行容器

    • -t 给容器分配一个终端

    • -P 随机端口

    • -p 指定端口

    • -d 允许后台运行

    • -rm 用完这个容器就删除

    • 数据卷

      • -v 容器目录:匿名挂载

      • -v 数据卷名:容器目录 具名挂载

      • -v 宿主机目录:容器目录 指定目录挂载

      • 容器B挂载到数据卷容器A上:docker run -it –name 容器B名 –volumes-from 容器A名 镜像:版本号

  • 退出容器

    • 停止退出:exit

    • 不停止退出:Ctrl + Q + P

  • 启动容器:docker start 容器ID/容器名

  • 重启容器:docker restart 容器ID/容器名

  • 停止容器:docker stop 容器ID/容器名

  • 强制停止容器:docker kill 容器ID/容器名

  • 删除容器

    • 删除指定容器:docker rm 容器ID

    • 删除所有容器:

      • docker rm -f $(docker ps -aq)

      • docker ps -aq | xargs docker rm

    • 列出所有运行容器:docker ps -参数

      • -a 显示正在运行容器 + 历史运行过的容器

      • -l 显示最近创建的容器

      • -n=? 显示最近n个创建的容器

      • -q 只显示容器编号

    • 查看容器状态:docker status 容器ID

    • 设置启动docker时也启动容器:docker update 容器名 –restart=always

Dockerfile
  • 提交容器,成为镜像:docker commit -a=“作者名” -m=“描述” 容器ID 自己命名容器

  • 根据自己写的脚本文件生产镜像:docker build -f 哪个目录下的哪个文件 -t 名字:版本号

    • docker build -f ./tomcatfile -t liang_centos:1
  • 常用关键字

    • FROM 基础镜像

    • MAINTAINER 作者信息

    • RUN 构建容器时执行什么命令

    • CMD 启动容器时默认命令,执行命令后有参数会追加

    • COPY 复制文件到镜像中

    • ADD 复制文件到镜像中,如果是压缩包会自动解压

    • ENV 配置环境变量

    • VOLUME 挂载数据卷

    • EXPOSE 开放端口

    • WORKDIR 工作目录(容器一级目录)

docker网络
  • 查看网关:ip addr

  • 服务名访问:–link(docker run -d –name tomcat1 –link tomcat2 tomcat 然后tomcat1就可以ping通tomcat2原理是配置了hosts文件)

  • 查看网络:docker network ls

  • 查看网络具体配置:docker network inspect 网络ID

  • 创建网卡mynet:docker network create –driver bridge –subnet 192.168.0.0/16 –gatway 192.168.0.1 mynet

    • –driver bridge:网络模式选择默认的桥接

    • –subnet:子网范围

    • –gatway:网关地址

    • mynet:网络名

  • 网络连通:docker network connent mynet tomcat1(将tomcat1容器连通到mynet网络)

docker compose
  • 查看版本:docker-compose-version

  • 启动应用:docker-compose up -d(带上-d就是后台启动)

  • 关闭应用:docker-compose down 或 Ctrl + C

docker swarm
  • 初始化:docker swarm init

    • 把172.18.80.80这个地址的docker设为swarm的leader(事务节点):docker swarm init –advertise -addr 172.18.80.80
  • 查看节点:docker node ls

  • 生成事物节点:docker swarm join-token manager

  • 生成工作节点:docker swarm join-tokrn worker

  • 离开所在的swarm:docker swarm leave

  • 服务

    • 创建服务:docker service create -p 8080:80 –name my-nginx nginx(与run指令相似)

    • 查看服务:docker service ls

    • 查看详细服务:docker service ps 服务名

    • 动态扩展容:docker service update–replicas 数量 服务名

    • 动态扩缩容:docker service scale 服务名=数量

    其他命令
  • 查看日志:docker logs -tf -tail 数字 容器ID

    • -t 显示时间戳

    • -f 打印最新日志

    • –tail 数字 打印多少条

  • 查看容器中运行进程信息:docker top 容器ID

  • 查看容器元数据:docker inspect 容器ID

  • 进入正在运行的容器

    • docker attach 容器ID

    • docker exec -it 容器ID /bin/bash

  • 把容器中的文件拷贝到宿主机中:docker cp 容器ID: /容器文件位置 /宿主机目的位置

  • 开机时启动xx容器: docker update xx容器名 –restart=always


  转载请注明: Mr.Wangの博客 docker常用命令

 上一篇
js处理时间相关的问题 js处理时间相关的问题
一、获取今天之前所有近半年的1号和15号的时间,用于折线图的展示假如今天是2023年12月11号,获取今天之前所有近半年的1号和15号的时间,即:2023-12-01,2023-11-15,2023-11-01… 最直接的思路,获取到当前时
2023-12-11
下一篇 
服务器相关指令等总结 服务器相关指令等总结
磁盘剩余量查看磁盘剩余量[root@wzm ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/vda1 40G 7.1G 31G 19% /
2023-11-24
  目录