03-Docker常用命令

一、启动类命令

启动docker

systemctl start docker

停止Docker

systemctl stop docker

重启Docker

systemctl restart docker

查看docker状态

systemctl status docker

设置docker开机自启

systemctl enable docker

二、帮助类命令

查看docker概要信息

docker info

查看docker总体帮助文档

docker --help

查看docker命令帮助文档

docker 具体命令 --help

三、镜像命令

列出本地主机上的镜像

docker images

常用参数说明:

  • -a:列出本地所有的镜像(含历史映像层)
  • -q:只显示镜像ID

各个选项说明:

REPOSITORY: 表示镜像的仓库源

TAG: 镜像的标签版本号

IMAGE ID:镜像ID

CREATED: 镜像创建时间

SIZE: 镜像大小

同一仓库源可以有多个 TAG版本,代表这个仓库源的不同个版本,我们使用 REPOSITORY:TAG 来定义不同的镜像。
如果你不指定一个镜像的版本标签,例如你是使用 ubuntu, docker 将默认使用 ubuntu:latest 镜像

在远程仓库中搜索镜像

docker search 镜像名称

PS:默认是从docker hub(https://hub.docker.com)中搜索,因配置了阿里云镜像,这里是在阿里云镜像仓库搜索。

参数说明:

  • -f:过滤
  • --limit:只列出N个镜像,默认前25个。例如:docker search --limit 5 rdisc

 下载docker镜像

docker pull 镜像名称[:tag]

PS:没有加TAG就是下载最新版,“docker pull 镜像名称”相当于“docker pull 镜像名称:latest”

查看镜像/容器/数据

docker system df

删除docker镜像

docker rmi 镜像名称/镜像ID
docker rmi -f 镜像名称/镜像ID  # 强制删除
docker rmi 镜像名1:TAG 镜像名2 镜像名3  #一次性删除多个镜像
docker rmi -f $(docker images -qa)  # 强制删除所有镜像

删除单个镜像 

docker rmi 镜像名称/镜像ID

删除全部镜像 

docker rmi -f $(docker images -qa) 

虚悬镜像理解

解释:仓库名、标签都是<none>的镜像,俗称虚悬镜像dangling images

四、容器命令

有镜像才能创建容器,这是根本前提。为了方便理解,这里使用ubuntu镜像。

新建并启动容器

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

OPTIONS说明(常用) : 有些是一个减号,有些是两个减号

  • --name="容器新名字"  为容器指定一个名称;
  • -d: 后台运行容器并返回容器ID,也即启动守护式容器(后台运行);
  • -i: 以交互模式运行容器,通常与 -t 同时使用;
  • -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;也即启动交互式容器(前台有伪终端,等待交互);
  • -P:随机端口映射,大写P
  • -p: 指定端口映射,小写p
参数说明

-p hostPort:containerPort

端口映射:例如-p 8080:80

-p ip:hostPort:containerPort      

配置监听地址:例如 -p 10.0.0.1:8080:80

-p ip::containerPort

随机分配端口:例如 -p 10.0.0.100::80

-p hostPort:containerPort:udp指定协议 -p 8080:80:tcp

-p 81:80 -p 443:443

指定多个端口映射

启动交互式容器

使用镜像ubuntu:latest以交互式启动一个容器,在容器内执行/bin/bash命令

docker run -it ubuntu /bin/bash  
  • -i 交互式操作
  • -t 分配一个伪输入终端 tty
  • 镜像名称:ubuntu
  • shell交互的接口:/bin/bash(或者bash)

不指定名字的交互式容器

docker run -it ubuntu /bin/bash

 指定名字的交互式容器

docker run -it --name=myu1 ubuntu /bin/bash

查看运行的两个容器,没有指定名字的容器自定义生成了名字

退出交互式终端

  1. 直接输入exit即可退回宿主机,退出后,容器停止运行
  2. 使用快捷方式ctrl+p+q,退出后,容器依然运行

启动守护式容器

在大部分场景下,我们希望docker容器服务时是在后台运行的,可以通过 -d 指定容器的后台运行模式。

docker run -d 容器ID/容器名称
 注意事项

使用镜像ubuntu:latest以后台模式启动一个容器。

docker run -d ubuntu

问题: 然后docker ps -a 进行查看,会发现容器已经退出。

docker run -d ubuntu
docker ps

重要说明: Docker容器后台运行,就必须有一个前台进程

容器运行的命令如果不是那些一直挂起的命令(比如运行toptail) ,就会自动退出。这个是docker的机制问题,比如web容器,以nginx为例,正常情况下,配置启动服务只需要启动响应的service即可。例如service nginx start,但是这样做nginx为后台进程模式运行,就导致docker前台没有运行的应用,这样的容器后台启动后,会立即自杀,因为它觉得没事可做了。所以,最佳的解决方案是,将你要运行的程序以前台进程的形式运行,常见就是命令行模式,表示我还有交互操作,别中断。

redis前台后台启动演示case

前台交互式启动

docker run -it redis:6.0.8

后台守护式启动

docker run -d redis:6.0.8

列出正在运行的容器

docker ps [OPTIONS]

[OPTIONS]:

  • -a:列出当前所有正在运行的容器+历史上运行过的容器
  • -l :显示最近创建的容器
  • -n :显示最近n个创建的容器
  • -q:静默模式,只显示容器编号

退出容器

通过run进入容器

  1. 直接输入exit即可退回宿主机,退出后,容器停止运行
  2. 使用快捷方式ctrl+p+q,退出后,容器依然运行

启动已经停止的容器

docker start 容器ID或容器名称

重启容器

docker restart 容器ID或容器名称

停止容器

docker stop 容器ID或容器名称

强制停止容器

docker kill 容器ID或容器名称

删除容器

删除已经停止的容器

docker rm 容器ID或容器名称

强制删除正在运行的容器


docker rm -f 容器ID或容器名称

一次删除多个容器实例

docker rm -f $(docker ps -aq)
# 或者
docker ps -aq | xargs docker rm

PS:生产环境不要使用这条命令,危险危险危险

查看容器日志

docker logs 容器ID或容器名称

查看容器内运行的进程

docker top 容器ID或容器名称

查看容器内部细节

docker inspect 容器ID或容器名称

进入正在运行的容器并以命令行交互

docker exec -it 容器ID/容器名称 /bin/bash
或者
docker attach 容器ID

exec和attach的区别

  • exec是在容器中打开新的终端,并且可以启动新的进程,用exit退出,不会导致容器的停止。
  • attach直接进入容器启动命令的终端,不会启动新的进程,用exit退出,会导致容器的停止。

推荐大家使用docker exec命令,因为退出容器终端,不会导致容器的停止。

如果有多个终端,都对同一个容器执行了 docker attach,就会出现类似投屏显示的效果。一个终端中输入输出的内容,在其他终端上也会同步的显示。

从容器内拷贝文件到主机上

容器——>主机

docker cp 容器ID:容器内路径 目的主机路径

导入和导出容器

  • export:导出容器的内容流作为一个tar归档文件(对应import命令)
  • import:从tar包中的内容创建一个新的文件系统再导入为镜像(对应export命令)

导出

导出容器成为一个tar包(可以理解为对一个容器进行完整打包)

docker export 容器ID > 文件名.tar

例如:docker export 9e4cc4412666 > abc.tar

导入

导入tar包成为一个镜像(可以理解为将完整打包的容器生成为镜像)

cat 文件名.tar | docker import - 镜像用户/镜像名:镜像版本号
例如:cat abc.tar | docker import - fanhe1/ubuntu:3.7

 PS:镜像用户、镜像名、镜像版本号均可自定义

 五、命令小总结

  • 20
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陪我养猪吧

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值