Docker常用命令总结
| 帮助命令 | |
| docker 命令 --help | 帮助命令 | 
| 镜像命令 | |
| docker version | 显示docker的版本信息 | 
| docker login -u + dockerhub用户名 | 登录dockerhub远程仓库 | 
| docker logout | 退出登录 | 
| docker info | 显示docker的系统信息,包括镜像和容器数量等 | 
| docker images | 查看所有本地主机上的镜像 | 
| docker images -a | 查看所有本地主机上的镜像 | 
| docker images -q | 只显示镜像的id | 
| docker images -aq | 列出所有镜像的id | 
| docker search + 镜像名(mysql nginx) | 搜索镜像 | 
| docker search --filter | 过滤搜索镜像 | 
| docker search --filter=STARS=3000 | 搜索出STARS大于3000的mysql镜像 | 
| docker pull + 镜像名(mysql nginx) | 下载镜像,默认下载最新版本 | 
| docker pull + 镜像名:版本号 | 下载镜像,指定版本 | 
| docker rmi -f + 镜像id | 删除镜像 | 
| docker rmi -f + 镜像id1 镜像id2 镜像id3 | 删除多个镜像 | 
| docker rmi -f $(docker images -aq) | 删除所有镜像 | 
| docker build -f + 文件名 + -t + 镜像名:版本号+ . | 自定义镜像,构建Dockerfile文件,注意最后加一个. -f 说明当前是哪个文件需要构建。如果文件名为Dockerfile ,就可以不用-f来指定 | 
| 提交镜像到远程仓库的步骤:1.docker commit 2.docker tag 3.docker push 2和3也可以一步完成! | |
| docker commit -m="提交的描述信息" -a="作者" 容器id 目标镜像名(自己命名):【TAG】(自己命名) | 提交镜像 | 
| docker tag +镜像id +dockerhub用户名/自定义镜像名:tag | 重命名镜像-----docker 比如:docker tag e77b61ff8ac3 xxx1361/tomcat:1.0 | 
| docker push + docker tag重命名后的镜像名和版本号 | push镜像到dockerhub,使用经过docker tag重命名后的镜像 比如:docker push xxx1361/tomcat:1.0 | 
| docker push + dockerhub用户名/自定义镜像名:【tag】自定义版本号 | push镜像到dockerhub,未使用经过docker tag重命名后的镜像 | 
| docker tag + 镜像id+阿里云镜像服务新建仓库时生成的目录:版本号 | 重命名镜像-----aliyun 比如:docker tag e77b6ff8ac3 registry.cn-hangzhou.aliyuncs.com/test/tomcat-test:2.0 | 
| docker push + tag重命名后的镜像名和版本号 | push到阿里云镜像仓库,使用经过docker tag重命名后的镜像,比如:docker push registry.cn-hangzhou.aliyuncs.com/test/tomcat-test:2.0 | 
| docker push + 镜像id +镜像目录(每次创建镜像仓库,阿里云生成的目录):【tag】自定义版本号 | push到阿里云镜像仓库,未使用经过docker tag重命名后的镜像 | 
| docker pull + tag重命名后的镜像名和版本号(docker images查看) | docker pull registry.cn-hangzhou.aliyuncs.com/test/tomcat-test:2.0 | 
| 容器命令 有了镜像才可以创建容器 | |
| docker create + 镜像名 | 新建容器,不启动 | 
| docker run 【可选项】+ 镜像名 | 新建容器并启动 | 
| docker run --name nginx01 -p 2233:80 nginx | 启动多个容器时,使用--name进行区分容器,2233表示可以通过2233端口访问docker中nginx的80端口中的内容 | 
| docker run -d + 镜像名 | 以后台方式运行 | 
| docker run -it + 镜像名 | 使用交互方式运行,可进入容器查看内容 | 
| docker run -p 主机端口:容器端口 + 镜像名 | 指定容器的端口 | 
| docker run -P + 镜像名 | 随机指定端口 | 
| docker run -it centos /bin/bash | 以交互方式创建并启动主机名为centos的容器 | 
| docker ps | 列出当前正在运行的容器 | 
| docker ps -a | 列出当前正在运行的容器+历史运行过的容器 | 
| docker ps -n=? | 列出最近运行的几个容器 | 
| docker ps -q | 显示所有正在运行的容器的id | 
| docker ps -aq | 列出所有容器的id,包括未运行和运行过的容器 | 
| exit | 退出容器,容器停止 | 
| Ctrl+P+Q | 退出容器,容器不停止 | 
| docker rm 容器id | 删除指定的容器,不能删除正在运行的容器,可以使用rm -f强制删除 | 
| docker rm -f $(docker ps -aq) | 强制删除所有容器 | 
| docker diff + 容器id | 查看容器变化 | 
| docker start + 容器id | 启动容器 | 
| docker restart + 容器id | 重启容器 | 
| docker stop + 容器id | 停止当前正在运行的容器 | 
| docker kill + 容器id | 强制停止当前容器,如果docker stop失败时可以使用docker kill | 
| docker pause + 容器id | 暂停容器 | 
| docker unpause + 容器id | 取消暂停容器 | 
| docker logs | 打印日志 | 
| docker logs -tf | 查看包含时间戳和输出内容在内的日志信息 | 
| docker logs -tail +条数 | 查看指定条数的日志信息 | 
| docker top + 容器id | 查看容器中的进程信息 | 
| docker inspect + 容器id | 查看镜像元数据 | 
| docker exec -it + 容器id /bin/bash | 方式1:进入已运行的容器。进入容器后开启另一个新的终端,可以在里面操作【常用】 | 
| docker attach + 容器id | 方式2:进入已运行的容器。进入正在执行的终端,不会启动新的进程 | 
| ps -ef | 查看容器中运行的进程,进入运行的容器后,在容器中使用 | 
| touch+ 文件名.文件类型 | 创建文件 | 
| docker cp + 容器id:容器内路径 目的主机路径 | 从容器中拷贝文件到主机上 | 
| curl+地址:端口号 | 用于测试访问服务 | 
| docker stats | 查看CPU的状态 | 
| docker volume ls | 查看所有卷 | 
| docker history + 镜像id | 查看镜像的构建过程 | 
| 数据卷挂载 | |
| docker run -it -v 宿主机目录:容器内目录 | 指定路径挂载 | 
| docker run -d -v + 数据卷名:容器内路径 | 具名挂载 | 
| docker run -d -v + 容器内路径 | 匿名挂载 | 
| VOLUME ["自定义名字","自定义名字 ","自定义名字"] | 通过dockerfile文件自动挂载,挂载目录自动生成 | 
| docker volume ls | 查看所有卷 | 
| docker volume inspect + 数据卷名 | 查看数据卷的详细信息。包括卷挂载的目录等。 | 
| 所有的docker容器内的卷,没有指定目录的情况下,都是在/var/lib/docker/volumes/卷名/_data下 | |
| docker run -e | 配置密码 比如:docker run -d -p 3300:3306 -e MYSQL_ROOT_PASSWORD=123456 --name mysql01 mysql:8.0 | 
| 数据卷容器--------实现容器内的卷数据同步,前提是容器内有两个数据卷 | |
| docker run -it --name=docker02 --volumes-from docker01 + 镜像id | 启动并将docker02挂载到docker01 | 
| docker网络 | |
| docker network ls | 查看所有的网络 | 
| docker --link | 容器互联 (不建议使用) 比如:docker run -d -P --name tomcat02 --link tomcat01 tomcat,这样tomcat02就可以ping通tomcat01 | 
| docker --net | 指定网络模式,默认是bridge ,对应网桥为docker0 docker run -d -P --name tomcat01 --net host tomcat | 
| docker network create + 配置信息 + 网络名 | 自定义网络 比如:docker network create --driver bridge --subnet 192.168.0.0/16 --gateway 192.168.0.1 mynet | 
| docker network connect + 网络名 + 容器名 | 网络连通 连接一个容器到网络,一个容器两个ip地址;就好比阿里云服务器:公网IP、私网IP | 
| apt update | 更新软件命令 | 
| apt install -y iproute2 | 安装iproute2工具包 iproute2包含了ifconfig、arp、route、netstat等命令 | 
| apt install -y iputils-ping | 安装ping命令 | 
| 容器编排(docker-compose ) | |
| docker-compose up | 前台启动compose | 
| docker-compose up -d | 后台启动compose | 
| docker-compose up --build | 构建并启动compose | 
| docker-compose down Ctrl+C | 停止compose | 
| 集群的管理和编排(docker-swarm) | |
| yum install -y gcc | 在服务器进行同步操作。 集群时,先执行这个命令,就可以同时在几台服务器上安装工具 | 
| docker swarm init --advertise-addr + 地址 | 生成主节点,初始化节点 | 
| docker swarm join-token manager | 获取/生成manager(主)令牌 | 
| docker swarm join-token worker | 获取/生成worker(从)令牌 | 
| docker swarm join --token + 令牌 | 加入节点 | 
| docker node ls | 查看节点 | 
| docker swarm leave | 离开集群 | 
| docker service --help | 查看服务的帮助命令 | 
| docker service create -p 宿主机端口:容器端口 --name + 自定义服务name + 镜像名 | 启动服务 | 
| docker service ps + 服务名 | 查看正在运行的服务 | 
| docker service inspect + 服务名 | 查看服务的详细信息 | 
| docker service update --replicas + 数量 + 服务名 | 服务扩缩容 | 
| docker service scale 服务名=数量 | |
| docker service rm + 服务名 | 移除服务 | 
| docker service create --mode replicated --name + 服务名 镜像:tag | 服务以副本服务的方式运行,默认是replicated | 
| docker service create --mode global --name + 服务名 镜像:tag | 服务以全局服务的方式运行 | 
本文来自博客园,作者:{jkal},转载请注明原文链接:https://www.cnblogs.com/jkal/p/16672550.html
 
                    
                     
                    
                 
                    
                
 
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号