찾다
운영 및 유지보수DockerDocker 기본 구성 파일 구조 및 설치 도구(자세한 예)

이 글은 Compose 파일 구조와 Docker Compose 도구 설치에 대한 지식을 포함하여 Docker에서의 Compose에 대한 지식을 제공합니다.

Docker 기본 구성 파일 구조 및 설치 도구(자세한 예)

Docker Compose란 무엇인가요?

Docker compose는 다양한 컨테이너에서 실행되는 다양한 서버를 오케스트레이션하고 통합하는 컨테이너 오케스트레이션 기능입니다.

통합된 방식으로 대부분의 컨테이너를 관리하는 데 사용할 수 있습니다. 네트워크, 포트, 마운트 등을 포함하되 이에 국한되지 않습니다. Compose는 컨테이너 및 이미지와 관련된 일련의 작업을 수행하는 데 사용할 수 있습니다. 그것은 컨테이너를 관리하는 기능입니다

1. Compose 파일 구조

1. yml 파일

Compose의 파일 구조는 일반적으로 yml 파일의 구조를 의미합니다.

yml 파일은 키-값 형식의 파일입니다.

yml 파일은 형식에 매우 민감합니다.

  1. 공백 들여쓰기만 인식하고 탭 키의 들여쓰기 형식은 인식하지 않습니다.
  2. 보통 공백 두 개로 시작 부분을 들여쓰기합니다
  3. 문자 뒤 콜론, 쉼표, 대시 및 기타 문자를 포함하되 이에 국한되지 않는 한 칸씩 들여쓰기합니다. 문자는 한 칸 들여쓰기해야 합니다
  4. 댓글 지원 #
  5. 특수 문자가 포함된 경우 작은따옴표로 묶어야 합니다.
  6. 부울 값은 따옴표로 묶어야 합니다

예:

  house:
    family:
      name: Doe
      parents: 
        - John
        - Jane
      children: 
        - Paul
        - Mark
        - Simone
    address: 
      number: 34
      street: Main Street
      city: Nowheretown
      zipcode: 1234

yml 위와 같은 파일 형식으로, 레벨별 대응이 필요하며 레벨 사이에는 공백이 두 개 있습니다.

참고: 키의 한 수준에 여러 값이 있는 경우 다음 수준에서도 사용할 수 있습니다. 또한 짧은 가로 막대로 시작하고 여러 값에 대해 여러 개의 끝 가로 막대를 쓰는 두 개의 빈 공간이 있습니다.

2. Compose 구성에서 일반적으로 사용되는 필드

commandcontainer namedeployenvironmentnetworksportsvolumtsrestarthostname
Field Description
build dockerfile centext Dockerfile 파일 이름의 경로를 지정하여 이미지 컨텍스트를 빌드하세요
image ㅋㅋㅋ 이미지 지정
기본 명령어를 덮어쓰면서 명령어를 실행합니다.
컨테이너 이름은 고유하므로 컨테이너 이름을 지정하세요. 사용자 정의 이름을 지정하면 scale
배포 및 서비스 실행과 관련된 구성을 지정할 수 없습니다. Swarm 모드
환경 변수 추가
만 사용할 수 있습니다. Network
컨테이너 포트를 노출합니다. -p와 동일하지만 포트 번호는 60
Mount 호스트 경로 또는 명령 볼륨
restart 전략, 기본값보다 커야 합니다. no , Always, on-failure, Except-stoped
Container hostname
build

: 미러 생성 시 정의 방법

dockerfile

: dockerfile을 사용하여 빌드하는 방법

context

: 서비스 docerfile 파일의 경로

images

: 사용할 이미지 이름을 지정할 수 있습니다. 예: Images: 이미지 이름, 참고: 그 뒤에 공백이 있습니다.

command

:

container name

명령문 실행: 컨테이너 이름이 고유하므로 컨테이너 이름을 지정하는 데 사용됩니다. 사용자 정의 이름을 지정하면 확장할 수 없습니다(복제 세트 설정)#복제 세트: 이미지를 여러 컨테이너로 만듭니다. 이러한 여러 컨테이너의 실행 환경 및 기타 측면은 완전히 동일합니다. 컨테이너 아키텍처의 컨테이너가 종료되면 동일한 컨테이너를 직접 시작하여 복제본 세트 수를 유지할 수 있는 것이 복제본 세트의 개념이자 K8s의 핵심이기도 합니다. 마이크로서비스의 속도를 향상시키고 재해 복구를 개선하며 높은 동시성 성능을 제공할 수 있습니다

