【Docker 常用命令】

帮助文档

1.帮助命令:

#1.查看版本
docker version

#2.查看信息
docker info

#3.帮助命令
docker --help

2.镜像命令:

#1.列出镜像
docker images

#可选项
  -a, --all             Show all images (default hides intermediate images) 常用
      --digests         Show digests
  -f, --filter filter   Filter output based on conditions provided
      --format string   Pretty-print images using a Go template
      --no-trunc        Do not truncate output
  -q, --quiet           Only show numeric IDs                               常用

#例:列出所有镜像的ID
docker images -a -q
docker images -aq

#2.搜索镜像
docker search

#可选项
  -f, --filter filter   Filter output based on conditions provided
      --format string   Pretty-print search using a Go template
      --limit int       Max number of search results (default 25)
      --no-trunc        Do not truncate output

#例:搜索收藏数大于等于3000的mysql镜像
docker search mysql -f=STARS=3000

#3.下载镜像
docker pull

#可选项
  -a, --all-tags                Download all tagged images in the repository
      --disable-content-trust   Skip image verification (default true)
      --platform string         Set platform if server is multi-platform capable
  -q, --quiet                   Suppress verbose output

#例:下载mysql镜像,默认下载最新版,分片下载
docker pull mysql

#等价于以上命令
docker pull docker.io/library/mysql:latest

#指定版本下载
docker pull mysql:5.7

#4.删除镜像
docker rmi

#例:删除指定镜像
docker rmi -f 镜像Id

#删除多个镜像,以空格分隔
docker rmi -f 镜像Id1 镜像Id2 镜像Id3

#删除全部镜像
docker rmi -f $(docker images -aq)

#删除tag为<none>的镜像
docker rmi $(docker images | grep "none" | awk '{print $3}')

3.容器命令:

#1.启动容器
docker run [可选参数] 容器名称

#可选项
--name #容器名字 --name=“容器名字”
-d     #后台方式运行
-it    #使用交互方式运行,进入容器查看内容
-p     #指定容器的端口 
       #四种方式:
       #-p ip:主机端口:容器端口
       #-p 主机端口:容器端口(常用)
       #-p 容器端口
       #容器端口
-P     #随机指定端口

#例:启动并进入容器centos
docker run -it centos /bin/bash

#2.退出容器

#例:退出并停止容器
exit

#退出不停止容器
Ctrl + P + Q

#3.列出正在运行中的容器
docker ps

#可选项
  -a, --all             Show all containers (default shows just running)
  -f, --filter filter   Filter output based on conditions provided
      --format string   Pretty-print containers using a Go template
  -n, --last int        Show n last created containers (includes all states) (default -1)
  -l, --latest          Show the latest created container (includes all states)
      --no-trunc        Don't truncate output
  -q, --quiet           Only display numeric IDs
  -s, --size            Display total file sizes

#例:列出所有容器,包括正在运行的和停止的
docker ps -a

#显示最近创建的容器
docker ps -a -n=1

#显示所有容器编号
docker ps -aq

#4.删除容器
docker rm

#例:删除指定容器,不能删除正在运行的容器,如果要强制删除,则使用 rm -f
docker rm 容器Id

#删除所有容器
docker rm -f $(docker ps -aq)
docker ps -a -q|xargs docker rm -f

#5.其他操作

#启动已经停止的容器
docker start 容器Id

#重启容器
docker restart 容器Id

#停止正在运行的容器
docker stop 容器Id

#强制停止当前容器
docker kill 容器Id

4.其他命令

#1.后台启动
docker run -d centos
#发现问题:后台启动centos,发现容器停止运行
#解释:docker 容器使用后台运行,就必须要有一个前台进程,docker发现没有应用或者没有提供服务,就会自动停止。例如Nginx

#2.查看日志
docker logs

