1. 도커 명령어(Docker CLI)
1) 레지스트리에서 이미지 다운로드
docker pull [OPTIONS] NAME[:TAG|@DIGEST]
2) 이미지 목록
docker images [OPTIONS] [REPOSITORY[:TAG]]
3) 이미지에서 새 컨테이너 만들고 실행하기
docker run [OPTIONS] CONTAINER [CONTAINER...]
4) 컨테이너 로그 페치
docker logs[OPTIONS] CONTAINER
5) 실행중인 컨테이너 정지
docker stop [OPTIONS] CONTAINER [CONTAINER...]
6) 컨테이너 제거
docker rm [OPTIONS] CONTAINER [CONTAINER...]
7) 이미지 제거
docker rm [OPTIONS] IMAGE [IMAGE...]
2. 도커파일 활용
예제)
FROM httpd:latest
COPY index.html /usr/local/apache2/htdocs/index.html
EXPOSE 80
이미지 만들기)
docker bulld -t my-httpd
도커파일에서 생성한 이미지로 컨테이너 생성 및 실행하기
docker run -d -p 8888:80 my-httpd
EXPOSE 80 : 포트 포워딩
3. 실습
1) 도커 이미지를 도커 허브에 올리기
[Docker Hub 사용자명]/이미지명:[태그명]
- 이미지 태그 설정
build 전 : docker build -t [태그명]
build 후 : docker image tag [이미지명]
4. 도커 네트워크
https://docs.docker.com/network/drivers/
Network drivers overview
Overview of Docker network drivers and related concepts
docs.docker.com
모든 컨테이너를 서로 통신할 수 있는 하나의 네트워크로 묶을 수 있다
bridge : 기본 네트워크 드라이버, 동일한 도커 호스트에서 컨테이너 간 통신을 돕는다
host : 호스트의 네트워크를 직접 사용
overlay : 서로 다른 도커 호스트의 컨테이너 간 통신을 돕는다
5. 도커 컴포즈
- 도커 컨테이너를 일괄적으로 정의하고 제어하는 도구
- 설정 파일을 도커 CLI로 번역
https://docs.docker.com/compose/compose-file/03-compose-file/
Compose file
Compose file The Compose file is a YAMLopen_in_new file defining: Version (Optional) Services (Required) Networks Volumes Configs Secrets The default path for a Compose file is compose.yaml (preferred) or compose.yml that is placed in the working directory
docs.docker.com
컴포즈 구성
- 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
'개발공부 > 원티드 챌린지 정리' 카테고리의 다른 글
9월 백엔드 챌린지 정리 : 클린 코드 (1) (1) | 2023.10.02 |
---|---|
8월 백엔드 챌린지 : 도커 프로 (3) (0) | 2023.10.02 |
8월 백엔드 챌린지 : 도커 프로 (1) (0) | 2023.09.21 |
7월 백엔드 챌린지 4. 예제 적용 (0) | 2023.09.18 |
7월 백엔드 챌린지 3. 사용자 수에 따른 규모를 확장하는 방법 2 (0) | 2023.08.06 |