특정 컨테이너에 대해서만 도커 포장
나는 있습니다docker-compose.yml
몇 개의 컨테이너를 포함하고 있습니다.이 중 3개는 내 앱(클라이언트, 서버 및 데이터베이스)용이고 나머지는 다양한 개발 도구(예: psql, npm, manage.py 등)용입니다.내가 할 때docker-compose up
모두 시작되었지만, 저는 세 가지 주요한 것만 시작했으면 합니다.지정한 링크 때문에 이 세 가지만 시작할 수 있습니다.docker-compose up client
하지만 그 출력은 그 한 용기에서만 나옵니다.다음 중 하나를 수행할 수 있는 방법이 있습니까?
- 도커에게 어떤 용기가 시작되어야 하는지 알려줍니다.
docker-compose up
- 연결된 모든 컨테이너에서 출력 가져오기
docker-compose up client
다음을 사용하여 컨테이너를 시작할 수 있습니다.
$ docker-compose up -d client
이렇게 하면 컨테이너가 백그라운드에서 실행되고 출력은 다음에서 사용할 수 있습니다.
$ docker-compose logs
시작한 모든 컨테이너로 구성됩니다.
도커 합성 파일에 정의된 특정 서비스를 시작합니다.예를 들어 도커-docker.yml이 있는 경우
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만 시작하고 싶을 때가 있습니다(때로는 데이터베이스만 작성하려는 경우도 있습니다).
갱신하다
1.28.0부터 새로운 서비스 프로필이 이를 위해 만들어졌습니다!와 함께profiles
서비스를 특정 프로필에서만 시작하도록 표시할 수 있습니다.
services:
client:
# ...
db:
# ...
npm:
profiles: ["cli-only"]
# ...
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
원답
v1.5부터는 플래그가 있는 여러 파일을 전달할 수 있습니다.이를 통해 개발 도구를 별도로 분할할 수 있습니다.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
이에 대한 자세한 내용은 도커/구성 #1896을 참조하십시오.
오, 이것만 있으면:
$ docker-compose up client server database
한 가지 좋은 솔루션은 다음과 같은 원하는 서비스만 실행하는 것입니다.
docker-compose up --build $(<services.txt)
서비스를 제공합니다.txt 파일은 다음과 같습니다.
services1 services2, etc
물론 종속성(dependency_on)이 있으면 관련 서비스를 함께 실행해야 합니다.
--build는 예를 들어 선택 사항입니다.
저는 사실 현재 제 프로젝트에 대해 비슷한 도전을 했습니다.그것은 제가 도커-콤포지-프로파일(또는 줄여서 dcp)이라고 부르는 작은 스크립트를 작성해야 한다는 생각을 하게 했습니다.저는 이것을 오늘 GitLab에 도커-콤포지-프로파일로 게시했습니다.간단히 말해, 다음과 같은 명령을 사용하여 사전 정의된 여러 도커 합성 프로파일을 시작할 수 있습니다.dcp -p some-services "up -d"
자유롭게 사용해 보고 피드백이나 추가 개선을 위한 제안을 해보십시오.
run 명령을 사용하여 실행할 서비스를 지정할 수 있습니다.주의: run 명령을 실행하면 포트가 호스트에 노출되지 않습니다.당신은 깃발을 사용해야 합니다.--service-ports
필요하다면 그렇게 하는 것.
docker-compose run --service-ports client server database
개의 러개인경이 .compose
먼저 파일을 추가해야 합니다. 파일을 작성할 때 각 서비스를 기억해야 합니다.아래를 보십시오.
docker-compose -f $(COMPOSE_FILES) -f $(ARM_64_COMPOSE_FILES) up -d app mysql_db_arm64
사용할 수 있습니다.docker compose up --build ${service-name} -d
여기서 flag -d는 분리 모드에서 실행하기 위한 것입니다.
당신은 보통 이것을 하고 싶지 않습니다.도커 합성을 사용하면 앱을 구성하는 서비스를 정의할 수 있습니다.npm
그리고.manage.py
관리 명령일 뿐입니다.당신은 그것들을 위한 용기가 필요하지 않습니다.필요한 경우 다음을 사용하여 데이터베이스 테이블을 만듭니다.manage.py
당신이 해야 할 일은 다음과 같습니다.
docker-compose run client python manage.py create_db
헤로쿠가 사용하는 일회성 다이노스라고 생각하세요.
및 Composite를 사용해야 경우) 의 "Docker Composite"를 생성할 수 있습니다..yml
다음 명령을 사용하여 Docker Compose를 파일로 저장하고 시작합니다.
docker-compose up -f my_custom_docker_compose.yml
언급URL : https://stackoverflow.com/questions/30233105/docker-compose-up-for-only-certain-containers
'programing' 카테고리의 다른 글
Alpine 리눅스 기반 오라클 (0) | 2023.08.05 |
---|---|
엔티티 프레임워크 동일한 테이블 다대다 관계 (0) | 2023.08.05 |
스위프트에서 십진수를 이진수로 변환하는 방법은 무엇입니까? (0) | 2023.08.05 |
jQuery를 사용하여 CSS "top" 및 "left" 특성 제거 (0) | 2023.08.05 |
MariaDB 트리거에서 JSON_EXTRACT 사용 (0) | 2023.08.05 |