【Docker笔记】Docker常用命令总结

本文详细介绍了Docker的常用命令,包括容器的创建、启动、停止、日志查看和资源监控等操作,以及镜像的获取、搜索、构建和删除等。重点讲解了`docker run`、`docker container`、`docker ps`、`docker start`、`docker stop`、`docker logs`和`docker build`等关键命令的用法和案例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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`

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值