deploy

: 컨트롤러이며 k8s에서는 복제본 세트를 제어하고 관리하기 위한 플러그인입니다

restart

: 다시 시작 전략 , 기본값은 닫는 것입니다. 그 이후에 시작되지 않으면 항상 닫혀 있으면 수동으로 닫는지 여부에 관계없이 닫힌 상태에서 컨테이너를 자동으로 시작합니다. 실패 시 컨테이너 om3, Compose의 일반적으로 사용되는 명령

필드 설명 미러 정보 재구축 현재 Docker Compose가 현재 제어하고 있는 컨테이너를 나열합니다. 복제본 세트 수에 해당하는 서버컨테이너 프로세스 표시, docker compose에 의해 제어되는 모든 프로세스에 의해 시작된 컨테이너컨테이너의 출력 정보 보기컨테이너, 네트워크, 데이터 볼륨 및 미러 삭제컨테이너 서비스 중지/시작/다시 시작
PS
top
logs
down
중지/시작/다시 시작

docker compose基本使用格式:docker-compose [options] [COMMAND] [ARGS…]

docker-compose选项

  1. –verbose:输出更多调试信息
  2. –version:打印版本并退出
  3. -f /–file FILE:使用特定的compose模板文件,默认为docker-compose.yml
  4. -p /–project-name NAME:指定项目名称,默认使用目录名称

二、安装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-compose

docker-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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
이 기사는 CSDN에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제
Linux와 함께 Docker 사용 : 포괄적 인 가이드Linux와 함께 Docker 사용 : 포괄적 인 가이드Apr 12, 2025 am 12:07 AM

Linux에서 Docker를 사용하면 개발 및 배포 효율성을 향상시킬 수 있습니다. 1. Docker 설치 : 스크립트를 사용하여 Ubuntu에 Docker를 설치하십시오. 2. 설치 확인 : Sudodockerrunhello-World를 실행하십시오. 3. 기본 사용 : Nginx 컨테이너 생성 Dockerrun-Namemy-Nginx-P8080 : 80-Dnginx. 4. 고급 사용 : DockerFile을 사용하여 사용자 정의 이미지를 만들고 빌드 및 실행하십시오. 5. 최적화 및 모범 사례 : 다단계 빌드 및 dockercompose를 사용하여 Dockerfiles를 작성하기위한 모범 사례를 따르십시오.

도커 모니터링 : 메트릭 수집 및 컨테이너 건강 추적도커 모니터링 : 메트릭 수집 및 컨테이너 건강 추적Apr 10, 2025 am 09:39 AM

Docker 모니터링의 핵심은 주로 CPU 사용, 메모리 사용, 네트워크 트래픽 및 디스크 I/O와 같은 지표를 포함하여 컨테이너의 작동 데이터를 수집하고 분석하는 것입니다. Prometheus, Grafana 및 Cadvisor와 같은 도구를 사용하면 컨테이너의 포괄적 인 모니터링 및 성능 최적화를 달성 할 수 있습니다.

Docker Swarm : 확장 가능하고 탄력적 인 컨테이너 클러스터 구축Docker Swarm : 확장 가능하고 탄력적 인 컨테이너 클러스터 구축Apr 09, 2025 am 12:11 AM

Dockerswarm은 확장 가능한 고도로 컨테이너 클러스터를 구축하는 데 사용될 수 있습니다. 1) Dockers -Warminit을 사용하여 떼 클러스터를 초기화하십시오. 2) Swarm 클러스터에 가입하여 Dockers-Warmjoin-Token을 사용하십시오. 3) DockerserviceCreate-namemy-nginx-replicas3nginx를 사용하여 서비스를 만듭니다. 4) DockerstackDeploy-Cdocker-Compose.ymlmyapp을 사용하여 복잡한 서비스를 배포합니다.

