Docker官方文档链接:https://docs.docker.com/get-started/overview/
相关命令的官方文档链接:https://docs.docker.com/engine/reference/run/
一、Docker容器常用命令
1、docker info
返回所有容器和镜像的数量、Docker使用的执行驱动和存储驱动、以及Docker的基本配置
用此命令检测docker程序是否正常运行。
2、docker run [Options……] [ImageName] [Command] [ARG]
提供了docker容器的创建到启动的功能
[Options……] 和 [Command]信息可以通过运行 “docker run --help” 进行查看。
Case1:创建容器,并映射端口
docker run -d -p 80:80 docker/getting-started
-d
- 以分离模式运行容器(在后台)-p 80:80
- 将主机的 80 端口映射到容器中的 80 端口docker/getting-started
- 要使用的图像
Case2:为容器命名
docker run --name bob_the_container -i -t ubuntu /bin/bash
- -i 保证容器中STDIN开启
- -t 创建的容器分配一个伪tty终端
- --name 给容器命名。合法的容器命名:a-z、A-Z、数组0-9、下划线、圆点、横线;正则验证规则:[a-zA-Z0-9_.-]
如果镜像不存在,docker run命令会优先从Docker Hub上下载对应的最新版本的镜像,也可以指定要下载的镜像版本,格式:[ imageName:Tag]
docker run --name bob_the_container -i -t ubuntu:21.10 /bin/bash
Case3:创建守护式容器
docker run --name myservice -d ubuntu /bin/sh -c "while true; do echo hello world; sleep 1;done"
守护式容器,没有交互会话,非常适合运行应用程序和服务。
可以长期在后台运行的容器,通过-d标志,将容器放到后台运行。
3 、docker container [Command]
查看当前本机的容器信息列表
[Command] 信息可以通过运行 “docker container --help” 进行查看
Case1:查看当前启动中的容器
docker container list
Case2:查看全部容器列表信息
docker container list -a
docker container list --all
4、docker ps [Options]
作用与“Docker container list”一样,列出容器列表。
[Options……] 可以通过“docker ps --help” 命令查看。
Case1:查看容器列表
docker ps
Case2:查看刚刚创建的容器ID
docker ps -l -q
5、docker start [Options……] [ ContainerId / ContainerName ]
启动容器命令。
[Options……] 可以通过“docker start --help” 命令查看。
Case1:通过ContainerID启动容器
docker start f3979ccf661d
Case 2:通过Container Name启动容器
docker start bob_the_container
6、docker stop [Options……] [ ContainerId / ContainerName ]
停止运行容器。
[Options……] 可以通过“docker stop --help” 命令查看。
Case1:通过ContainerID停止容器
docker stop f3979ccf661d
Case2: 通过Container Name停止容器
docker stop bob_the_container
7、docker logs [Options……] [ContainerID/ContainerName]
获取容器日志。
[Options……]可以通过“docker logs --help”命令查看。
一般此命令配合守护式容器使用。
Case1:根据容器名获取容器容器日志
docker logs myContainer
Case2: 监控Docker容器的日志
docker logs --tail -f myContainer
docker logs -f myContainer
通过Ctrl+C可以退出日志跟踪。
Case3:跟踪容器的最新日志
docker logs -ft myContainer
Case4:获取日志指定的最后n行(n>0)
docker logs --tail 10 myContainer
Case5:跟踪容器的最新日志且不需读取整个日志文件
docker logs -tail 0 -f myContainer
8、docker top [ ContainerID / ContainerName]
通过此命令查看容器内部运行的进程
docker top myContainer
9、docker stats [Options……] [ContainerID/ContainerName……]
通过此命令可以查看指定的一个或多个容器的CPU、内存、网络I/O及存储I/O的性能和指标。
对于快速监控一台主机上的一组容器非常有用。
[Options……]可以通过“docker stats --help”命令查看。
docker stats myContainer1 myContainer2
10、docker exec [Options……] [ ContainerID / ContainerName] COMMAND [ARG...]
在容器内部额外启动新进程。
[Options……]可以通过“docker exec --help”命令查看。
COMMAN [ARG…]:要启动的进程命令和参数。
Case1:在容器中运行后台任务
docker exec -d myContainer touch /etc/new_config_file
Case2:在容器内部运行交互命令
docker exec -t -i myContainer /bin/bash
- -t -i 为执行的进程创建TTY并捕捉STDIN
11、docker inspect [Options……] [ContainerID / ContainerName]
获取指定容器的详细信息。
docker inspect myContainer
12、docker rm [Options……] [ContainerID / ContainerName……]
删除容器。
Case1:删除指定容器
docker rm myContainer
Case2:删除所有容器
docker rm `docker ps -a -q`
13、docker port CONTAINER [ PRIVATE_PORT [ / PROTO] ]
查看容器的端口映射情况。
CONTAINER:此处为要查看的容器的Container ID或者Container Name。
PRIVATE_PORT:此处为端口号,可选。
PROTO:协议标识,可选。例如 :/udp,不写默认tcp。
Case1:指定查看容器的端口号
> docker port f3979ccf661d 80
0.0.0.0:12695
Case2:未指定查看容器的端口号
> docker port f3979ccf661d
80/tcp -> 0.0.0.0:12695
二、Docker镜像常用命令
1、docker images [Options……] [Repository:Tag]
获取镜像列表
[Options……]可以通过“docker images --help” 进行查看。
[Options] 和 [Repository:Tag] 皆为可选项。
Case1:列出Docker镜像
docker images
Case2 :列出全部镜像
docker images -a
2、docker pull [OPTIONS] NAME[:TAG|@DIGEST]
从Docker Hub 上下载指定的镜像
[OPTIONS]可以通过“docker pull --help”进行查看。
NAME[:TAG|@DIGEST]:NAME为镜像名称,TAG镜像的标签,DIGST则是指镜像摘要
Case1:按照镜像名称和镜像标签拉取
docker pull ubuntu:21.10
Case2:按照镜像名称和digst拉取
docker pull ubuntu@sha256:45b23dee08af5e43a7fea6c4cf9c25ccf269ee113168c19722f87876677c5cb2
3、docker search [OPTIONS] TERM
从Docker Hubs上查找镜像。
[OPTIONS]可以通过“docker search --help”进行查看。
docker search ubuntu
命令执行后,返回列表,列表标题说明如下
NAME: 镜像仓库源的名称
DESCRIPTION: 镜像的描述
OFFICIAL: 是否 docker 官方发布
stars: 类似 Github 里面的 star,表示点赞、喜欢的意思。
AUTOMATED: 自动构建。
4、docker login
使用Docker Hub已注册账户密码,进行登录。
> docker login
Username: XXXXX
Password:
Email:XXXX@XXXX.XXXX
5、docker commit [OPTIONS] CONTAINER [ REPOSITORY [:TAG] ]
将已经部署完成的容器,构建为新的镜像
[OPTIONS]:可以通过“docker commit --help”进行查看。
CONTAINER:可以为ContainerID,也可以为Container Name,此处写已经部署好的容器信息(ID 或者Name)。
[ REPOSITORY [:TAG] ]:此处指定要构建的镜像名称。镜像名称一般由一个目标镜像仓库和镜像名组成,例如 alazycat/WebService。TAG指镜像标签,可以用于标识镜像版本,非必填。
注意:此命令提交的只是创建容器的镜像与容器当前状态之间有差异的部分。
Case1:提交定制容器
> docker commit f3979ccf661d alazycat/WebService
8dr0op3w367
Case2:提交带有详细描述信息的定制容器
docker commit -m "A new custom image" -a "A Lazy Cat" f3979ccf661d alazycat/WebService:2.0
- -m :指定新创建的镜像的提交信息。
- -a:列出该镜像的作者信息。
6、docker build [OPTIONS] PATH | URL | -
此命令用于自动构建镜像,一般配合Dockerfile使用。
[OPTIONS]:可以通过“docker build --help”进行查看。
PATH | URL | -:用于指定Dockerfile的路径,如果为当前命令行所在目录,则可以用 “.” 替代。
Case1:Dockerfile为当前目录下,构建镜像
docker build -t="alazycat/WebService" .
Case2:构建带标签的Docker镜像
docker build -t="alazycat/WebService:V1" .
Case3:从Git仓库中构建Docker镜像
docker build -t="alazycat/WebService:v1" git@github.com:alazycat/docker-WebService
Case4:忽略Dockerfile的构建缓存,重新构建Docker镜像
docker build --no-cache -t="alazycat/WebService" .
7、 docker history [OPTIONS] IMAGE
通过此命令可以查看构建镜像全部过程记录。
[OPTIONS]:可以通过“docker history --help”进行查看。
IMAGE:此处为要查看的镜像ID 或者 镜像名称[:Tag] ,Tag可选。
Case1:按照镜像ID查看构建过程
docker history 0974e7745e11
Case2:按照镜像名称查看构建过程
docker history alazycat/WebService
Case3:按照镜像名称:TAG查看构建过程
docker history alazycat/WebService:V1
9、 docker rmi [OPTIONS] IMAGE [IMAGE...]
删除镜像。
[OPTIONS]:可以通过“docker rmi --help”进行查看。
IMAGE [IMAGE...]:此处为镜像名或者镜像ID ,可以是多个,也可以是一个,多个时空格隔开
Case 1:删除一个镜像
docker rmi static_web
Case2:删除所有镜像
docker rmi `docker images -a -q`