使用docker run快速启动一个长期后台运行的容器测试环境
使用docker run快速启动一个长期后台运行的容器测试环境
当容器中没有活动的进程时, 容器就会停止, 不便于测试容器环境, 为了解决这个问题, 有两种解决方案
方案1 启动一个交互式终端
docker run -it jre_8u422-dbg:latest /bin/bash
方案2 运行一个持续运行的命令
1 | docker run -d \ |
额外的容器启动、配置和测试用指令
以下是docker run
中可已添加的额外的容器启动、配置和测试用指令
基础运行参数
1
2
3
4
5-d, --detach # 后台运行容器
-i, --interactive # 交互模式, 保持输入流开放
-t, --tty # 分配一个伪终端, 通常-it一起使用, 如 docker exec -it ubuntu bash
--name string # 指定容器名称
--rm # 容器停止后自动删除, 适用于临时容器, 避免手动清理网络相关
1
2
3
4
5-p, --publish # 端口映射, 格式: 主机端口:容器端口
--network # 连接到指定网络
--dns # 设置DNS服务器
--hostname # 设置容器主机名
--add-host # 添加自定义/etc/hosts映射, 如 myhost:127.0.0.1资源限制
1
2
3
4-m, --memory # 内存限制, 例如-m 500M
--memory-swap # 内存+交换空间限制
--cpus # CPU核心数限制, 例如--cpus=2
--cpu-shares # CPU共享权重存储相关
1
2
3-v, --volume # 挂载卷, 格式: 主机路径:容器路径[:权限]
--volumes-from # 从其他容器挂载卷
--mount # 挂载, 更详细的方式, 格式: type=<类型>,source=<主机路径>,target=<容器路径>环境和配置
1
2
3
4-e, --env # 设置环境变量, 例如-e MYSQL_ROOT_PASSWORD=123456
--env-file # 从文件加载环境变量
-w, --workdir # 设置容器内工作目录
--entrypoint # 覆盖默认的ENTRYPOINT重启策略
1
2
3
4
5--restart # 重启策略
# no默认策略, 不重启
# always总是重启
# unless-stopped除非手动停止, 否则总是重启
# on-failure[:max-retries]失败时重启日志相关
1
2--log-driver # 设置日志驱动
--log-opt # 日志驱动的选项用户和权限
1
2-u, --user # 指定用户, 例如-u 1000:1000
--privileged # 给予容器扩展权限健康检查
1
2
3--health-cmd # 健康检查命令
--health-interval # 检查间隔
--health-timeout # 检查超时时间
实际使用示例
1 | docker run -d \ |
更多参数可以通过 docker run --help
查看完整列表