도커 엔진 버전 확인
$ docker -v
도커 컨테이너 생성 (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.04
이미지 다운 (CentOS 7)
$ docker pull centos:7
이미지 목록
$ docker images
컨테이너 생성
--name 옵션으로 컨테이너 이름 설정
$ docker create -i -t --name mycentos centos:7
컨테이너 실행
$ docker start mycentos
컨테이너 접속
$ docker attach mycentos
컨테이너 탈출
1. 컨테이너 내부에서 빠져나옴과 동시에 컨테이너 정지
$ exit
또는
Ctrl + D
2. 컨테이너를 정지하지 않고 탈출
Ctrl + P,Q
컨테이너 목록 확인
$ docker ps
컨테이너 정지
$ docker stop mycentos
컨테이너 삭제
$ docker rm mycentos
컨테이너 모두 삭제
$ docker container prune
# 또는
$ docker ps -a -q
컨테이너에서 호스트와 바인딩된 포트 확인
$ docker port [컨테이너 이름]
컨테이너 내부 Shell 사용 (-d 옵션을 사용하여 Shell에 접근하지 못할 경우)
$ docker exec -i -t [컨테이너 이름] /bin/bash
도커 볼륨 생성 & 사용
$ docker volume create --name myvolume
$ 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.04
도커 구성 정보 확인
- --type : 정보를 확인할 종류를 명시 (volume, image, container)
$ docker inspect myvolume
$ docker --type volume myvolume
도커 네트워크 목록 확인
$ docker network ls
$ docker network inspect [네트워크 드라이버]
사용자 정의 네트워크 연결/해제 (bridge 또는 오버레이 네트워크만)
$ docker network disconnect [네트워크 드라이버] [컨테이너]
$ docker network connect [네트워크 드라이버] [컨테이너]
새로운 브리지 타입의 네트워크
$ docker network create --driver bridge mybridge
호스트 타입의 네트워크 (컨테이너 내부에서 사용)
# docker run -i -t --name network_host --net host ubuntu:22.04
컨테이너의 내부 출력 확인 (로그, log)
- --tail : 마지막 몇 줄을 출력합니다.
- --since : 유닉스 시간을 입력하여 특정 시간 이후의 로그를 확인할 수 있습니다.
- -t : 타임스탬프를 표시할 수 있습니다.
- -f : 실시간으로 출력되는 내용을 확인할 수 있습니다.
$ docker logs [컨테이너 이름]
컨테이너에 설정된 자원 제한을 확인하는 방법
$ docker inspect [컨테이너 이름]
컨테이너 자원 할당
$ docker update [변경할 자원 제한] [컨테이너 이름]
$ docker update --cpuset-cpus=1 centos ubuntu
'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 |