Docker Container常用命令

本文详细介绍如何使用Docker创建交互式及守护式容器,包括常用命令如run、ps、inspect、stop、rm、logs、top和exec的具体应用。并提供解决国内镜像下载速度慢的方法。

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

原创转载请注明出处:http://agilestyle.iteye.com/blog/2354873

 

docker run —— 交互式容器

docker run是最常用也是最复杂的命令,通过docker help run可以看到该命令有很多选项。


 

其中最常用的的选项包括:

  • -i -t 这两个选项经常一起使用,可以缩写为-it,用于创建交互式容器
  • -d 让容器运行在后台,用于创建守护式容器
  • --name 为容器指定一个名称

容器运行成功后,会返回一个64字符的容器ID,作为容器的唯一标识。

 

通过如下命令运行一个交互式容器

sudo docker run -it centos:6 /bin/bash
  • -it 指定要创建交互式容器
  • centos:6 以仓库:TAG的形式指定镜像名称
  • /bin/bash 容器对应的进程,会启动一个新的shell


Note:

刚开始如果没有使用docker pull将镜像拉下来的话,执行上述命令会提示没有找到镜像,会首先将镜像pull下来,这就会遇到一个国内Docker源下载非常慢的问题,推荐的解决办法是使用DaoCloud,会大大加快下载镜像的速度

使用官方源:


使用DaoCloud源:


 

通过命令sudo docker run -it centos:6 /bin/bash,会启动一个新的shell,并运行在容器环境中。由于是一个交互式容器,所以当离开当前的shell,被这个新的shell带入到容器的虚拟世界中,此后会在这个shell里面执行的任何命令,都是相对于这个虚拟世界的。

 

当在新的shell里面执行exit,就结束了这个bash进程,从而也结束了这个容器,这样就从虚拟世界又返回到宿主机的现实世界


 

docker run —— 守护式容器

交互式容器适合一些临时性的任务,当退出bash的时候,交互式容器的生命也将结束。大多数场合,需要的是守护式容器。通过如下方式运行守护式容器:

sudo docker run -d daocloud.io/daocloud/dao-redis:master-init
  • -d 创建守护式容器
  • 没有指定命令,那么就会使用镜像所提供的默认命令。redis镜像的默认命令是/run.sh

Note:

守护式容器运行在后台,这样就可以继续留在当前的shell进行其他操作 

 

docker ps

通过docker ps命令可以查看容器的基本信息,包括容器ID、命令、状态等

sudo docker ps


 

docker inspect

docker ps命令只能查看容器的基本信息;docker inspect命令则可以查看容器的详细信息。 

sudo docker inspect [容器ID]


Note:

docker inspect返回的信息是JSON格式的 

 

docker inspect -f

可以指定查看某种信息,例如查看容器的IP

sudo docker inspect -f '{{.NetworkSettings.IPAddress}}' [容器ID]


 

docker stop

docker stop命令用来停止一个正在运行的守护式容器(如果想快速停止可以使用docker kill

sudo docker stop [容器ID]


 

docker rm

容器停止后,不会被删除,docker rm命令用来删除容器

sudo docker rm [容器ID]


Note:

删除完之后,再次运行sudo docker ps -a,容器已经消失了

 

docker logs

使用docker logs查看容器日志

sudo docker logs [-f] [-t] [--tail] [容器ID]
  • -f    --follows=true | false 默认为false
  • -t   --timestamps=true | false 默认为false
  • --tail="all" 


 

docker top

使用docker top查看守护式容器内进程

sudo docker top [容器ID]


 

docker exec

使用docker exec在运行的守护式容器内启动新进程

sudo docker exec [-d] [-i] [-t] [容器ID] [COMMAND][ARG...] 


 

 

 

启动交互式容器后,可以使用Ctrl + P和Ctrl + Q组合将交互式容器转为守护式容器,之后可以使用docker attach命令将守护式容器转为交互式容器


 

 

Docker 是一个开源的应用容器引擎,开发者可以使用 Docker 快速地构建、打包、分发和运行应用。以下是 **Docker常用命令**,涵盖了镜像管理、容器操作、网络配置、数据卷等核心功能。 --- ## 📌 一、镜像相关命令 | 命令 | 说明 | |------|------| | `docker images` | 查看本地所有镜像 | | `docker pull <image>` | 拉取指定镜像(如 `docker pull nginx`) | | `docker push <image>` | 推送镜像到远程仓库 | | `docker build -t <tag> .` | 构建镜像,`-t` 指定标签 | | `docker rmi <image_id>` | 删除指定镜像 | | `docker image rm <image_id>` | 同上 | | `docker image prune` | 清理未使用的悬空镜像 | --- ## 📌 二、容器相关命令 | 命令 | 说明 | |------|------| | `docker run [OPTIONS] IMAGE` | 创建并启动容器(如 `docker run -d --name mynginx nginx`) | | `docker ps` | 查看正在运行的容器 | | `docker ps -a` | 查看所有容器(包括已停止的) | | `docker stop <container_id>` | 停止容器 | | `docker start <container_id>` | 启动已停止的容器 | | `docker restart <container_id>` | 重启容器 | | `docker rm <container_id>` | 删除容器(需先停止) | | `docker exec -it <container_id> /bin/bash` | 进入容器执行命令(如 bash) | | `docker logs <container_id>` | 查看容器日志 | | `docker inspect <container_id>` | 查看容器详细信息 | --- ## 📌 三、网络相关命令 | 命令 | 说明 | |------|------| | `docker network ls` | 列出所有网络 | | `docker network create <network_name>` | 创建自定义网络 | | `docker network connect <network> <container>` | 将容器连接到指定网络 | | `docker network disconnect <network> <container>` | 断开容器与网络的连接 | | `docker network rm <network>` | 删除网络 | | `docker network inspect <network>` | 查看网络详情 | --- ## 📌 四、数据卷(Volume)相关命令 | 命令 | 说明 | |------|------| | `docker volume ls` | 查看所有数据卷 | | `docker volume create <volume_name>` | 创建数据卷 | | `docker volume inspect <volume_name>` | 查看数据卷详细信息 | | `docker volume rm <volume_name>` | 删除数据卷 | | `docker volume prune` | 清理未使用的数据卷 | --- ## 📌 五、系统管理命令 | 命令 | 说明 | |------|------| | `docker info` | 显示 Docker 系统信息 | | `docker version` | 查看 Docker 版本信息 | | `docker system df` | 查看磁盘使用情况(镜像、容器、数据卷) | | `docker system prune` | 清理所有未使用的资源(镜像、容器、网络、数据卷) | --- ## 📌 六、示例:组合使用命令部署 Nginx ```bash # 拉取镜像 docker pull nginx # 创建并运行容器,映射端口 80:80,挂载本地目录,设置名称为 mynginx docker run -d -p 80:80 -v /mydata/nginx:/usr/share/nginx/html --name mynginx nginx # 查看运行中的容器 docker ps # 进入容器 docker exec -it mynginx /bin/bash # 查看日志 docker logs mynginx # 停止容器 docker stop mynginx # 删除容器 docker rm mynginx ``` --- ## ✅ 七、总结表格:常见用途对应命令 | 目标 | 命令 | |------|------| | 查看镜像 | `docker images` | | 下载镜像 | `docker pull` | | 构建镜像 | `docker build` | | 创建容器 | `docker run` | | 查看容器 | `docker ps` / `docker ps -a` | | 进入容器 | `docker exec -it` | | 查看日志 | `docker logs` | | 数据持久化 | `-v` 参数挂载 Volume | | 容器间通信 | 自定义网络 + `--network` | | 清理资源 | `docker system prune` | ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值