목차
1. Docker Command
1-1 Docker Command 구조 및 구성
1-2 Docker Command
1-3 Docker 실습
2. Docker Image & HUB
2-1 Image & Container
2-2 Image & HUB
2-3 Image command
1. Docker Command
1-1 Docker Command 구조 및 구성
● 도커 명령어 구조
docker [상위명령] [하위명령] [옵션] [대상] [인자]
image run -a
container pull -i
volume start -t
network stop -d
system create ...
... ...
- 상위명령의 container는 자주 사용되어 생략이 가능하다.
- 하위명령은 상위명령에 종속적이다. 서로 다른 상위명령에 공통으로 존재할 수 있다.
- 옵션은 하위명령에 종속적이다. 서로 다른 하위명령에 공통으로 존재할 수 있다. 종류가 많으므로 외우지 않고 매뉴얼로 확인한다.
● 도커 명령어 구성
- run 명령어 실행 시 create + start 를 동시에 실행하는 것과 같다.
1-2 Docker Command
● 정보 확인 명령
# docker version
# docker info
# docker version : 현재 도커의 버전을 출력한다.
# docker info : 현재 도커의 상세 정보를 출력한다.
● system 하위 명령
하위명령 | 내용 |
df | 디스크 사용량 확인 |
events | 관련 이벤트 출력 |
info | 시스템 관련 정보 출력 |
prune | 회수 가능한 공간 확보 |
- 어디서든 프룬을 보면 뭔가 정리하겠다는 의도로 짐작할 수 있다.
- 각 단계 별로 '--help' 명령을 이용해서 하위 명령이나 옵션을 확인한다
ex) docker --help
docker system df --help
● image 하위 명령
하위명령 | 내용 |
pull | 도커 허브나 레파지토리에서 이미지 다운 |
ls | 다운한 이미지 목록 출력 |
rm | 이미지 삭제 |
build | 이미지 생성 |
save | 이미지를 파일로 저장 |
load | 저장된 이미지 파일(tar)을 이미지로 로드 |
● [container] 하위 명령
하위명령 | 내용 |
run | 컨테이너 실행 |
create | 컨테이너 생성 |
rm | 컨테이너 삭제 |
start | 컨테이너 실행 |
stop | 컨테이너 정지 |
ps(ls) | 컨테이너 목록 출력 |
. . . | . . . |
- container 명령어는 생략 가능하다.
- 컨테이너 실행 시 필요한 이미지가 없다면 자동으로 다운로드받는다.
- 컨테이너는 프로세스이므로 ls가 아닌 ps를 사용한다.
● volume 하위 명령
하위명령 | 내용 |
create | 볼륨 생성 |
ls | 볼륨 목록 출력 |
rm | 볼륨 삭제 |
prune | 마운드 되지 않은 모든 볼륨 삭제 |
inspect | 볼륨 상세 정보 출력 |
- 컨테이너는 일시적이므로 그 안에 저장된 데이터는 언제든 삭제될 수 있다. 볼륨으로 컨테이너들의 공유 공간을 만들어 데이터를 함구적으로 저장할 수 있다.
- 데이터가 함구적이고 무결성이 중요한 DB같은 것을 컨테이너에 올리는 것은 매우 신중하게 결정한다.
● network 하위 명령
하위명령 | 내용 |
connect | 컨테이너를 네트워크에 연결 |
disconnect | 컨테이너의 네트워크 연결 해제 |
create | 네트워크 생성 |
inspect | 네트워크 상세 정보 출력 |
ls | 네트워크 목록 출력 |
prune | 컨테이너가 연결되지 않은 모든 네트워크 삭제 |
rm | 네트워크 삭제 |
- 컨테이너는 자동으로 NAT로 ip 주소가 할당된다.
● 단독 명령
상위명령 없이 단독으로 사용된다.
하위명령 | 내용 |
login | 레지스트리에 로그인 |
logout | 레지스트리에서 로그아웃 |
search | 레지스트리 검색 |
version | 도커 엔진, 명령 행 독 버전 출력 |
● 옵션
옵션 | 내용 |
-a | --attach, --all |
-d | --detach (컨테이너를 백그라운드에서 실행) |
-i | --interactive |
-t | --tty |
--name | 컨테이너 이름 |
--rm | 종료 시 자동 삭제 |
- attach는 해당 컨테이너와 연결하는 것으로, 쉘이 떠있어야 attach 가능하다.
- i와 t 옵션은 터미널을 열어주는 옵션으로, 둘은 함께 사용한다.
1-3 Docker 실습
인터페이스와 터미널을 열어 centos를 실행한다. 화면에 나오는 인터페이스, 즉 centos의 쉘만 떠온 것이다.
- centos:8과 같이 ':' 을 이용해 태그를 붙여야 한다. 임의의 값이 아닌 정해진 값을 적어야 하므로 도커 허브에서 태그를 확인한다.
ctrl+p+q로 커널을 종료할 수 있다.
- 현재 살아있는 컨테이너와 가지고 있는 이미지 파일을 확인할 수 있다.
docker ps 명령어로 확인한 CONTAINER ID 혹은 NAMES를 이용해 컨테이너를 정지 및 삭제할 수 있다.
CONTAINER ID 혹은 NAMES는 식별 가능한 정도만 작성하면 정상 작동한다.
- 컨테이너 정지 시 ps 명령어로는 확인되지 않으나 ps -a 명령어로 종료된 컨테이너 확인이 가능하다.
- 컨테이너 삭제 시 ps -a 명령어로도 확인되지 않는다. 단, 사용됐던 이미지는 그대로 남아있는 것을 확인할 수 있다.
--rm을 붙여 실행할 경우 컨테이너 정지 시 자동으로 프로그램도 죽는다.
2. Docker Image & HUB
2-1 Image & Container
이미지와 컨테이너의 관계는 붕어빵 틀과 붕어빵의 관계와 같다. 이미지는 컨테이너를 생성하는 템플릿으로, 이미지를 통해 다수의 컨테이너를 생성할 수 있다.
2-2 Image & HUB
도커 이미지는 다음 도커 허브에서 제공된다. 회원가입하여 이용한다.
Docker Hub Container Image Library | App Containerization
Increase your reach and adoption on Docker Hub With a Docker Verified Publisher subscription, you'll increase trust, boost discoverability, get exclusive data insights, and much more.
hub.docker.com
● 터미널에서 도커 허브에 로그인
도커 허브 실습 전 반드시 로그인하여 진행한다.
# docker login -u [도커 허브 사용자명] // 로그인
# docker logout // 로그아웃
● 이미지 검색
다음과 같은 명령어를 통해 도커 허브내의 이미지를 검색한다.
# docker search [옵션] [이미지이름]
ex) # docker search --limit 3 mysql
※ 옵션
--limit n | n건만 검색 |
--filter=stars=n | starts가 n건 이상인 이미지만 검색 |
--no-trunc | 결과를 모두 제한하지 않고 출력 |
- 첫 번째 건의 깔끔한 mysql은 오피셜 이미지이다.
- 두 번째, 세 번째 건은 유저가 올린 이미지로, bitnami, circleci 부분이 유저 계정 부분이다.
해당 명령어를 통해서는 이미지에 맞는 태그를 확인할 수 없으므로 어차피 도커 허브에서 찾아야한다. 때문에 이러한 검색보다 도커 허브에서 이미지를 찾는 것이 더 중요하다.
2-3 Image command
● 이미지 다운로드
# docker image pull [option] image[:tag]
※옵션
-a, -all | 모든 이미지 표시 |
ex) httpd 이미지 검색 및 다운로드
# docker search --limit 1 httpd
# docker image pull httpd
- 태그를 붙이지 않을 시 기본적으로 :lastest 태그가 붙는다. 즉 latest 태그는 생략이 가능하다.
● 다운로드한 이미지 확인
# docker image ls [option] [repository]
※ 옵션
-a, -all | 모든 이미지 표시 |
--digests | digests 표시여부 |
--no-trunc | 결과 모두 표시 |
-q, --quiet | docker image ID만 표시 |
● 이미지 삭제
# docker image rm image1[, image2, ...] // 특정 이미지 삭제
# docker image prune // 모든 이미지 삭제
- rm의 경우 이미지 이름 또는 id로 삭제 가능하다.
※ 옵션
rm | prune | ||
-f, --force | 강제 삭제 | -a, --all | 미사용 모든 이미지 삭제 |
--no-prune | 중간 이미지 유지 | -f, --force | 강제 삭제 |
ex) 미사용 모든 이미지 강제 삭제
# docker image prune -af
위와 같은 명령을 alias명으로 지정하여 간편한 명령이 가능하다.
# vi/etc/profile
.
.
.
alias dirm='docker image prune -af'
'일일 정리' 카테고리의 다른 글
Container & Process (0) | 2025.05.22 |
---|---|
Docker container command (2) | 2025.05.21 |
DOCKER (0) | 2025.05.16 |
SQL 인젝션 방어 (1) | 2025.05.15 |
SQL 인젝션 (1) | 2025.05.14 |