Docker

[Docker] Docker 요약 (2)

ozofweird 2020. 12. 8. 01:39

1. Docker 명령어

1) 이미지 조작

명령어 설명
docker images 이미지 목록
docker search [이미지명] 이미지 검색
docker pull [이미지명:버전] 이미지 받기
docker rmi [이미지 ID] 이미지 삭제

2) 컨테이너 조작

명령어 설명
docker container ls 컨테이너 목록
docker container ps 컨테이너 상태 확인
docker container stats [컨테이너 ID 혹은 name] 컨테이너 상태 확인
docker container run [옵션] [이미지:태그 혹은 @Digest] [명령] [ARG ...] 컨테이너 실행
docker container start [컨테이너 ID 혹은 name] 컨테이너 시작
docker container restart [컨테이너 ID 혹은 name] 컨테이너 재시작
docker container attach [컨테이너 ID 혹은 name] 컨테이너 접속
docker container stop [컨테이너 ID 혹은 name]
컨테이너 정지
docker container rm [컨테이너 ID 혹은 name] 컨테이너 삭제

"컨테이너 실행 옵션"

// 달력 확인
docker container run -it --name "test" centos /bin/cal

// localhost에 ping 명령을 백그라운드로 실행
docker container run -d centos /bin/ping localhost
옵션 설명
-d 백그라운드로 실행
-p 호스트와 컨테이너의 포트 연결 (포워딩)
-v 호스트와 컨테이너의 디렉토리를 연결 (마운트)
-e 컨테이너 내에서 사용할 환경변수 설정
--name 컨테이너 이름 설정
--it 터미널 입력을 위한 옵션 (컨테이너의 표준 입력과 로컬 컴퓨터의 키보드 입력을 연결)
--rm 프로세스 종료 시 컨테이너 자동 제거
--link 컨테이너 연결 [컨테이너명:별칭]

※ 그 외에도 'docker container run' 명령어 네트워크 구성, 자원 및 환경을 지정하여 컨테이너를 생성하거나 실행할 수 있다.

3) 네트워크 조작

명령어 설명
docker network ls 네트워크 목록
docker network inspect [옵션] [네트워크] 네트워크 정보 확인
docker network create [옵션] [네트워크] 새로운 네트워크 작성
docker network connect [옵션] [네트워크 컨테이너] 네트워크 연결
docker network disconnect [옵션] [네트워크 컨테이너] 네트워크 해제
docker network rm [옵션] [네트워크] 네트워크 삭제

"새로운 네트워크 작성 옵션"

옵션 설명
--driver, -d 네트워크 bridge 또는 overlay를 작성
--ip-range 컨테이너에 할당하는 IP 주소의 범위 지정
--subnet 서브넷을 CIDR 형식으로 지정
--ipv6 IPv6 네트워크 유효 여부
--label 네트워크 라벨 설정

"네트워크 연결 및 해제 옵션"

옵션 설명
--ip IPv4 주소
--ip6 IPv6 주소
--alias 별칭
--link 다른 컨테이너에 대한 링크

4) sudo 없이 Docker 명령어 사용

명령어 설명
sudo usermod -aG docker $USER 현재 접속 중인 사용자에게 권한 허용

 

 

 

2. Dockerfile

1) 주요 명령

명령 설명
FROM 베이스 이미지를 지정
RUN 명령 실행
CMD 컨테이너 실행 명령
LABEL 라벨 설정
EXPOSE 포트 설정
ENV 환경 변수 설정
ADD 디렉토리 및 파일 추가
COPY 파일 복사
ENTRYPOINT 컨테이너 실행 명령
VOLUME 볼륨 마운트
USER 사용자 지정
WORKDIR 작업 디렉토리
ARG Dockerfile 파일 내의 변수
ONBUILD 빌드 완료 후 실행되는 명령
STOPSIGNAL 시스템 콜 시그널 설정
HEALTHCHECK 컨테이너 헬스 체크
SHELL 기본 쉘 설정
# 주석

2) Dockerfile 빌드 (이미지 생성)

명령어 설명
docker build -t [생성할 이미지:태그명] [옵션] [Dockerfile 위치] Dockerfile이 아닌 다른 파일명으로 이미지를 생성할 경우 '-f' 옵션으로 지정할 수 있다. 하지만 Dockerfile 이외의 이름은 Docker Hub에서 이미지의 자동 생성 기능을 사용할 수 없다.
# STEP:1 Ubuntu (베이스 이미지)
FROM ubuntu:latest

# STEP:2 Nginx 설치
RUN apt-get update && apt-get install -y -q nginx

# STEP:3 파일 복사
COPY index.html /usr/share/nginx/html/

# STEP:4 Nginx 시작
CMD ["nginx", "-g", "daemon off;"]
// 현재 위치에 Dockerfile이 있을 경우
docker build -t test:0.0 .

 

 

 

3. Docker Compose

명령 설명
docker-compose up [옵션] [서비스명] . 컨테이너 생성/시작
docker-compose ps 컨테이너 목록
docker-compose ls
컨테이너 목록
docker-compose logs 컨테이너 로그
docker-compose run [컨테이너 ID] /bin/bash 컨테이너 명령 실행
docker-compose start 컨테이너 시작
docker-compose restart 컨테이너 재시작
docker-compose stop 컨테이너 정지
docker-compose pause 컨테이너 일지 정지
docker-compose unpause 컨테이너 재개
docker-compose port [옵션] [서비스명] [프라이빗 포트 번호] 공개 포트 번호
docker-compose config 구성 확인
docker-compose kill 실행 중인 컨테이너 강제 정지
docker-compose rm 컨테이너 삭제
docker-compose down 리소스 삭제

 

728x90