docker容器常用命令与示例

本文详细介绍了 Docker 中管理镜像和容器的常用命令,包括创建、列出、删除、检查和限制资源等操作。例如,`docker run -itd` 用于在后台交互式运行容器,`docker image build` 用于构建镜像,`docker image prune` 删除未使用的镜像,`-m` 和 `--cpu-shares` 选项分别用于设置容器的内存限制和CPU使用权重。通过这些命令,可以有效地管理和优化 Docker 环境中的资源。

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

管理镜像常用命令

指令描述
docker image ls列出镜像
docker image build从dockerfile构建镜像
docker image history 或 docker history查看给定镜像的历史
docker image inspect 或 docker inspect显示镜像的详细信息
docker image pull 或 docker pull从镜像仓库拉取镜像
docker image push 或 docker push推送镜像到镜像仓库
docker image rm 或 docker rmi移除镜像
docker image prune移除未使用的镜像(没有被标记或被任何容器引用)
docker image tag 或 docker tag创建一个引用源镜像标记目标镜像
docker export导出容器文件系统到tar归档文件
docker image import 或 docker import从tar归档文件导入容器文件系统
docker image save 或 docker save保存一个或多个镜像到tar归档文件
docker image load 或 docker load从tar归档文件或者标准输入加载镜像

创建容器常用选项

以下选项用于docker rundocker container run命令。

选项描述
-i, --interactive交互式
-t, --tty分配一个伪终端
-d, --detach在后台运行容器并打印容器ID
-e, --env设置环境变量
-p, --publish发布容器端口到主机
-P, --publish-all发布容器所有exposed的端口到宿主机随机端口
--name指定容器名称
-h, --hostname设置容器主机名
--ip指定容器IPv4地址,只用于自定义网络
--network连接容器到一个网络
--mount挂载文件系统到容器
-v, --volume绑定挂载一个卷
--restart容器退出时的重启策略,默认no,可选[always|on-failure]

举例

$ docker run -itd centos  # 在后台运行一个centos容器
$ docker ps -l  # 列出最新创建容器的状态(包括Container ID)
$ docker top $Container_ID  # 查看容器正在运行的进程

命令格式:docker container run [OPTIONS] IMAGE [COMMAND] [ARG …]

# 运行容器并设置容器名称、环境变量和端口转发(80端口对应http协议)
$ docker container run -d --name webserver01 -e test_val=1024 -p 88:80 nginx  
$ docker ps -l  # 查看容器进程状态
# 在浏览器中通过宿主机IP:88端口访问容器
$ docker logs webserver1  # 查看容器访问日志
$ docker exec -it webserver01 bash  # 打开容器终端
$ echo $test_val  # 查看环境变量
$ exit
# 选项大写-P会为容器随机选择一个暴露端口发布到主机
$ docker container run -d --name webserver02 -P nginx  
$ docker ps -l  # 查看暴露的容器端口(PORTS栏:0.0.0.0:32769->80/tcp

容器资源限制

以下选项用于docker rundocker container run命令。

选项描述
-m, --memory容器可以使用的最大内存量
--memory-swap交换区的磁盘容量限制(内存+交换区),-1表示无限制
--memory-swappiness=<0-100>容器使用swap分区的百分比:0-100,默认为-1
--oom-kill-disable禁用Out-Of-Memory Killer,防止系统自动杀死占用内存过高的进程
--cpus可使用的CPU数量
--cpuset-cpus限制容器使用特定的CPU核心,如0-3, 0, 1
-c, --cpu-sharesCPU共享(相对权重)

示例

# 允许容器最多使用500M内存和100M的swap分区
$ docker run -d --name nginx01 --memory="500m" --memory-swap="600m" --oom-kill-disable nginx  
$ docker stats --no-stream nginx01  # 查看容器的资源使用状况

管理容器的常用命令

选项描述
docker ps列出容器
docker inspect查看容器详细信息
docker exec在运行容器中执行命令
docker commit从容器创建一个新镜像
docker cp在本地文件系统和容器之间拷贝文件
docker logs获取容器日志
docker port列出或指定容器端口映射
docker top显示容器正在运行的进程
docker stats显示容器的资源使用统计
docker stop/start停止/启动容器
docker rm删除容器

示例
命令格式:docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]

$ docker commit nginx01 nginx:webserver01  # 提交新镜像
$ docker images
REPOSITORY	   TAG	         IMAGE ID	    …
nginx	       webserver01	 3942abf7a25	…
nginx	       latest	     dgcf2657c39	…
$ docker run -d --name nginx02 nginx:webserver01  # 利用提交的新镜像创建容器
$ docker cp nginx.tar nginx02:/  # 将本地文件拷贝到容器根目录下
$ docker exec -it nginx02 ls /  # 查看容器根目录

Source: https://docs.docker.com/engine/reference/commandline/docker/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值