Kubernetes와 Docker : 엔터프라이즈 애플리케이션을위한 컨테이너 오케스트레이션Kubernetes와 Docker : 엔터프라이즈 애플리케이션을위한 컨테이너 오케스트레이션Apr 08, 2025 am 12:07 AM

Docker 및 Kubernetes를 사용하여 Enterprise Applications의 컨테이너 오케스트레이션을 수행하는 방법은 무엇입니까? 다음 단계를 통해 구현하십시오. Docker 이미지를 만들고 DockerHub로 푸시하십시오. Kubernetes에서 배포 및 서비스를 작성하여 응용 프로그램을 배포하십시오. 외부 액세스를 관리하기 위해 Insress를 사용하십시오. 성능 최적화 및 다단장 구성 및 자원 제약과 같은 모범 사례를 적용하십시오.

도커 문제 해결 : 일반적인 문제를 진단하고 해결합니다도커 문제 해결 : 일반적인 문제를 진단하고 해결합니다Apr 07, 2025 am 12:15 AM

Docker FAQ는 다음 단계를 통해 진단 및 해결할 수 있습니다. 1. 컨테이너 상태 및 로그보기, 2. 네트워크 구성 확인, 3. 볼륨이 올바르게 장착되도록하십시오. 이러한 방법을 통해 Docker의 문제는 빠르게 위치하고 고정되어 시스템 안정성과 성능을 향상시킬 수 있습니다.

Docker 인터뷰 질문 : Ace Your DevOps 엔지니어링 인터뷰Docker 인터뷰 질문 : Ace Your DevOps 엔지니어링 인터뷰Apr 06, 2025 am 12:01 AM

Docker는 DevOps 엔지니어에게 필수 기술입니다. 1. Docker는 포장 애플리케이션 및 컨테이너에 대한 종속성을 통해 격리 및 휴대 성을 달성하는 오픈 소스 컨테이너화 플랫폼입니다. 2. Docker는 네임 스페이스, 제어 그룹 및 연합 파일 시스템과 함께 작동합니다. 3. 기본 사용에는 컨테이너 생성, 실행 및 관리가 포함됩니다. 4. 고급 사용법에는 DockerCompose를 사용하여 다중 컨테이너 응용 프로그램을 관리하는 것이 포함됩니다. 5. 일반적인 오류에는 컨테이너 고장, 포트 매핑 문제 및 데이터 지속성 문제가 포함됩니다. 디버깅 기술에는 로그보기, 컨테이너 입력 및 자세한 정보보기가 포함됩니다. 6. 성능 최적화 및 모범 사례에는 이미지 최적화, 리소스 제약 조건, 네트워크 최적화 및 Dockerfile 사용을위한 모범 사례가 포함됩니다.

Docker Security Hardening : 컨테이너를 취약성으로부터 보호합니다Docker Security Hardening : 컨테이너를 취약성으로부터 보호합니다Apr 05, 2025 am 12:08 AM

Docker Security 향상 방법에는 다음이 포함됩니다. 1.-캡 드롭 매개 변수를 사용하여 Linux 기능을 제한, 2. 읽기 전용 컨테이너 생성, 3. Selinux 태그 설정. 이러한 전략은 취약성 노출을 줄이고 공격자 기능을 제한함으로써 컨테이너를 보호합니다.

Docker Volumes : 컨테이너의 지속적인 데이터 관리Docker Volumes : 컨테이너의 지속적인 데이터 관리Apr 04, 2025 am 12:19 AM

DockErvolumes는 컨테이너가 다시 시작, 삭제 또는 마이그레이션 될 때 데이터가 안전하게 유지되도록합니다. 1. 볼륨 생성 : dockervolumecreatemydata. 2. 컨테이너를 실행하고 볼륨을 장착하십시오 : Dockerrun-it-vmydata :/app/dateubuntubash. 3. 고급 사용에는 데이터 공유 및 백업이 포함됩니다.

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

에디트플러스 중국어 크랙 버전

에디트플러스 중국어 크랙 버전

작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SecList

SecList

SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

MinGW - Windows용 미니멀리스트 GNU

MinGW - Windows용 미니멀리스트 GNU

이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

ZendStudio 13.5.1 맥

ZendStudio 13.5.1 맥

강력한 PHP 통합 개발 환경