Docker

Docker compose, port forwarding

끈끈 2023. 5. 31. 19:25

 

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