J'ai un docker-compose.yml
qui contient plusieurs conteneurs. Trois d’entre eux sont destinés à mon application (client, serveur et base de données) et le reste à divers outils de développement (par exemple, psql, npm, manage.py, etc.). Quand je fais docker-compose up
tous sont démarrés, mais je veux seulement que les trois principaux commencent. En raison des liens que j'ai spécifiés, je ne peux démarrer que ces trois éléments avec docker-compose up client
, mais la sortie ne provient que de ce conteneur. Alors, y a-t-il un moyen de faire l'une des choses suivantes:
docker-compose up
docker-compose up client
Vous pouvez démarrer des conteneurs en utilisant:
$ docker-compose up -d client
Cela exécutera les conteneurs en arrière-plan et la sortie sera disponible à partir de
$ docker-compose logs
et il se composera de tous vos conteneurs commencés
Pour démarrer un service particulier défini dans votre fichier docker-compose. par exemple si vous avez un docker-compose.yml
Sudo docker-compose start db
étant donné un fichier de composition comme:
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:
Parfois, vous ne voulez démarrer que MySQL (parfois, vous ne souhaitez que remplir une base de données) avant de démarrer votre suite.
Vous ne voulez généralement pas faire cela. Avec Docker Compose, vous définissez services que composez votre application. npm
et manage.py
ne sont que des commandes de gestion. Vous n'avez pas besoin d'un conteneur pour eux. Si vous devez, par exemple, créer vos tables de base de données avec manage.py
, il vous suffit de:
docker-compose run client python manage.py create_db
Pensez-y comme aux dynos uniques utilisés par Heroku.
Si vous avez vraiment besoin de traiter ces commandes de gestion comme des conteneurs distincts (et d'utiliser également Docker Compose pour celles-ci), vous pouvez créer un fichier .yml
séparé et lancer Docker Compose à l'aide de la commande suivante:
docker-compose up -f my_custom_docker_compose.yml