본문 바로가기

개발공부/원티드 챌린지 정리

8월 백엔드 챌린지 : 도커 프로 (2)

728x90

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

728x90