Docker命令集

104 阅读3分钟

一、docker基础命令:

启动docker

systemctl start docker

设置开机自启动

systemctl enable docker

重启docker

systemctl restart docker

关闭docker

systemctl stop docker

查看docker运行状态————如果是在运行中 输入命令后 会看到绿色的active (running)

systemctl status docker

docker 帮助命令

docker --help
docker pull --help 查找携带参数信息

二、docker镜像命令:

查看 docker 镜像列表

docker images

搜索镜像

docker search 镜像名
docker search --filter=STARS=9000 mysql #搜索 STARS >9000的 mysql 镜像

拉取远程镜像

docker pull 远程仓库ip:端口/imageName:tag 不写tag默认拉取latest,若无latest版本则报错!

运行镜像

docker run 镜像名
docker run 镜像名:Tag

删除镜像————当前镜像没有被任何容器使用才可以删除

docker rmi -f 镜像名/镜像ID
docker rmi -f 镜像名/镜像ID 镜像名/镜像ID 镜像名/镜像ID
docker rmi -f $(docker images -aq) -a 意思为显示全部, -q 意思为只显示ID

强制删除镜像

docker image rm 镜像名称/镜像ID

保存镜像(将我们的镜像 保存为tar 压缩文件 这样方便镜像转移和保存 ,然后 可以在任何一台安装了docker的服务器上 加载这个镜像)

docker save 镜像名/镜像ID -o 主机路径全名
docker save tomcat -o /mytomcat.tar

加载镜像(任何装 docker 的地方加载镜像保存文件,使其恢复为一个镜像)

docker load -i 压缩镜像路径全名
docker load -i /mytomcat.tar

三、docker 容器命令:

查看正在运行的容器列表

docker ps

查看所有容器(包含正在运行 和 已停止的)

docker ps -a

运行容器(随机端口)

docker run -it -d --name aliasName --restart=always 镜像名:Tag /bin/bash

  • -it 表示 与容器进行交互式启动
  • -d 表示后台运行容器(守护式运行,持久化运行容器)
  • --name 给要运行的容器 起的名字
  • --restart=always 容器随docker服务启动而自动启动
  • /bin/bash 交互式运行路径
  • 运行容器的端口只是在容器内开辟的端口,宿主机是无法直接访问容器端口的
  • 需要容器做端口映射(宿主机端口 与 容器端口 绑定),宿主机才能访问容器端口

启动容器

docker start 容器ID/容器名

停止容器

docker stop 容器名/容器ID

重启容器

docker restart 容器ID/容器名

kill 容器

docker kill 容器ID/容器名

删除容器

docker rm -f 容器名/容器ID
docker rm -f 容器名/容器ID 容器名/容器ID 容器名/容器ID
docker rm -f $(docker ps -aq) 删除全部容器

运行容器(容器端口与服务器端口映射)

-p 宿主机端口:容器端口
docker run -itd --name redis002 --restart=always -p 8888:6379 redis:5.0.5 /bin/bash

进入容器

docker exec -it 容器名/容器ID /bin/bash
docker exec -it redis001 /bin/bash
成功进入容器后命令行前缀显示规则:
[user@user ~]# ==> user@容器ID:/data#

退出容器

exit 直接退出 未添加 -d(持久化运行容器) 时 执行此参数 容器会被关闭
Ctrl + p + q 优雅退出 无论是否添加-d 参数 执行此命令容器都不会被关闭

容器文件拷贝

docker cp 容器ID/名称:容器内路径 容器外路径
docker cp 容器外路径 容器ID/名称:容器内路径

容器数据挂载(数据卷挂载)

-v 宿主机文件存储位置:容器内文件位置 -v命令可以多次使用,即一个容器可以同时挂载多个文件
-v 宿主机文件存储位置:容器内文件位置 -v 宿主机文件存储位置:容器内文件位置 -v 宿主机文件存储位置:容器内文件位置

运行一个docker redis 容器 进行 端口映射 两个数据卷挂载 设置开机自启动

docker run -d -p 6379:6379 --name redis505 --restart=always -v /var/lib/redis/data/:/data -v /var/lib/redis/conf/:/usr/local/etc/redis/redis.conf redis:5.0.5 --requirepass "password"

修改容器自启动配置

docker update --restart=always 容器Id/容器名 docker container update --restart=always 容器Id/容器名

更换容器名

docker rename 容器ID/容器名 新容器名

查看容器日志

docker logs -f --tail=rows(rows:要查看末尾多少行,默认all) 容器ID

四、docker仓库操作:

提交构建一个新镜像

docker commit -m="提交信息" -a="作者信息" 容器名/容器ID 提交后的镜像名:Tag

拉取镜像

docker pull 镜像名 #拉取最新latest版本 docker pull 镜像名:tag #拉取指定版本

五、运维操作:

查看docker工作目录

docker info | grep "Docker Root Dir"

查看docker磁盘占用总体情况

du -hs /var/lib/docker/

查看Docker的磁盘使用具体情况

docker system df

删除无用的 容器 和 镜像

docker rm `docker ps -a | grep Exited | awk '{print $1}'`  删除异常停止的容器
docker rmi -f  `docker images | grep '<none>' | awk '{print $3}'`  删除名称或标签为none的镜像

清除所有无容器使用的镜像

docker system prune -a 只要是镜像无容器使用(容器非正常运行)都会被删除,包括容器临时停止