도커 이미지를 도커 허브에 올리기
도커 이미지를 빌드한 후
docker image tag 이미지명
docker push (옵션) 사용자명/도커허브의레포지토리명:태그명
# 로그인하지 않은 경우 먼저 로그인해야 함
docker login
도커 네트워크
![도커 네트워크](https://velog.velcdn.com/images/nonasking/post/468abc8d-9062-4d2b-b167-74606b726397/image.png)
# 네트워크 보기
docker network ls
# 네트워크 보기(자세히)
docker network inspect 네트워크명(bridge or host or overlay)
- bridge: 동일한 도커 호스트를 가진 컨테이너들끼리 서로 통신할 때 사용
- host: 도커 호스트의 네트워크를 직접 사용
- overlay: 서로 다른 도커 호스트를 가진 컨테이너들끼리 통신할 때 사용
Docker Compose란?
![Docker Compose](https://velog.velcdn.com/images/nonasking/post/fddf37d2-0f7b-4f25-9c99-9ab3481cd0d9/image.png)
도커 컨테이너를 일괄적으로 정의하고 제어하는 도구
설정 파일(.yml
)을 도커 CLI로 번역하는 역할
서버에 필요한 인프라, 환경(DB 등)을 하나하나 다운받지 않고 .yml
로컬 파일 하나를 통해 정의해서 다운로드받을 수 있음
파일 구성
version
services
실행하려는 컨테이너들을 정의하는 역할
이름, 이미지, 포트 매핑, 환경 변수, 볼륨 등을 포함 해당 정보를 가지고 컨테이너를 생성하고 관리
- image: 컨테이너를 생성할 때 쓰일 이미지 지정
- build: 정의된 도커파일에서 이미지를 빌드해 서비스의 컨테이너를 생성하도록 설정
- environment: 환경 변수 설정, docker run 명령어의
--env
, -e
옵션과 동일
- command: 컨테이너가 실행될 때 수행할 명령어, docker run 명령어의 마지막에 붙는 커맨드와 동일
- depends_on: 컨테이너 간의 의존성 주입, 명시된 컨테이너가 먼저 생성되고 실행
- ports: 개방할 포트 지정, docker run 명령어의 -p와 동일
- expose: 링크로 연계된 컨테이너에게만 공개할 포트 설정
- volumes: 컨테이너에 볼룸을 마운트함
- restart: 컨테이너가 종료될 때 재시작 정책
no: 재시작 되지 않음
always: 외부에 영향에 의해 종료 되었을 때 항상 재시작 (수동으로 끄기 전까지)
on-failure: 오류가 있을 시에 재시작
network
volume
config
secret
cf.) docker-compose vs docker compose
docker-compose 명령어가 docker compose로 흡수되었음 -> 지금은 사실상 같음
이전에는 Docker에서는 docker-compose 명령어가 별도로 설치되어야 했지만, Docker 1.13 이후로는 docker-compose 명령어가 Docker CLI에 통합됨
명령어
docker compose up (옵션) 서비스명