Docker에서는 YAML 파일을 실행하면 파일에 정의된 여러 컨테이너가 순차적으로 시작됩니다. 이것이 컨테이너 오케스트레이션을 구현하는 도구는 "docker-compose"입니다. YAML 파일은 일련의 컨테이너 및 컨테이너 런타임 속성을 정의하며 Compose는 이러한 구성을 기반으로 컨테이너를 관리합니다.
이 튜토리얼의 운영 환경: linux5.9.8 시스템, docker-1.13.1 버전, Dell G3 컴퓨터.
사용된 도구입니다. 컨테이너 오케스트레이션을 위해
docker-compose
Docker Compose 도구를 설치하여 YAML 파일을 기반으로 컨테이너 오케스트레이션을 구현할 수 있습니다. YAML 파일은 일련의 컨테이너와 컨테이너 런타임 속성을 정의합니다. 컨테이너를 관리합니다.
epel 소스에 docker-compose 설치
[root@worker1 ~]# yum install epel-release -y [root@worker1 ~]# yum install docker-compose -y
docker-compose 명령 사용
형식: docker-compose [옵션]
옵션
docker-compose .yaml 파일을 작성하여 nginx, php
1) 환경 준비
[root@master ~]# yum install docker -y [root@master ~]# yum install epel-release -y [root@master ~]# yum install docker-compose -y [root@master ~]# systemctl restart docker [root@master ~]# systemctl restart firewalld
2) yaml 파일 생성
# 编写yam文件,在文件实现自动启动nginx容器 [root@worker1 ~]# vim docker-compose.yaml
version: '2' services: web: image: nginx:1.17.10 ports: - 80:80 volumes: - /opt/html:/web - /opt/conf/nginx.conf:/etc/nginx/nginx.conf
2) nginx가 컨테이너를 시작합니다
[root@worker1 ~]# docker-compose up -d
yaml 파일을 기반으로 시작된 컨테이너의 상태 보기
[root@master ~]# docker-compose ps Name Command State Ports -------------------------------------------------------------- root_web_1 nginx -g daemon off; Up 0.0.0.0:80->80/tcp
컨테이너 시작 과정에서 로그 정보 보기
[root@worker1 ~]# docker-compose logs
yaml 파일을 기반으로 시작된 컨테이너를 닫습니다
[root@worker1 ~]# docker-compose down
3) 두 번째 단계를 기반으로 yaml 파일을 편집하고 PHP 서비스를 시작합니다
첫 번째 단계: yaml 파일 수정
version: '2'services: web: image: nginx ports: - 80:80 volumes: - /opt/html:/web - /opt/conf/nginx.conf:/etc/nginx/nginx.conf links: # 指定php容器的名称 - php php: # 此处需要和links中的值保持一致 image: php:5.6-fpm container_name: php # 此处需要和links中的值保持一致 volumes: - /opt/php:/php
두 번째 단계: nginx 구성 파일 수정
[root@master ~]# vi /opt/conf/nginx.conf location ~ \.php$ { root /php; fastcgi_pass php:9000; # 指定php容器名称,docker会自动将名称转换成ip fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }
세 번째 단계: 서비스 시작
[root@master ~]# docker-compose up -d [root@master ~]# docker-compose ps Name Command State Ports ----------------------------------------------------------------------- php docker-php-entrypoint php-fpm Up 9000/tcp root_web_1 nginx -g daemon off; Up 0.0.0.0:80->80/tcp
1 Centos7 서버를 준비하고 네트워크가 정상인지 확인
2 서버 docker가 정상적으로 실행되고 있는지 확인하세요. 그렇지 않다면 설치해주세요
3 wordpress.yml 템플릿 파일이 올바른 형식인지 작성해주세요
4 새로운 서비스 mysql과 wordpress를 만들어주세요. wordpress는 mysql 서비스에 따라 다릅니다
5 /opt/wordpress/data 디렉터리를 mysql 컨테이너의 /var/lib/mysql 디렉터리에 마운트합니다. 다음으로 영구 저장소를 만듭니다!
6 MySQL 초기 정보에는 다음이 포함됩니다: 루트 비밀번호, 생성된 데이터베이스, 일반 사용자, 일반 사용자의 비밀번호
7 WordPress 데이터베이스 구성이 정확합니다
8 WordPress는 포트 매핑을 수행합니다. wordprss의 포트 80을 호스트의 포트 8000에 매핑합니다.
# 这个yaml文件要启动两个容器 version: '2' services: # 第一个容器:wordpress容器 wordpress: # 指定镜像名称 image: wordpress # 将容器的80端口映射到宿主机的8000 ports: - 8000:80 # 设置将mysql容器的名称解析程序mysql容器的IP links: - mysql # 设置容器之间依赖关系,设置成必须先启动mysql容器才启动wordpress容器 depends_on: - mysql # 第二个容器:MySQL容器 mysql: # 指定镜像名名称是mysql image: mysql:5.6 # 设置容器的名称的是mysql container_name: mysql # 设置逻辑卷挂载 volumes: - /opt/wordpress/data:/var/lib/mysql # 设置mysql容器的环境变量 environment: # 设置mysql容器中mysql的root密码为123 MYSQL_ROOT_PASSWORD: 123 # 为wordpress创建一个数据库,库名是wordpress MYSQL_DATABASE: wp # 创建一个普通用户wp MYSQL_USER: wp # 为上面的普通用户设置密码是wp MYSQL_PASSWORD: wp
9 docker-compose가 성공적으로 각 컨테이너를 시작하고 wordpress 페이지에 성공적으로 액세스했습니다
[root@master ~]# docker-compose up -d [root@master ~]# docker ps
권장 학습: "docker 비디오 튜토리얼"
위 내용은 도커 컨테이너 오케스트레이션이란 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!