docker-compose
是一个用于定义和运行多容器 Docker 应用的工具。docker-compose
文件(通常命名为 docker-compose.yml
)允许你定义服务、网络和卷等配置。
command
是 docker-compose
文件中的一个指令,用于覆盖 Docker 镜像的默认启动命令。你可以使用 command
来指定容器启动时要运行的命令。
以下是 docker-compose.yml
文件中 command
的用法示例:
command
用法假设你有一个简单的 Python 应用,并且你希望在容器启动时运行一个 Python 脚本。你的项目目录结构如下:
my_project/
├── docker-compose.yml
└── app.py
app.py
文件内容:
print("Hello, Docker Compose!")
docker-compose.yml
文件内容:
version: '3.8'
services:
app:
image: python:3.8
volumes:
- .:/app
working_dir: /app
command: python app.py
在这个示例中,command: python app.py
指定了容器启动时要运行的命令。
假设你有一个基于 Node.js 的应用,Docker 镜像的默认命令是 npm start
,但你希望在某些情况下运行 npm test
。你的项目目录结构如下:
my_project/
├── docker-compose.yml
└── package.json
package.json
文件内容:
{
"name": "my_project",
"version": "1.0.0",
"scripts": {
"start": "node index.js",
"test": "echo 'Running tests...' && exit 0"
}
}
docker-compose.yml
文件内容:
version: '3.8'
services:
app:
image: node:14
volumes:
- .:/app
working_dir: /app
command: npm test
在这个示例中,command: npm test
覆盖了 Docker 镜像的默认命令 npm start
,并在容器启动时运行 npm test
。
entrypoint
和 command
有时你可能需要同时使用 entrypoint
和 command
。entrypoint
指定了容器启动时的入口点,而 command
则是传递给入口点的参数。
假设你有一个基于 Ubuntu 的容器,并且你希望在容器启动时运行一个自定义脚本。你的项目目录结构如下:
my_project/
├── docker-compose.yml
└── custom_script.sh
custom_script.sh
文件内容:
#!/bin/bash
echo "Running custom script..."
docker-compose.yml
文件内容:
version: '3.8'
services:
app:
image: ubuntu:20.04
volumes:
- .:/app
working_dir: /app
entrypoint: /bin/bash
command: custom_script.sh
在这个示例中,entrypoint: /bin/bash
指定了容器的入口点为 /bin/bash
,而 command: custom_script.sh
则是传递给 /bin/bash
的参数。
docker-compose
在项目目录中运行以下命令来启动容器:
docker-compose up
这将根据 docker-compose.yml
文件中的配置启动容器,并运行指定的命令。
command
用于覆盖 Docker 镜像的默认启动命令。docker-compose.yml
文件中使用 command
指定容器启动时要运行的命令。entrypoint
和 command
可以结合使用,entrypoint
指定入口点,command
传递参数。领取专属 10元无门槛券
手把手带您无忧上云