[Docker Command]
o docker 정보
docker info
docker -v
o 도커 이미지 조회
docker images
o 도커 이미지 다운로드
docker image repository 부터 Docker image 를 다운로드
private repository 사용 가능
docker pull [OPTIONS] NAME[:TAG|@DIGEST]
docker pull ubuntu:18.04
o 도커 container 생성
이미지가 없는 경우는 이미지 다운로드 후 컨테이너 생성
docker create [OPTIONS] IMAGE [COMMAND] [ARG...]
docker create -i -t --name myub ubuntu:16.04
-i 상호 입출력
-t tty활성화해서 bash 셀 사용
-it -i와 -t를 동시에 사용한 것으로 터미널 입력을 위한 옵션
o 도커 container 생성 & 실행
컨테이너가 없는 경우 생성, 있다면 실행
rm은 컨테이너 종료시 저장된 내용 사라짐
docker run [OPTIONS] IMAGE[:TAG|@DIGEST] [COMMAND] [ARG...]
docker run --rm -it ubuntu:16.04
docker run --rm -it --name myserver ubuntu:16.04 /bin/bash
-d detached mode 흔히 말하는 백그라운드 모드
-p 호스트와 컨테이너의 포트를 연결 (포워딩)
-v 호스트와 컨테이너의 디렉토리를 연결 (마운트)
-e 컨테이너 내에서 사용할 환경변수 설정
--name 컨테이너 이름 설정
--rm 프로세스 종료시 컨테이너 자동 제거
-i 상호 입출력
-t tty활성화해서 bash 셀 사용
-it -i와 -t를 동시에 사용한 것으로 터미널 입력을 위한 옵션
?link 컨테이너 연결 [컨테이너명:별칭]
o 도커 container 실행
컨테이너 ID나 이름을 이용하여 실행 / 진입
docker start [OPTIONS] CONTAINER [CONTAINER...]
-a, --attach Attach STDOUT/STDERR and forward signals
--detach-keys string Override the key sequence for detaching a container
-i, --interactive Attach container's STDIN
docker start -i myub
docker start -i 77d68f6b75f3
docker attach -i myub
o container command 실행
docker exec -it demo2 /bin/bash
o 도커 container exit
Ctrl + P,Q : 컨테이너를 종료하지 않고 exit
exit : 컨테이너 종료 후 exit
o 도커 container List
컨테이너 목록 조회
- PORTS : 컨테이너가 개방한 포트와 호스크 연결한 포트
- NAMES : 컨테이너 고유한 이름
docker ps [OPTIONS]
-a, --all Show all containers (default shows just running)
-f, --filter filter Filter output based on conditions provided
--format string Pretty-print containers using a Go template
-n, --last int Show n last created containers (includes all states) (default -1)
-l, --latest Show the latest created container (includes all states)
--no-trunc Don't truncate output
-q, --quiet Only display container IDs
-s, --size Display total file sizes
o 도커 container name 변경
docker create -i -t --name myub ubuntu:16.04
docker ps -a
docker rename vigorous_bhaskara myubt
o 도커 container 종료
docker stop myubt
docker stop $(docker ps -a -q)
o 도커 container 삭제
docker rm myubt
docker rm -f myubt
o 도커 image 삭제
docker rmi ubuntu
o 도커 container 외부 노출
컨테이너는 가상 IP 주소 가짐. 기본 IP 172.17.0.x
기본적으로 도커가 설치면 호스트에서만 접근 가능, 외부에서 접근할 수 없음
host 8080 포트를 컨테이너 80포트로 연결
- http://172.29.32.1:7777 -> container:80
- localhost:7777은 연결 안됨
docker run -it -p 172.29.32.1:7777:80 --name webserver ubuntu:16.04
[ifconfig 설치]
apt update -y
apt install net-tools
ifconfig
[apache 설치]
apt-get update
apt-get install apache2 -y
service apach2 start
o Docker network
docker network ls
docker network inspect bridge
bride : 컨테이너 생성할때 자동으로 연결되는 docker() 브리지 활용
172.17.0.x IP 대역을 순차적으로 할당
o 도커 container 로깅
docker logs [OPTIONS] CONTAINER
--details Show extra details provided to logs
-f, --follow Follow log output
--since string Show logs since timestamp (e.g.
2013-01-02T13:23:37Z) or relative (e.g. 42m for 42
minutes)
-n, --tail string Number of lines to show from the end of the logs
(default "all")
-t, --timestamps Show timestamps
--until string Show logs before a timestamp (e.g.
2013-01-02T13:23:37Z) or relative (e.g. 42m for 42
minutes)
docker logs --tail 2 worddb
docker logs demo3
docker logs demo3 -f
-- log 옵션
docker run --rm -it --log-opt max-size=10k --log-opt max-file=3 ubuntu:16.04
-- syslog 설정
docker run --rm -d --name syslog_container --log-driver=syslog ubuntu:16.04 echo syslogtest
test 라는 이름의 busybox 이미지를 백그라운드에서 도커 컨테이너로 실행하여, 1초에 한 번씩 현재 시간을 출력
docker run --name demo3 -d busybox sh -c "while true; do $(echo date); sleep 1;done"
o 도커리소스 제한
-- 메모리
swap 메모리는 메모리의 2배로 설정, swap로 변경 가능(기본메모리보다 커야함)
docker run --rm -it --memory="1g" ubuntu:16.04
docker run --rm -it --memory=10m --memory--swap=50m ubuntu:16.04
-- CUP
1024를 기준으로 비율로 산정
docker run --rm -it --memory=100m --cpu-shares=1024 ubuntu:16.04
docker run --rm -it --memory=100m --cpu-shares=512 ubuntu:16.04
ps aux | grep stres
-- cpu 수 제한
cupset-cups=0.3은 1,3번째CPU, 0-2는 1,2,3번째 CPU
docker run --rm -it --memory=100m --cpuset-cpus=2 ubuntu:16.04
[htop] CPU 사용량 확인
agt-get install htop
yum -y install epel-release && yum -y install htop
o 도커 컨테이너 어플리케이션 구축
-d detached 모드로 백그라운드 실행
사용자입력을 받지 않고 반드시 컨테이너에서 프로그램이 실행되어야 함
포그라인드 프로그램이 실행하지 않으면 컨테이너는 종료됨
docker ps로 확인할 수 없음-> ps -a 로 확인
- link : 컨테이너에서 컨터이너로 접근.
내부 IP와 포트를 사용하지 않고 컨테이터 alias로 접근
컨테이너를 순차적으로 실행
docker run -d --name wordpressdb -e MYSQL_ROOT_PASSWORD=password
-e MYSQL_DATABASE=wordpress mysql:5.7
docker run --name wordpress -e WORDPRESS_DB_HOST=mysql -e WORDPRESS_DB_USER=root
-e WORDPRESS_DB_PASSWORK=password --link wordpressdb:mysql -p 80 wordpress
docker stop wordpress wordpressdb
o docker volume
docker run -d --name wordpressdb_v -e MYSQL_ROOT_PASSWORD=password -e MYSQL_DATABASE=wordpress
-v d:\\docker\NAS:/var/lib/mysql mysql:5.7
docker run --name wordpress_v -e WORDPRESS_DB_HOST=mysql -e WORDPRESS_DB_USER=root
-e WORDPRESS_DB_PASSWORK=password --link wordpressdb_v:mysql -p 80 wordpress
docker start -i wordpress_v
docker run --rm -it -v D://docker/home:/NAS ubuntu:16.04
docker run -d --name worddb -e MYSQL_ROOT_PASSWORD=password -e MYSQL_DATABASE=wordpress
-v d:\\docker\home\mysql:/var/lib/mysql mysql:5.7
docker run -d --name word -e WORDPRESS_DB_HOST=mysql -e WORDPRESS_DB_USER=root
-e WORDPRESS_DB_PASSWORK=password --link worddb:mysql -p 80 wordpress
'Docker' 카테고리의 다른 글
Docker - image (0) | 2023.09.19 |
---|---|
Docker 설치 (0) | 2023.09.19 |
Docker Volume (0) | 2022.11.13 |
Docker 개요 (0) | 2022.11.04 |