mirror of
https://github.com/yeasy/docker_practice.git
synced 2026-03-11 04:14:38 +00:00
Add more content and fix format
This commit is contained in:
@@ -20,8 +20,6 @@ CMD 有三种格式:
|
||||
|
||||
#### exec 格式 (推荐)
|
||||
|
||||
如下代码块所示,展示了相关示例:
|
||||
|
||||
```docker
|
||||
CMD ["nginx", "-g", "daemon off;"]
|
||||
CMD ["python", "app.py"]
|
||||
@@ -36,8 +34,6 @@ CMD ["node", "server.js"]
|
||||
|
||||
#### shell 格式
|
||||
|
||||
如下代码块所示,展示了相关示例:
|
||||
|
||||
```docker
|
||||
CMD echo "Hello World"
|
||||
CMD nginx -g "daemon off;"
|
||||
@@ -70,8 +66,6 @@ CMD ["sh", "-c", "echo $HOME"]
|
||||
|
||||
#### 信号传递问题示例
|
||||
|
||||
如下代码块所示,展示了相关示例:
|
||||
|
||||
```docker
|
||||
## ❌ shell 格式:docker stop 会超时
|
||||
|
||||
@@ -116,8 +110,6 @@ CMD ["/bin/bash"] + cat /etc/os-release
|
||||
|
||||
#### 错误示例
|
||||
|
||||
如下代码块所示,展示了相关示例:
|
||||
|
||||
```docker
|
||||
## ❌ 容器启动后立即退出
|
||||
|
||||
@@ -126,8 +118,6 @@ CMD service nginx start
|
||||
|
||||
#### 原因分析
|
||||
|
||||
如下代码块所示,展示了相关示例:
|
||||
|
||||
```bash
|
||||
1. CMD service nginx start
|
||||
↓ 被转换为
|
||||
@@ -144,8 +134,6 @@ CMD service nginx start
|
||||
|
||||
#### 正确做法
|
||||
|
||||
如下代码块所示,展示了相关示例:
|
||||
|
||||
```docker
|
||||
## ✅ 让 nginx 在前台运行
|
||||
|
||||
@@ -163,8 +151,6 @@ CMD ["nginx", "-g", "daemon off;"]
|
||||
|
||||
#### 单独使用 CMD
|
||||
|
||||
如下代码块所示,展示了相关示例:
|
||||
|
||||
```docker
|
||||
## Dockerfile
|
||||
|
||||
@@ -178,8 +164,6 @@ $ docker run myimage curl -v ... # 完全覆盖
|
||||
|
||||
#### 搭配 ENTRYPOINT
|
||||
|
||||
如下代码块所示,展示了相关示例:
|
||||
|
||||
```docker
|
||||
## Dockerfile
|
||||
|
||||
@@ -200,8 +184,6 @@ $ docker run myimage http://other.com # curl -s http://other.com(参数覆盖
|
||||
|
||||
#### 1. 优先使用 exec 格式
|
||||
|
||||
如下代码块所示,展示了相关示例:
|
||||
|
||||
```docker
|
||||
## ✅ 推荐
|
||||
|
||||
@@ -214,8 +196,6 @@ CMD ["sh", "-c", "echo $PATH && python app.py"]
|
||||
|
||||
#### 2. 确保应用在前台运行
|
||||
|
||||
如下代码块所示,展示了相关示例:
|
||||
|
||||
```docker
|
||||
## ✅ 前台运行
|
||||
|
||||
@@ -231,8 +211,6 @@ CMD systemctl start nginx
|
||||
|
||||
#### 3. 使用双引号
|
||||
|
||||
如下代码块所示,展示了相关示例:
|
||||
|
||||
```docker
|
||||
## ✅ 正确:双引号
|
||||
|
||||
@@ -245,8 +223,6 @@ CMD ['node', 'server.js']
|
||||
|
||||
#### 4. 配合 ENTRYPOINT 使用
|
||||
|
||||
如下代码块所示,展示了相关示例:
|
||||
|
||||
```docker
|
||||
## 用于可配置参数的场景
|
||||
|
||||
@@ -275,8 +251,6 @@ CMD ["echo", "second"] # 只有这个生效
|
||||
|
||||
#### Q:如何在 CMD 中使用环境变量?
|
||||
|
||||
如下代码块所示,展示了相关示例:
|
||||
|
||||
```docker
|
||||
## 方法1:使用 shell 格式
|
||||
|
||||
|
||||
Reference in New Issue
Block a user