이 글은 Compose 파일 구조와 Docker Compose 도구 설치에 대한 지식을 포함하여 Docker에서의 Compose에 대한 지식을 제공합니다.
Docker Compose란 무엇인가요?
Docker compose는 다양한 컨테이너에서 실행되는 다양한 서버를 오케스트레이션하고 통합하는 컨테이너 오케스트레이션 기능입니다.
통합된 방식으로 대부분의 컨테이너를 관리하는 데 사용할 수 있습니다. 네트워크, 포트, 마운트 등을 포함하되 이에 국한되지 않습니다. Compose는 컨테이너 및 이미지와 관련된 일련의 작업을 수행하는 데 사용할 수 있습니다. 그것은 컨테이너를 관리하는 기능입니다
Compose의 파일 구조는 일반적으로 yml 파일의 구조를 의미합니다.
yml 파일은 키-값 형식의 파일입니다.
yml 파일은 형식에 매우 민감합니다.
예:
house: family: name: Doe parents: - John - Jane children: - Paul - Mark - Simone address: number: 34 street: Main Street city: Nowheretown zipcode: 1234
yml 위와 같은 파일 형식으로, 레벨별 대응이 필요하며 레벨 사이에는 공백이 두 개 있습니다.
참고: 키의 한 수준에 여러 값이 있는 경우 다음 수준에서도 사용할 수 있습니다. 또한 짧은 가로 막대로 시작하고 여러 값에 대해 여러 개의 끝 가로 막대를 쓰는 두 개의 빈 공간이 있습니다.
Field | Description |
---|---|
build dockerfile centext | Dockerfile 파일 이름의 경로를 지정하여 이미지 컨텍스트를 빌드하세요 |
image ㅋㅋㅋ 이미지 지정 | |
기본 명령어를 덮어쓰면서 명령어를 실행합니다. | |
컨테이너 이름은 고유하므로 컨테이너 이름을 지정하세요. 사용자 정의 이름을 지정하면 scale | |
배포 및 서비스 실행과 관련된 구성을 지정할 수 없습니다. Swarm 모드 | |
환경 변수 추가 | |
만 사용할 수 있습니다. Network | |
컨테이너 포트를 노출합니다. -p와 동일하지만 포트 번호는 60 | |
Mount 호스트 경로 또는 명령 볼륨 | |
restart 전략, 기본값보다 커야 합니다. no , Always, on-failure, Except-stoped | |
Container hostname |
: 미러 생성 시 정의 방법
dockerfile: dockerfile을 사용하여 빌드하는 방법
context: 서비스 docerfile 파일의 경로
images: 사용할 이미지 이름을 지정할 수 있습니다. 예: Images: 이미지 이름, 참고: 그 뒤에 공백이 있습니다.
command:
container name명령문 실행: 컨테이너 이름이 고유하므로 컨테이너 이름을 지정하는 데 사용됩니다. 사용자 정의 이름을 지정하면 확장할 수 없습니다(복제 세트 설정)#복제 세트: 이미지를 여러 컨테이너로 만듭니다. 이러한 여러 컨테이너의 실행 환경 및 기타 측면은 완전히 동일합니다. 컨테이너 아키텍처의 컨테이너가 종료되면 동일한 컨테이너를 직접 시작하여 복제본 세트 수를 유지할 수 있는 것이 복제본 세트의 개념이자 K8s의 핵심이기도 합니다. 마이크로서비스의 속도를 향상시키고 재해 복구를 개선하며 높은 동시성 성능을 제공할 수 있습니다
deploy: 컨트롤러이며 k8s에서는 복제본 세트를 제어하고 관리하기 위한 플러그인입니다
restart: 다시 시작 전략 , 기본값은 닫는 것입니다. 그 이후에 시작되지 않으면 항상 닫혀 있으면 수동으로 닫는지 여부에 관계없이 닫힌 상태에서 컨테이너를 자동으로 시작합니다. 실패 시 컨테이너 om3, Compose의 일반적으로 사용되는 명령
필드PS | |
top | |
logs | |
down | |
중지/시작/다시 시작 | |
docker compose基本使用格式:docker-compose [options] [COMMAND] [ARGS…] docker-compose选项:
二、安装docker compose工具1、下载curl -L https://github.com/docker/compose/releases/download/1.23.2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose 로그인 후 복사 首次连接下载的时候,可能会提示失误或者连接不上,可能是因为网络原因,可以多试几次 2、添加权限文件在刚下载之后,默认是没有执行权限的,所以需要手动添加执行权限 chmod +x /usr/local/bin/docker-compos 로그인 후 복사 3、运行docker-composedocker-compose 로그인 후 복사 可以看到,现在已经正常执行了 三、编译镜像手动创建下面的文件(dockerfile文件之前有的话,直接拉取过来也是可以的) tree . ├── docker-compose.yml ├── nginx │ ├── Dockerfile │ ├── nginx-1.12.0.tar.gz └── wwwroot └── index.html 로그인 후 복사 其中yml文件内部 cat docker-compose.yml version: '3' services: nginx: hostname: nginx build: context: ./nginx dockerfile: Dockerfile ports: - 1321:80 - 1707:443 networks: - cluster volumes: - ./wwwroot: /usr/local/nginx/html networks: cluster: 로그인 후 복사 nginx的dockerfile文件 cat ./nginx/Dockerfile FROM centos:7 ADD nginx-1.12.0.tar.gz /tmp RUN yum -y install pcre-devel zlib-devel gcc gcc-c++ make &> /dev/null \ && useradd -M -s /sbin/nologin nginx \ && cd /tmp/nginx-1.12.0/ \ && ./configure \ --prefix=/usr/local/nginx \ --user=nginx \ --group=nginx \ --with-http_stub_status_module &> /dev/null \ && make &> /dev/null \ && make install &> /dev/null VOLUME ["/usr/local/nginx/html"] EXPOSE 80 CMD ["/usr/local/nginx/sbin/nginx","-g","daemon off;"] 로그인 후 복사 index.html文件中就是自己配置的网页信息,就不多做介绍了 确定之后,编译 docker-compose -f docker-compose.yml up -d 로그인 후 복사 查看运行结果 docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES da38007f09ab dockercompose_nginx "/usr/local/nginx/sb…" About a minute ago Up About a minute 0.0.0.0:666->80/tcp, :::666->80/tcp, 0.0.0.0:667->443/tcp, :::667->443/tcp dockercompose_nginx_1 #可以看到,这个端口信息就是我们在yml文件中设置的端口信息,直接在这个生效了 docker images REPOSITORY TAG IMAGE ID CREATED SIZE dockercompose_nginx latest b1e4b9dfa72d 3 minutes ago 478MB 로그인 후 복사 访问网址端口,查看该网站页面 curl 192.168.75.51:666 hello #显示结果 cat ./wwwroot/index.html hello 로그인 후 복사 推荐学习:《docker视频教程》 |
위 내용은 Docker 기본 구성 파일 구조 및 설치 도구(자세한 예)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!