aqu*_*tae 106 docker docker-compose
我有一个docker-compose.yml包含几个容器.其中三个用于我的应用程序(客户端,服务器和数据库),其余用于各种开发工具(例如psql,npm,manage.py等).当我做docker-compose up所有这些都开始了,但我只想要三个主要的开始.由于我已经指定了链接,我可以docker-compose up client从这三个开始,但是输出只来自那个容器.那么,有没有办法做到以下其中一种:
docker-compose updocker-compose up clientwsl*_*wsl 184
您可以使用以下命令启动容器:
$ docker-compose up -d client
Run Code Online (Sandbox Code Playgroud)
这将在后台运行容器,输出将是可用的
$ docker-compose logs
Run Code Online (Sandbox Code Playgroud)
它将包含所有已启动的容器
acr*_*ran 32
从docker-compose1.28.0开始,新的服务配置文件就是为此而制作的!随着profiles您可以标记服务只在启动特定的配置文件:
services:
client:
# ...
db:
# ...
npm:
profiles: ["cli-only"]
# ...
Run Code Online (Sandbox Code Playgroud)
docker-compose up # start main services, no npm
docker-compose run --rm npm # run npm service
docker-compose --profile cli-only up # start main and all "cli-only" services
Run Code Online (Sandbox Code Playgroud)
从docker-composev1.5 开始,可以使用标志传递多个docker-compose.yml文件-f。这允许您将开发工具拆分为一个单独的工具docker-compose.yml,然后仅按需包含:
# start and attach to all your essential services
docker-compose up
# execute a defined command in docker-compose.dev.yml
docker-compose -f docker-compose.dev.yml run npm update
# if your command depends_on a service you need to include both configs
docker-compose -f docker-compose.yml -f docker-compose.dev.yml run npm update
Run Code Online (Sandbox Code Playgroud)
有关这方面的深入讨论,请参阅docker/compose#1896。
Hug*_*o R 30
启动docker-compose文件中定义的特定服务.例如,如果你有一个docker-compose.yml
sudo docker-compose start db
Run Code Online (Sandbox Code Playgroud)
给出如下的撰写文件:
version: '3.3'
services:
db:
image: mysql:5.7
ports:
- "3306:3306"
volumes:
- ./db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: yourPassword
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: yourPassword
wordpress:
depends_on:
- db
image: wordpress:latest
ports:
- "80:80"
volumes:
- ./l3html:/var/www/html
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: yourPassword
volumes:
db_data:
l3html:
Run Code Online (Sandbox Code Playgroud)
有些时候你想在启动整个套件之前只启动mySQL(有时你只想填充一个数据库).
rap*_*ngy 21
哦,就这样:
$ docker-compose up client server database
Run Code Online (Sandbox Code Playgroud)
小智 8
一个好的解决方案是只运行像这样的所需服务:
docker-compose up --build $(<services.txt)
Run Code Online (Sandbox Code Playgroud)
和 services.txt 文件如下所示:
services1 services2, etc
Run Code Online (Sandbox Code Playgroud)
当然如果有依赖(depends_on),需要一起运行相关的服务。
--build 是可选的,仅作为示例。
| 归档时间: |
|
| 查看次数: |
81289 次 |
| 最近记录: |