Net Eng

Docker 컴포즈 본문

Cloud/Docker

Docker 컴포즈

欲心 2024. 6. 18. 21:35

■ [참고] docker CMD vs docker compose CMD

- docker CMD → 하나의 컨테이너 관리

- docker-compose CMD → 여러개의 컨테이너 관리

 

■ [참고] Dockerfile 파일 vs docker-compose.yml

- dockerfile → 컨테이너 이미지를 빌드

- docker-compose.yml → 컨테이너 기동/종료/재시작

 

■ 도커 컴포즈 설치

 

□ 도커 데스크 탑

Docker CLI Compose Plugin 설치

$ yum -y install docker-compose-plugin
$ docker compose version

 

□ 독립형 설치(바이너리 설치)

$ curl -SL https://github.com/docker/compose/releases/download/v2.20.3/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
$ chnmod +x /usr/local/bin/docker-compose
$ docker-compose version

 

도커 컴포즈 파일

 

□ 컴포즈 파일 이름

- compose.yml, compose.yaml

- docker-compose.yml, docker-compose.yaml

 

□ 컴포즈 파일

 

- docker-compose .yml

* top level element
	- version:
	- name:
	- services:
	- networks:
	- volumes:
	- configs:
	- secrets:
version: '3.8'
---------------------------------------------
services:
	web:
		image: nginx
---------------------------------------------
services:
	web:
		build: .

services:
	web:
		build:
			context: /date
			dockerfile: dockerfile-alternate
---------------------------------------------
services:
	web:
		ports:
			- "80:80"
			- "8080:8080"
		expose:
			- "80"
[참고] ports vs expose
---------------------------------------------
sercices:
	web:
		depends_on:
			- db
---------------------------------------------
services:
	web:
		environment:
			- VAR1=value1
			- VAR2=value2

services:
	web:
		environment:
			VAR1=value1
			VAR2=value2

services:
	web:
		env_file:
			- ./envfile1
			- ./envfile2
---------------------------------------------
services:
	db:
		image: mysql
		volumes:
			- dbdata:/var/lib/mysql
		ports:
			- "3306"
volumes:
	dbdata
---------------------------------------------
services:
	db:
		image: mysql
		networks:
			- mynet
networks:
	mynet

 

■ 도커 컴포즈 명령

- docker compose CMD

# docker compose version

# docker compose up
# docker compose up -d
# docker compose up ---build
# docker compose up --scale SERVICE=5 --scale SERVICE=10

# docker compose ps
# docker compose ps -a
# docker compose ps SERVICE
# docker compose ps --format json | jq .
# docker compose ps -q

# docker compose logs

# docker compose run SERVICE
[참고] "docker exec -it CONTAINER /bin/bash" vs "docker compose run SERVICE /bin/bash"

# docker compose start [SERVICE...]
# docker compose stop [SERVICE...]
# docker compose restart 
# docker compose pause [SERVICE...]
# docker compose unpause [SERVICE...]

# docker compose kill -s SIGINT|SIGKILL

# docker compose config
# docker compose config SERVICE

# docker compose top

# docker compose rm
# docker compose rm -f 

# docker compose down
# docker compose down -v

[참고] "docker compose rm" vs "docker compose down"

'Cloud > Docker' 카테고리의 다른 글

Docker 이미지 생성  (0) 2024.06.18
Docker 리소스 제한  (0) 2024.06.18
Docker 컨테이너 운용  (0) 2024.06.18
Docker 네트워크 관리  (0) 2024.06.18
Docker 볼륨 관리  (0) 2024.06.18