docker-compose란?
- docker-compose는 2개 이상의 컨테이너를 더욱 간편하게 관리하기 위해 사용되는 툴
- docker-compose.yml (혹은 .yaml)이라는 파일에 컨테이너에서 사용 될 이미지, 옵션 등을 작성한 후 사용
- docker 명령어만 사용할 때보다 여러 컨테이너를 더 간편하고 직관적으로 관리
docker-compose 설치하기
sudo mkdir -p /usr/lib/docker/cli-plugins
>> /usr/lib/docker 경로에 cli-plugins라는 디렉토리를 생성
>> -p : 만약 상위 디렉토리가 없다면 함께 생성
sudo curl -SL https://github.com/docker/compose/releases/download/v2.11.2/docker-compose-linux-x86_64 -o /usr/lib/docker/cli-plugins/docker-compose
sudo chmod +x /usr/lib/docker/cli-plugins/docker-compose
>> 다운받은 docker-compose 파일에 실행 권한을 부여
sudo docker compose version
>> docker-compose가 정상적으로 설치되었는지 확인
docker-compose로 컨테이너 생성하기
docker 컨테이너 삭제하기
sudo docker ps -a
>> docker에 존재하는 컨테이너 목록 확인
sudo docker rm -f {container_id}
>> 컨테이너의 실행중 여부와 관계 없이 강제로 삭제
docker-compose.yml 작성해보기
version: '3.8' # docker-compose.yml에 사용될 문법 버전을 정의합니다.
services:
example: # 서비스 이름을 지정합니다. 서비스 이름은 컨테이너끼리 통신할 때 사용됩니다.
container_name: example # 컨테이너 이름을 지정합니다.
image: 'httpd:latest' # 컨테이너를 생성할 때 사용될 이미지를 지정합니다.
restart: always # 컨테이너가 종료됐을 때 다시 실행시켜 줍니다.
컨테이너 실행시켜보기
sudo docker compose up -d
컨테이너 중지시키기
sudo docker compose stop : 중지 (ps -a 명령어로 보임)
sudo docker compose down : 컨테이너 삭제 (ps -a 명령어로 안 보임)
sudo docker compose up -d : 컨테이너 재생성(ID가 변함)
컨테이너 포트 포워딩 설정하기
포트 포워딩(port forwarding)이란?
- http : 80
- https : 443
- postgresql : 5432
- django : 8000
- ssh : 22
- 외부에서 서버의 특정 포트에 접근했을 때 지정한 서비스로 전달해 주는 것을 의미
- 예를 들어 특정 컨테이너의 포트포워딩 설정을 80:8000과 같이 해줬다면, 외부에서 80 포트로 접속했을 때 해당 컨테이너의 8000번 포트로 접속하겠다는 의미
컨테이너 실행시켜보기
sudo docker compose up -d
컨테이너 로그 확인하기
sudo docker compose logs
sudo docker compose logs -f : 실시간 확인 (ctrl + c : 탈출)
'Docker' 카테고리의 다른 글
Dockerfile 이미지 빌드하기 (2) | 2023.06.01 |
---|---|
Docker volume (4) | 2023.06.01 |
Docker 설치 및 docker container (2) | 2023.05.31 |
Linux Ubuntu 환경 구성하기 (1) | 2023.05.31 |
Linux 명령어 (3) | 2023.05.31 |