[도커 기초 시리즈 포스팅]
[Docker] 기초 시리즈 (1) 도커의 개념과 사용이유
[Docker] 기초 시리즈 (2) Ubuntu에 도커 엔진 설치
[Docker] 기초 시리즈 (3) 이미지와 컨테이너 관계, 도커 아키텍처
[Docker] 기초 시리즈 (4) 도커 이미지의 구조
[Docker] 기초 시리즈 (5) 도커 이미지 다루기 - Docker Hub(Registry)
[Docker] 기초 시리즈 (6) 도커 이미지 다루기 - 이미지 직접 생성
[Docker] 기초 시리즈 (7) 자주 사용하는 Dockerfile 명령어
[Docker] 기초 시리즈 (8) 자주 사용하는 도커 명령어 모음 (Now)
[Docker] 기초 시리즈 (9) 도커 컨테이너 - 개념, 기본 사용법
[Docker] 기초 시리즈 (10) 도커 컨테이너 - Volume 관리
❑ 도커 명령어(docker cli) 모음
Official Reference | https://docs.docker.com/engine/reference/commandline/cli/
❖ about 도커 정보, 제어
dockerd
- 도커 데몬 실행
$ sudo dockerd
-v
- 도커 버전 확인
$ docker -v
system prune
- 사용되지 않는 모든 도커 요소(컨테이너, 이미지, 네트워크, 볼륨 등) 삭제
- 확인 질문에 y로 답하면 됨
$ docker system prune -a
❖ about 도커 허브
login
- docker hub에 로그인한다.
$ docker login -u [ID]
예) $ docker login -u citronbanana
search
- docker hub에서 이미지를 검색한다
$ docker search [이미지명]
예) $ docker search nginx
pull
- 도커 이미지를 docker hub에서 다운로드. 태그를 작성하지 않을 경우 최신 버전을 받는다.
$ docker pull [이미지명]:[태그]
예) $ docker pull ubuntu:20.04
push
- 도커 이미지를 docker hub에 업로드. (주의) 이미지 명 앞에 유저의 도커 허브 ID를 작성해야 한다.
$ docker push [도커 허브 ID/이미지 명]:[태그]
예) $ docker push citronbanana/myImage:0.0.1
*도커 허브 ID: citronbanana
❖ about 컨테이너
create
- 도커 이미지로 컨테이너 생성하기
$ docker create [옵션] [이미지명]:[태그]
start
- 컨테이너 시작하기 (이미지에 CMD로 지정해놓은 작업 시키기)
$ docker start [컨테이너 id 또는 이름]
attach
- 컨테이너로 들어가기 (컨테이너 내 CLI 이용하기)
$ docker attach [컨테이너 id 또는 이름]
run
- 이미지를 다운받아(없을 시에만) 바로 컨테이너 실행하여 진입하기
- (pull, create, start, attach 를 한꺼번에 실행하는 것과 같음)
$ docker run [이미지명]:[태그]
예) $ docker run -it ubuntu:20.04
Options
-d | 백그라운드 모드로 실행(뒤에서 - 안 보이는 곳(백그라운드)에서 알아서 돌라고 하기) |
-i | 도커 호스트의 표준 입력(키보드, 마우스 등)을 컨테이너와 연결 (i: interactive) |
-t | TTY(리눅스 Teletypewriter) 할당. 터미널 명령어를 정상적으로 수행하도록 함. i와 t 옵션은 보통 쉘 스크립트 작성이 필요한 컨테이너를 실행할 때 한 쌍으로 묶어(docker run -it) 사용한다 |
--name [이름] | 컨테이너 이름 지정 |
-p [Host Port]:[컨테이너 Port] | 호스트 머신의 포트와 컨테이너의 포트를 연결 |
--rm | 컨테이너가 종료되면(내부에서 돌아가는 작업이 끝나면) 컨테이너를 제거 |
-v [Host 디렉토리]:[컨테이너 디렉토리] | 호스트와 컨테이너의 디렉토리를 연결 |
exec
- 실행중인 컨테이너에 추가로 명령어를 전달함.
- (예시 설명) 처음부터 백그라운드(-d)로 실행했다면 shell이 실행되고 있지 않아 attach를 해도 내부로 접속되지 않는다. 이럴땐 예시 처럼 exec으로 bash shell을 실행시킨다.
$ docker exec [컨테이너 명] [param]
예) $ docker exec -it [컨테이너 명] /bin/bash
stop
- 컨테이너 중지
$ docker stop [컨테이너 id 또는 이름]
stop $(docker ps -aq)
- 모든 컨테이너 중지
$ docker stop $(docker ps -aq)
restart
- 동작중인 컨테이너 재시작
$ docker restart [컨테이너 id 또는 이름]
exit
- 도커 컨테이너의 내부 쉘에서 빠져나오기 (컨테이너를 종료)
$ exit (단축키: Ctrl + D)
Ctrl +P, Q
- 도커 컨테이너의 내부 쉘에서 빠져나오기 (컨테이너를 종료하지 않음)
$ Ctrl + P, Q
ps
- 동작중인 컨테이너들 보기
$ docker ps
Options
-a | 동작하지 않는 것을 포함한 모든 컨테이너 보기 |
rm
- 컨테이너 삭제. 기본적으로 Running 중인 컨테이너는 삭제 불가
$ docker rm [컨테이너 id 또는 이름]
Options
-f *force의 약자 |
Running 중인 컨테이너도 강제로 중지시키고 삭제시킴 |
rm `docker ps -a -q`
- 모든 컨테이너 삭제
$ docker rm `docker ps -a -q`
top
- 컨테이너 안에서 실행되고 있는 프로세스를 조회
$ docker top [컨테이너 명]
logs
- 컨테이너가 실행되며 남기는 log 정보를 확인
$ docker logs [컨테이너 명]
Options
-f *follow의 약자 |
컨테이너의 log를 실시간으로 모니터링(follow). 컨테이너에 log가 추가될 때 마다 바로 display된다. |
❖ about 이미지
images
- 호스트 시스템에서 도커 이미지 조회.
- [참고] IMAGE ID가 동일한 REPOSITORY 들은 실제로 이미지는 한 개다. 한 개의 이미지를 여러 가지 이름으로 관리한다고 보면 된다.
$ docker images
Options
<이미지 명>:<태그> | 옵션에 맞는 이미지만 조회 예) docker images webserver:1.0 |
--no-trunc | IMAGE ID를 요약하지 않고 FULL ID로 보여준다 |
build
- 도커파일로 이미지 생성 (Dockerfile 파일이 있는 디렉토리 기준이며 마지막 . 은 상대주소를 의미함)
$ docker build -t [이미지 명]:[태그] .
commit
- 작업한 도커 컨테이너로 이미지 생성
$ docker commit [컨테이너 명] [생성할 이미지 명]:[태그]
예) $ docker commit my-container my-image
Options
-a | 커밋 작성자 작성 예) docker commit -a "citronbanana" my-container my-image |
-m | 도커 커밋 메시지를 작성 예) docker commit -m "first commit of citronbanana" my-container my-image |
rmi
- 이미지 삭제
$ docker rmi [옵션] [이미지 id]
Options
-f | 컨테이너가 있을 시 강제삭제 |
tag
- 이미지 이름, 태그 변경
$ docker tag [기존 이미지 이름]:[태그] [변경할 이미지 이름]:[태그]
inspect
- 이미지 또는 컨테이너의 상세 정보를 확인한다.
docker inspect [옵션] [이미지 또는 컨테이너 명]:[태그]
Options
--format '{{.[inspect 내 옵션1].[옵션 1의 하위 옵션]}}' [이미지 또는 컨테이너 명] 예) docker inspect --format '{{.NetworkSettings.IPAddress}}' MyNginx |
상세 정보에서 조회하는 항목 필터 |
❖ about 도커 컴포즈
도커 컴포즈 실행 (docker-compose 파일이 있는 디렉토리 기준)
$ docker-compose up
Options
-d | 백그라운드에서 데몬으로 돌도록 함 |
'DevOps > Docker' 카테고리의 다른 글
[Docker] 기초 시리즈 (9) 도커 컨테이너 - 개념, 기본 사용법 (0) | 2022.06.07 |
---|---|
[Docker] 기초 시리즈 (5) 도커 이미지 다루기 - Docker Hub(Registry) (0) | 2022.06.07 |
[Docker] 기초 시리즈 (7) 자주 사용하는 Dockerfile 명령어 (0) | 2022.05.08 |
[Docker] 기초 시리즈 (6) 도커 이미지 다루기 - 이미지 직접 생성 (0) | 2022.04.30 |
[Docker] 기초 시리즈 (2) Ubuntu에 도커 엔진 설치 (0) | 2022.04.30 |