https://www.docker.com/

도커 엔진 버전 확인

$ docker -vCopy Icon

도커 컨테이너 생성 (ubuntu 18.04) 및 실행

  •  -i : 상호 입출력을, -t 옵션으로 tty를 활성화해서 배시(bash) 셸을 사용
  • --name : 컨테이너 이름을 설정
  • -p : 컨테이너의 포트를 호스트의 포트와 바인딩 (여러개 가능)
  • -d : Detached 모드로 컨테이너를 백그라운드에서 동작하는 애플리케이션으로써 실행하도록 합니다.
  • -e : 컨테이너 내부의 환경변수를 설정합니다.
  • --link : 내부 IP를 알 필요 없이 항상 컨테이너에 별명(alias)으로 접근하도록 설정합니다.
  • -v : 호스트의 디렉토리와 컨테이너의 디렉터리를 공유하도록 설정합니다.
  • --net : 컨테이너가 사용할 네트워크를 설정합니다.
  • --log-opt max-size : 로그 파일의 최대 크기 지정
  • --log-opt max-file : 로그 파일의 개수
  • --memory : 컨테이너 메모리 제한
  • --cpu-shares : 컨테이너에 가중치를 설정해 해당 컨테이너가 CPU를 상대적으로 얼마나 사용할수 있을지 지정
  • --cpuset-cpu : 호스트에 CPU가 여러 개 있을 때 컨테이너가 특정 CPU만 사용하도록 설정할 수 있습니다.
  • --cpu-period, --cpu-quota, --cpus : CPU 제한
  • --device-write-bps, --device-read-bps : 쓰고 읽는 작업의 초당 제한
$ docker run -i -t ubuntu:18.04
$ docker run -i -t --name [컨테이너 이름] ubnutu:18.04
$ docker run -i -t --name [컨테이너 이름] -p [host port]:[container port] ubuntu:18.04
$ docker run -d --name [컨테이너 이름] ubuntu:18.04
$ docker run -d --name [컨테이너 이름] ubuntu:18.04 --link [접근 컨테이너 이름]:[접근 컨테이너 별명]
$ docker run -d -v [호스트 공유 디렉토리]:[컨테이너 공유 디렉토리]
$ docker run -i -t --name [컨테이너 이름] --net mybridge ubuntu:18.04
$ docker run -it --log-opt max-size=10k --log-opt max-file=3 --name [컨테이너 이름] ubuntu:22.04
$ docker run -d --memory="1g" --name [컨테이너 이름]
$ docker run -i -t --name [컨테이너 이름] --cpu-shares 1024 ubuntu:22.04
$ docker run -it --device-write-bps /dev/[디바이스 이름]:1mb ubuntu:22.04Copy Icon

이미지 다운 (CentOS 7)

$ docker pull centos:7Copy Icon

이미지 목록

$ docker imagesCopy Icon

컨테이너 생성

--name 옵션으로 컨테이너 이름 설정

$ docker create -i -t --name mycentos centos:7Copy Icon

컨테이너 실행

$ docker start mycentosCopy Icon

컨테이너 접속

$ docker attach mycentosCopy Icon

컨테이너 탈출 

1. 컨테이너 내부에서 빠져나옴과 동시에 컨테이너 정지

$ exit
또는
Ctrl + DCopy Icon

2. 컨테이너를 정지하지 않고 탈출

Ctrl + P,QCopy Icon

컨테이너 목록 확인

$ docker psCopy Icon

컨테이너 정지

$ docker stop mycentosCopy Icon

컨테이너 삭제

$ docker rm mycentosCopy Icon

컨테이너 모두 삭제

$ docker container prune
# 또는
$ docker ps -a -qCopy Icon

컨테이너에서 호스트와 바인딩된 포트 확인

$ docker port [컨테이너 이름]Copy Icon

컨테이너 내부 Shell 사용 (-d 옵션을 사용하여 Shell에 접근하지 못할 경우)

$ docker exec -i -t [컨테이너 이름] /bin/bashCopy Icon

도커 볼륨 생성 & 사용

$ docker volume create --name myvolumeCopy Icon

 

$ docker run -i -t --name myvolume_1 -v myvolume:/root/ ubuntu:22.04
$ docker run -i -t --name myvolume_2 -v myvolume:/root/ ubuntu:22.04Copy Icon

도커 구성 정보 확인

  • --type : 정보를 확인할 종류를 명시 (volume, image, container)
$ docker inspect myvolume
$ docker --type volume myvolumeCopy Icon

도커 네트워크 목록 확인

$ docker network lsCopy Icon
$ docker network inspect [네트워크 드라이버]Copy Icon

사용자 정의 네트워크 연결/해제 (bridge 또는 오버레이 네트워크만)

$ docker network disconnect [네트워크 드라이버] [컨테이너]
$ docker network connect [네트워크 드라이버] [컨테이너]Copy Icon

새로운 브리지 타입의 네트워크

$ docker network create --driver bridge mybridgeCopy Icon

호스트 타입의 네트워크 (컨테이너 내부에서 사용)

# docker run -i -t --name network_host --net host ubuntu:22.04Copy Icon

컨테이너의 내부 출력 확인 (로그, log)

  • --tail : 마지막 몇 줄을 출력합니다.
  • --since : 유닉스 시간을 입력하여 특정 시간 이후의 로그를 확인할 수 있습니다.
  • -t : 타임스탬프를 표시할 수 있습니다.
  • -f : 실시간으로 출력되는 내용을 확인할 수 있습니다.
$ docker logs [컨테이너 이름]Copy Icon

컨테이너에 설정된 자원 제한을 확인하는 방법

$ docker inspect [컨테이너 이름]Copy Icon

컨테이너 자원 할당

$ docker update [변경할 자원 제한] [컨테이너 이름]
$ docker update --cpuset-cpus=1 centos ubuntuCopy Icon

'BOOK > 도커 & 쿠버네티스' 카테고리의 다른 글

[Chapter 2] 도커 엔진 - day 2  (0) 2022.10.21
[Chapter 2] 도커 엔진 - day 1  (0) 2022.10.20
[Chapter 1] 도커 (Docker) 란 ?  (0) 2022.10.19
[MAIN]  (0) 2022.10.19
욱근욱