Docker 시리즈(14부): Docker Compose
7514 단어 docker
에서 우리는
docker container run -p 80:4000 -v $(pwd):/site bretfisher/jekyll-serve
.yaml 파일에서 다음을 사용합니다.
services:
jekyll:
image: bretfisher/jekyll-serve
volumes:
- .:/site
ports:
- '80:4000'
jekyll
는 컨테이너 이름입니다. 이미지를 bretfisher/jekyll-serve
로 설정했습니다. 볼륨의 경우 .:/site
를 의미하는 $(pwd):/site
를 사용했습니다. 여기 "."$(pwd) 도 참조하는 현재 디렉토리를 의미합니다. 포트를 80:4000
로 설정했습니다.명령과 .yaml 파일을 비교하고 차이점을 확인할 수 있습니다.
또한 .yaml 파일의 다른 예를 볼 수 있습니다.
services:
wordpress:
image: wordpress
ports:
- 8080:80
environment:
WORDPRESS_DB_HOST: mysql
WORDPRESS_DB_NAME: wordpress
WORDPRESS_DB_USER: example
WORDPRESS_DB_PASSWORD: examplePW
volumes:
- ./wordpress-data:/var/www/html
mysql:
# we sue mariadb here for arm support
# mariadb is a fork of MySQL that's often faster and better multi-platform
image: mariadb
environment:
MYSQL_ROOT_PASSWORD: examplerootPW
MYSQL_DATABASE: wordpress
MYSQL_USER: example
MYSQL_PASSWORD: examplePW
volumes:
- mysql-data:/var/lib/mysql
volumes:
mysql-data:
여기서는 2개의 서비스와 1개의 볼륨이 사용되었습니다. 여기에서 ENvironment 변수를 볼 수 있습니다.
environment:
WORDPRESS_DB_HOST: mysql
WORDPRESS_DB_NAME: wordpress
WORDPRESS_DB_USER: example
WORDPRESS_DB_PASSWORD: examplePW
볼륨을 사용했음을 알 수 있습니다.
volumes:
- ./wordpress-data:/var/www/html
어디 . 현재 디렉터리를 의미하며 wordpress-data:
는 볼륨 이름을 설정하는 것입니다. 나머지 부분(/var/www/html)은 볼륨 경로를 설정하는 부분입니다.또한 다른 용기에 대해서도
` 환경:
MYSQL_ROOT_PASSWORD: examplerootPW
MYSQL_DATABASE: 워드프레스
MYSQL_USER: 예
MYSQL_PASSWORD: examplePW
볼륨:
- mysql-data:/var/lib/mysql
볼륨:
mysql 데이터:`
여기에서 이 환경 변수와 볼륨도 설정합니다.
CLI 작성
사용하고 배워봅시다.
여기에서 이 compose-sample-2 폴더를 사용합시다repo.
docker-compose.yml 파일에 들어갈 수 있습니다.
nginx.config 파일이 있고 .yaml 파일에서 이것을 볼륨으로 사용했습니다.
volumes:
- ./nginx.conf:/etc/nginx/conf.d/default.conf:ro
./nginx.conf:
는 nginx.conf라는 로컬 파일을 의미하며 "/etc/nginx/conf.d/default.conf:ro"에서 "./nginx.conf"로 모든 파일을 보냈습니다.또한 여기서는 2개의 컨테이너를 사용하고 있으며 "nginx:1.13"및 "httpd"이미지를 사용했습니다.
이제 CLI에서 이 .yaml 파일을 작성하면 자동으로 컨테이너가 실행됩니다.
docker-compose up
터미널에서 우리는 볼 수 있습니다
주의 깊게 봐! web_1 및 proxy_1이 언급되었습니다. 컨테이너 이름을 웹 및 프록시로 설정했음을 기억하십시오.
localhost를 다시 로드하면 자동으로 proxy_1 및 web_1이 추가됩니다.
참고: localhost에는 실제로 nginx 서버가 아닌 apache 서버(httpd)가 있습니다.
트래픽은 실제로 nginx 서버(프록시)에서 apache(httpd)로 이동하고 있으며 apache는 기본 index.html로 응답합니다. 따라서 새로고침할 때마다 다음이 표시됩니다.
web_1 및 proxy_1이 로그에 추가됩니다.
항상 프록시에 먼저 도달한 다음 백엔드 웹 서버 아파치(httpd)에 도달합니다.
Ctrl + C를 사용하여 중지합시다.
다음을 사용하여 다시 실행할 수 있습니다.
docker-compose up -d
컨테이너는 백그라운드에서 실행되므로 로그가 없습니다. localhost를 확인할 수 있습니다.
로그를 보려면 다음 명령을 사용하십시오.
docker-compose logs
실행 중인 컨테이너를 살펴보겠습니다.
docker-compose ps
우리는 사용할 수 있습니다
docker-compose top
내부에서 실행되는 모든 서비스를 보려면.
마지막으로 컨테이너를 중지하고 청소하려면 다음을 사용하십시오.
docker-compose down
지금 밖에는 아무것도 없어
Reference
이 문제에 관하여(Docker 시리즈(14부): Docker Compose), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/mitul3737/docker-series-part-14-docker-compose-2pcd텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)