容器命令(AI总结)
在 Docker 中,docker run 是启动容器的核心命令,通过它可以配置容器的运行环境、资源限制、网络设置等。以下是 Docker 容器的完整使用指南,涵盖常用参数、示例场景及最佳实践:
一、基础命令格式🐟
二、核心参数与使用场景🐟
1. 容器交互模式🐟
-i(交互模式):保持标准输入(STDIN)打开。-t(分配伪终端):为容器分配一个伪终端(TTY)。- 组合使用
-it:进入容器的交互式 Shell。
2. 容器后台运行🐟
-d(后台运行):容器以后台模式运行。
3. 端口映射🐟
-p <宿主机端口>:<容器端口>:将容器端口映射到宿主机。
4. 数据卷挂载🐟
-v <宿主机路径>:<容器路径>:挂载宿主机目录到容器。
5. 环境变量🐟
-e <变量名>=<值>:设置容器内的环境变量。
6. 容器命名🐟
--name <容器名称>:为容器指定唯一名称。
7. 自动重启策略🐟
--restart=<策略>:定义容器退出时的重启策略(如always、on-failure)。
8. 资源限制🐟
- 内存限制:
--memory=1g(限制为 1GB)。 - CPU 限制:
--cpus=2(最多使用 2 个 CPU 核心)。
三、进阶配置🐟
1. 网络模式🐟
--network=<模式>:指定容器的网络模式(如host、bridge、none)。
2. 容器用户权限🐟
--user=<用户名/UID>:指定容器内进程的运行用户。
3. 只读文件系统🐟
--read-only:将容器的根文件系统设为只读(需配合-v写入数据)。
4. 日志驱动🐟
--log-driver=<驱动>:指定日志记录方式(如json-file、syslog)。
5. 修改数据目录🐟
vim /etc/docker/daemon.json
{
"data-root": "/home/esafe/docker-data",
"log-driver": "json-file",
"log-opts": {
"max-size": "100m",
"max-file": "3"
}
}
mkdir /home/xxx/docker-data
systemctl stop docker
# 清理容器运行log,如果数据无用的话
#:>/var/lib/docker/containers/xxxx/xxx-json.log
rsync -av --progress /var/lib/docker/* /home/xxx/docker-data/
systemctl daemon-reload
systemctl start docker.service
systemctl status docker.service
docker info | grep "Docker Root Dir"
四、实战示例🐟
场景 1:运行 Web 服务并挂载配置🐟
场景 2:调试容器并进入 Shell🐟
场景 3:连接其他容器(容器间通信)🐟
# 启动 MySQL 容器
docker run -d --name mysql_db -e MYSQL_ROOT_PASSWORD=123456 mysql
# 启动应用容器并连接到 MySQL
docker run -d \
--name my_app \
--link mysql_db:db \
-e DB_HOST=db \
myapp
五、最佳实践🐟
- 精简镜像:优先使用官方镜像或 Alpine 等轻量级基础镜像。
- 单进程容器:一个容器只运行一个主进程(如 Nginx、MySQL)。
- 日志管理:限制日志大小,避免磁盘占满。
- 健康检查:通过
HEALTHCHECK指令监控容器状态。 - 资源限制:生产环境必须限制内存和 CPU,防止资源耗尽。
六、常用命令参考🐟
| 命令 | 说明 |
|---|---|
docker ps |
查看运行中的容器 |
docker logs <容器名> |
查看容器日志 |
docker exec -it <容器名> sh |
进入运行中的容器执行命令 |
docker stop <容器名> |
停止容器 |
docker rm <容器名> |
删除容器 |
通过合理组合参数,可以高效管理容器的生命周期、资源分配和数据持久化。建议结合 Docker Compose 或 Kubernetes 进一步简化多容器编排。
compose更新镜像🐟
# Pull latest version
docker compose pull
# Stop and remove older version
docker compose down
# Start the container
docker compose up -d
创建日期:
2025年3月22日 21:32:55
最后更新: 2025年10月1日 11:45:20
最后更新: 2025年10月1日 11:45:20