Docker容器创建
外观
Docker容器创建[编辑 | 编辑源代码]
介绍[编辑 | 编辑源代码]
Docker容器创建是Docker技术中的核心操作之一,它允许用户基于镜像启动一个或多个隔离的进程环境。容器是镜像的运行实例,具有轻量级、快速启动和资源高效的特点。理解容器创建过程对于掌握Docker至关重要,无论是开发、测试还是生产环境部署。
本页将详细介绍以下内容:
- 容器创建的基本命令与参数
- 容器生命周期与创建的关系
- 实际应用场景与示例
基本语法[编辑 | 编辑源代码]
创建容器的核心命令是docker create
和docker run
。两者的区别在于:
docker create
:仅创建容器但不启动docker run
:创建并立即启动容器
命令格式[编辑 | 编辑源代码]
# 基础创建命令(不启动)
docker create [OPTIONS] IMAGE [COMMAND] [ARG...]
# 创建并启动容器
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
参数详解[编辑 | 编辑源代码]
常用选项(部分):
参数 | 说明 | 示例 |
---|---|---|
-d |
后台运行 | docker run -d nginx
|
-p |
端口映射 | -p 8080:80
|
-v |
卷挂载 | -v /宿主机路径:/容器路径
|
--name |
指定容器名称 | --name my_container
|
-e |
设置环境变量 | -e MYSQL_ROOT_PASSWORD=123
|
示例[编辑 | 编辑源代码]
示例1:创建Nginx容器[编辑 | 编辑源代码]
# 创建并启动Nginx容器,映射端口80到宿主机的8080
docker run -d -p 8080:80 --name my_nginx nginx
输出说明:
3a2b1c0d4e5f # 返回容器ID
示例2:交互式容器[编辑 | 编辑源代码]
# 启动Ubuntu容器并进入bash交互
docker run -it ubuntu /bin/bash
操作后:
- 终端会直接进入容器的bash shell
- 退出时使用
exit
命令
生命周期与状态转换[编辑 | 编辑源代码]
高级配置[编辑 | 编辑源代码]
资源限制[编辑 | 编辑源代码]
通过参数限制容器资源:
docker run -d --memory="512m" --cpus="1.5" nginx
网络模式[编辑 | 编辑源代码]
支持多种网络模式:
--network bridge
(默认)--network host
--network none
实际应用场景[编辑 | 编辑源代码]
场景1:开发环境隔离[编辑 | 编辑源代码]
为每个项目创建独立容器:
docker run -d -v $(pwd):/app -p 3000:3000 node:14 npm start
场景2:数据库部署[编辑 | 编辑源代码]
配置MySQL容器:
docker run -d \
--name mysql_db \
-e MYSQL_ROOT_PASSWORD=secret \
-v mysql_data:/var/lib/mysql \
mysql:5.7
常见问题[编辑 | 编辑源代码]
Q1:容器创建后立即退出?[编辑 | 编辑源代码]
原因:主进程结束(如未指定持续运行的命令)
解决:添加持续进程如tail -f /dev/null
Q2:如何查看创建失败的容器?[编辑 | 编辑源代码]
使用命令:
docker ps -a --filter status=created
数学原理(可选)[编辑 | 编辑源代码]
容器资源隔离基于Linux内核特性:
- CPU份额计算:
- 内存限制:
总结[编辑 | 编辑源代码]
Docker容器创建是容器化技术的起点,通过灵活的参数配置可实现:
- 环境隔离
- 资源控制
- 快速部署
掌握创建命令及其选项是有效使用Docker的基础。建议通过实践练习加深理解。