这里仅罗列日常工作中用到的 docker 命令,想深入学习或者了解请查看:https://www.runoob.com/docker/docker-command-manual.html
容器操作命令
1、列出容器的列表:docker ps [可选参数]
可选参数:-a:显示所有的容器,包括未运行的。一般使用 -a 就够用了。
示例:
输出详情介绍:
CONTAINER ID:容器 ID。
IMAGE:使用的镜像。
COMMAND:启动容器时运行的命令。
CREATED:容器的创建时间。
STATUS:容器状态。状态包括:created(已创建)、restarting(重启中)、running(运行中)、removing(迁移中)、paused(暂停)、exited(停止)、dead(死亡)
PORTS:容器的端口信息和使用的连接类型(tcp\udp)。
NAMES:自动分配的容器名称。
如果想搜索某个名字的容器,可以配合使用 Linux 的命令,比如搜索包含 my 的容器:
docker ps -a | grep "my"
结果:
2、查看容器或者镜像的元信息:docker inspect 容器ID或镜像ID
示例(默认返回 json 格式):
3、获取容器的日志:docker logs [可选参数] 容器ID
可选参数:
-f:跟踪日志输出
--since:显示某个开始时间的所有日志,如:--since="2020-05-01"
--tail:仅列出最新N条容器日志,如:--tail=20
示例(先使用 docker ps 把运行中的容器ID找出来,注意容器ID必选。):
docker logs --since="2020-05-01" --tail=20 2e0ef63dafbf
结果:
4、容器与宿主机之间的数据拷贝(一般在挂载的时候需要用到):docker cp 目录1 目录2
说明:可以在容器和宿主机之间进行数据、文件的拷贝,目录1是源数据,目录2是目标数据。
示例(将 容器ID = 957a81fb3aa3 的 Nginx 的 nginx.conf 文件复制到宿主机的 /data/nginx/conf 目录下,事先需要创建 /data/nginx/conf 目录):
docker cp 957a81fb3aa3:/etc/nginx/nginx.conf /data/nginx/conf
容器生命周期管理命令
1、创建一个新的容器并运行一个命令:docker run [可选参数]
可选参数:
-d:后台运行容器,并返回容器ID
-p:指定端口映射,格式为:主机(宿主)端口:容器端口
--name="XXX":为容器指定一个名称
--env-file=[]:从指定文件读入环境变量(一般我们部署到线网环境用 prod)
-v 或者 --volume : 绑定一个卷(将宿主机的某个目录映射到容器的某个目录,一般用于日志文件或其它的绑定)
示例(先指定容器的名称,再加 -d、-p的参数):
docker run --name="myService" -d -p 8080:9090 my-docker-test-image
结果:
2、启动、重启、停止容器:docker start、stop、restart 容器ID
启动一个或多个已停止的容器(多个容器用空格间隔):docker start 容器ID1 容器ID2 容器ID3
停止一个容器:docker stop 容器ID
重启容器(已删除的容器不可重启):docker restart 容器ID
重启容器示例:
docker restart cfa155ea12d2
结果:
3、删除一个或多个容器(多个容器用空格间隔):docker rm [可选参数] 容器ID1 容器ID2 容器ID3
可选参数:
-f:强制删除
-v:删除与容器关联的卷
示例:
docker rm -f cfa155ea12d2
结果:
4、进入到已运行的容器(默认情况下软件安装的目录的 /ect 目录下):docker exec [可选参数] 容器ID /bin/sh
参数列表:
-i:即使没有附加也保持STDIN 打开(一般与 t 合用)
-t:分配一个伪终端(一般与 i 合用)
示例:
docker exec -it 6ee2b99c9ef1 /bin/sh
退出容器:exit
镜像仓库命令
1、从镜像仓库中拉取或者更新指定镜像:docker pull
示例1:从Docker Hub下载java最新版镜像
docker pull java
示例2:从指定目录拉取镜像
docker pull 192.168.0.106:8080/usr/local/dockerapp/my-docker-test-image
2、将本地的镜像上传到镜像仓库(要先登陆到镜像仓库):docker push
一般使用 Maven 插件将镜像推到指定仓库。
3、从 Docker Hub查找镜像:docker search
Docker Hub 地址:https://hub.docker.com/
示例:查询mysql
参数说明:
NAME:镜像仓库源的名称
DESCRIPTION:镜像的描述
OFFICIAL:是否 docker 官方发布
stars:类似 Github 里面的 star,表示点赞、喜欢的意思。
AUTOMATED:自动构建。
4、显示 Docker 系统信息,包括镜像和容器数:docker info
示例:
本地镜像管理命令
1、列出本地所有的镜像:docker images [可选参数]
可选参数:
-a:列出本地所有的镜像(含中间映像层,默认情况下,过滤掉中间映像层)
示例:docker images -a
如果想搜索某个名字的镜像,可以配合使用 Linux 的命令,比如搜索包含 my 的镜像:
docker images -a | grep "my"
结果:
2、删除本地一个或多少镜像(多个镜像用空格间隔):docker rmi [可选参数] 镜像ID1 镜像ID2
可选参数:-f:强制删除
示例:
docker rmi faer5367rrwd
3、使用 Dockerfile 创建镜像:docker build -t 镜像名称:标签 Dockerfile的相对位置
示例:
docker build -t my-docker-test-image .
说明:my-docker-test-image 是我自定义的镜像名称,可以叫别的,但是必须全部是小写字母。后面的点 . 是 Dockerfile 的相对位置,这里因为它们是在同一个目录下,所以用点 . 表示。
结果:
4、查看指定镜像的创建历史:docker history 镜像ID
示例:
docker history 4ddea1f9a006
结果:
OK,本篇博客罗列了日常使用到的 docker 相关命令。