-
Docker compose 사용하기MSA & 쿠버네티스(Kubernetes) - k8s 2022. 9. 4. 00:01
Docker Compose 없이 이미지 컨테이너화
아래의 명령어들을 사용하게 되면 wordpress_net이라는 이름의 network를 구성하고 mysql과 wordpress 이미지를 컨테이너화 시킵니다.
docker network create wordpress_net
docker run --name "db" -e "MYSQL_ROOT_PASSWORD=123456" -e "MYSQL_DATABASE=wordpress" -e "MYSQL_USER=wordpress_user" -e "MYSQL_PASSWORD=123456" --network wordpress_net mysql:5.7
docker run --name app -e "WORDPRESS_DB_HOST=db" -e "WORDPRESS_DB_USER=wordpress_user" -e "WORDPRESS_DB_NAME=wordpress" -e "WORDPRESS_DB_PASSWORD=123456" -e "WORDPRESS_DEBUG=1" -p 8080:80 --network wordpress_net wordpress:latest
localhost:8080으로 접속하면 다음과 같은 화면을 볼 수 있습니다.
하지만 이런 복잡한 명령어들을 기억하고 일일이 작성하는 것은 힘듭니다.
docker-compose를 이용하면 이런 단점들을 해결할 수 있습니다.
Docker Compose 사용하기
docker-compose.yml이라는 파일을 생성합니다.
version: "3.7" services: db: image: mysql:5.7 restart: always environment: MYSQL_ROOT_PASSWORD: 123456 MYSQL_DATABASE: wordpress MYSQL_USER: wordpress_user MYSQL_PASSWORD: 123456 app: depends_on: - db image: wordpress:latest ports: - "8080:80" restart: always environment: WORDPRESS_DB_HOST: db:3306 WORDPRESS_DB_NAME: wordpress WORDPRESS_DB_USER: wordpress_user WORDPRESS_DB_PASSWORD: 123456
version을 명시해주어야 합니다.
sevices 안에는 컨테이너들이 들어옵니다.
db는 mysql 5.7 이미지의 이름을 뜻합니다.
컨테이터의 데이터 유실을 방지하기 위해 데이터를 host에 저장하고 이를 volumes를 활용하여 컨테이너와 연결시킬 수 있습니다.
환경변수들은 environment를 활용하여 설정해줄 수 있습니다.
depends_on은 어떤 컨테이너가 먼저 만들어질지 설정할 수 있습니다.
docker compose를 사용하면 네트워크를 연결하는 작업을 수행할 필요가 없습니다.
아래의 명령어를 통해 docker-compsose.yml 파일을 생성할 수 있습니다.
notepad docker-compose.yml
아래의 명령어를 통해 docker-compose.yml 파일을 찾고 그 파일의 명령어들을 실행합니다.
docker-compose up
localhost:8080에 접속하면 wordpress 화면이 나오게 됩니다.
아래의 명령어를 통해 docker-compose로 실행된 컨테이너들을 내릴 수 있습니다.
docker-compose down
출처
https://www.youtube.com/watch?v=EK6iYRCIjYs&t=61s
'MSA & 쿠버네티스(Kubernetes) - k8s' 카테고리의 다른 글
rancher desktop 으로 docker desktop 대체하기 (0) 2023.01.30 서킷 브레이커란? (0) 2022.12.03 DockerFile과 commit 명령어로 웹서버 이미지 만들기 (0) 2022.08.08 도커 컨테이너 수정하기 (0) 2022.08.03 Docker로 Apache 웹서버 띄우기 (0) 2022.08.02