>  기사  >  운영 및 유지보수  >  Docker 기본 구성 파일 구조 및 설치 도구(자세한 예)

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

WBOY
WBOY앞으로
2022-02-07 17:39:404585검색

이 글은 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.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제