[컴] docker-compose

docker compose / docker-compose commands

docker-compose

docker-compose 로 할 수 있는 것ref.1

  • 서비스들의 start, stop, rebuild
  • 동작중인 서비스들의 status 를 볼 수 있다.
  • 동작중인 서비스들의 log output 의 stream
  • 서비스에 대해서 one-off command 를 실행할 수 있다.

help

docker-compose help up 을 이용해서 사용법을 알 수 있다.

docker-compose help up

compose.yml

기본적으로 compose.yml 을 이용한다. 다만 backward compatibility 를 위해서 docker-compose.yml 도 지원한다.

# compose.yml
version: '3.8'

# x- 로 시작하는 값은 무시된다.
x-rep_env: &rep_env
  networks:
    - mybridge


services:

    crond:
        # extension fields 값 사용
        <<: *rep_env
        image: crontest
        volumes:
            - ./15min:/etc/periodic/15min
    myblog:
        # ref.2 참고
        # build 에는 Dockerfile path, image 는 tagname 을 적으면 된다.
        build: .
        image: my-jekyll:1.0.0
        volumes:
            - d:\a\prog\ruby\jekyll\docker\my-test-blog\:/home/jekyll/my-test-blog2
        ports:
            - "8000:8000"            

networks:
  mybridge:
  

-d option 은 detach 를 의미한다. 그래서 container 를 background 로 띄운다.

docker-compose up -d

compose file 의 top-level elements

실행, 종료

docker-compose.ymlcompose.yml 가 있는 곳에서 실행하면 된다.

docker-compose up
docker-compose down

docker compose down 을 하면 container 도 같이 사라진다. docker ps -a 를 해보면 사라진 것을 확인할 수 있다.

명령어들(commands)

아래 link 에서 왼쪽 list 를 보면 명령어들을 확인할 수 있다.

  • Overview of docker-compose CLI | Docker Documentation
  • docker compose | Docker Documentation : 이제 docker compose 로도 실행할 수 있다.
  • docker compose logs : docker compose 관련 error log 를 확인할 수 있다.
  • docker compose run <service> --rm bash : 지정한 service 에 대한 container 를 생성해서 bash 를 실행
  • docker compose ps : docker compose up 으로 실행된 container를 보여준다. 추후에 docker compose run 으로 실행된 container는 보이지 않는 듯 하다.

변수 정의 .env

.env file 에 변수를 정의해서 docker-compose.yml 에서 사용할 수 있다. docker-compose.yml 내부에서는 사용할 수 없다.

docker swarm

docker-compose.yml 을 docker swarm 으로 cluster 에 배포할 수 있다.

stack 이름을 mystack1 이라 하면, 아래처럼 하면 된다.

docker stack deploy -c docker-compose.yml mystack1

그러면 자동으로 service 에 해당하는 container 들이 생성되고, network 도 만든다. swarm 안에 만들어진 사항은 docker swarm 명령으로 확인할 수 있다.

See Also

  1. 쿠…sal: [컴] Dockerfile 내의 VOLUME command 와 -v 의 차이
  2. How to Simplify Docker Compose Files With YAML Anchors and Extensions – CloudSavvy IT : yaml 의 anchor 사용법, '<<', '&variable_name' 등의 사용법
  3. Docker orchestration with Swarm and Compose - IONOS : docker compose 를 docker swarm network 에 deploy
  4. 쿠…sal: [컴] docker commands

Reference

  1. Overview of Docker Compose | Docker Documentation
  2. build, Compose file version 3 reference

댓글 없음:

댓글 쓰기