#可选项
      --details        Show extra details provided to logs
  -f, --follow         Follow log output
      --since string   Show logs since timestamp (e.g. 2013-01-02T13:23:37) or relative (e.g. 42m for 42 minutes)
      --tail string    Number of lines to show from the end of the logs (default "all")
  -t, --timestamps     Show timestamps
      --until string   Show logs before a timestamp (e.g. 2013-01-02T13:23:37) or relative (e.g. 42m for 42 minutes)

#例:查看全部日志
docker logs -f -t

#查看10条日志
docker logs -f -t --tail 10 容器Id

#shell脚本,循环输出test日志
docker run -d centos /bin/sh -c "while true;do echo test;sleep 1;done"

#3.查看容器中进程信息,PID:进程Id,PPID:父进程Id
docker top 容器Id

#4.查看镜像元数据
docker inspect 容器Id

#可选项
  -f, --format string   Format the output using the given Go template
  -s, --size            Display total file sizes if the type is container
      --type string     Return JSON for specified type

#5.进入当前正在运行的容器
docker exec -it 容器Id /bin/bash
docker attach 容器Id


#区别:
docker exec    #进入容器后开启一个新的终端,可以在里面操作
docker attach  #进入容器正在执行的终端,不会启动新的进程

#查看进程信息
ps -ef

#5.从容器内拷贝文件到主机上,拷贝文件与容器启停状态无关
docker cp 容器Id:容器内路径 目的主机路径

#例:
docker cp 9ce5dd22002d:/home/temp/test.txt /home/temp

#5.其他命令

#用完即删
docker run -it --rm tomcat

#查看docker状态
docker stats

5.提交命令:

#提交镜像
docker commit

#可选项
  -a, --author string    Author (e.g., "John Hannibal Smith <hannibal@a-team.com>")
  -c, --change list      Apply Dockerfile instruction to the created image
  -m, --message string   Commit message
  -p, --pause            Pause container during commit (default true)

#例:不加tag默认最新版本,使用镜像名的的时候也需要带版本号
docker commit -a "作者" -m "提交描述信息" 容器Id 目标镜像名:[TAG]

docker commit -a "wy" -m "commit test" 71b09a20d54f tomcat-test:1.0.0

6.数据卷命令:

#1.指定路径挂载 -v
docker run -it -v /主机目录:容器目录

#例:测试centos挂载
docker run -it -v /home/test:/home centos /bin/bash

#测试mysql挂载
docker run -d -p 3306:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql-test mysql

#匿名挂载 -v 容器目录
docker run -d -P --name nginx-test -v /etc/nginx nginx

#具名挂载 -v 卷名:容器目录
docker run -d -P --name nginx-test -v nginx-conf:/etc/nginx nginx

#挂载权限:ro/rw,只读/可读可写,相对于容器内来说;ro:容器内只读,宿主机可读写;rw:默认即是rw
docker run -d -P --name nginx-test -v nginx-conf:/etc/nginx:ro nginx

#查看卷信息
docker volume COMMAND

#COMMAND
  create      Create a volume
  inspect     Display detailed information on one or more volumes
  ls          List volumes
  prune       Remove all unused local volumes
  rm          Remove one or more volumes

#查看卷列表
docker volume ls

#查看卷信息
docker volume inspect 卷名

#例:
docker volume inspect 8c383b3470efb708bdcafce9ab71003a97a832b7d60f638020f5c7380518d2c0

#通过dockerfile挂载
FROM centos
VOLUME ["volume01","volume02"]
CMD echo "----------end----------"
CMD /bin/bash

#构建镜像
docker build -f dockerfile -t centos-test:1.0.0 .

7.数据卷容器:

#启动容器1
docker run -it --name docker-01 centos-test:1.0.0
#启动容器2,且挂载容器1
docker run -it --name docker-02 --volumes-from docker-01 centos-test:1.0.0
#启动容器3,三个容器挂载卷数据彼此共享,且删除某一个容器,不影响其他容器数据
docker run -it --name docker-03 --volumes-from docker-01 centos-test:1.0.0
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值