複数のコンテナを含むdocker-compose.yml
があります。それらのうち3つはアプリ(クライアント、サーバー、データベース)用で、残りはさまざまな開発ツール(psql、npm、manage.pyなど)用です。 docker-compose up
を実行すると、それらはすべて開始されますが、開始するのは主に3つだけです。指定したリンクのため、これらの3つだけをdocker-compose up client
で開始できますが、出力はその1つのコンテナーからのみです。だから、次のいずれかを行う方法があります:
docker-compose up
によって開始されたコンテナーをdocker-composeに指示しますdocker-compose up client
からリンクされたすべてのコンテナーから出力を取得する次を使用してコンテナを起動できます。
$ docker-compose up -d client
これにより、コンテナがバックグラウンドで実行され、出力が利用可能になります
$ docker-compose logs
開始したすべてのコンテナで構成されます
Docker-composeファイルで定義された特定のサービスを開始します。たとえば、docker-compose.ymlがある場合
Sudo docker-compose start db
次のような構成ファイルを指定します。
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:
スイート全体を開始する前に、mySQLのみを開始したい場合もあります(データベースにデータを追加したい場合もあります)。
通常、これを行いたくありません。 Docker Composeでは、アプリをservices thatcomposeと定義します。 npm
およびmanage.py
は単なる管理コマンドです。それらのコンテナは必要ありません。必要な場合は、manage.py
を使用してデータベーステーブルを作成すると、必要な作業は次のとおりです。
docker-compose run client python manage.py create_db
Herokuが使用する1回限りのダイノと考えてください。
これらの管理コマンドを個別のコンテナとして扱う必要がある場合(およびこれらにDocker Composeを使用する場合)、個別の.yml
ファイルを作成し、次のコマンドでDocker Composeを起動できます。
docker-compose up -f my_custom_docker_compose.yml