IT
[Docker] 기본 명령어
열심히 정리하자!!
2021. 6. 9. 08:51
반응형
설명 | 명령어 |
도커 엔진 버전 확인 | # docker -v |
결과 Docker version 20.10.6, build 370c289 |
|
이미지 다운로드 |
# docker pull [이미지명] |
예시 # docker pull centos:7 결과 7: Pulling from library/centos 2d473b07cdd5: Pull complete Digest: sha256:0f4ec88e21daf75124b8a9e5ca03c37a5e937e0e108a255d890492430789b60e Status: Downloaded newer image for centos:7 docker.io/library/centos:7 |
|
다운로드 된 도커 이미지 확인 | # docker images # docker image ls |
결과 REPOSITORY TAG IMAGE ID CREATED SIZE ubuntu 14.04 13b66b487594 2 months ago 197MB |
|
컨테이너 생성 및 실행 |
# docker run -i -t [이미지명] |
옵션 설명 run (컨테이너 생성 및 실행) -i -t (컨테이너와 상호 입출력 가능, attach 로 접속 가능) 예시 # docker run -i -t ubuntu:14.04 결과 Unable to find image 'ubuntu:14.04' locally 14.04: Pulling from library/ubuntu 2e6e20c8e2e6: Pull complete 0551a797c01d: Pull complete 512123a864da: Pull complete Digest: sha256:5c01e896fa6eeaa41f3509c64af668d71d06e318cfe373dabab9d61b9eaf6441 Status: Downloaded newer image for ubuntu:14.04root@c7d79b819bcd:/# ubuntu:14.04 이미지가 로컬 도커 엔진에 없어서 새로 다운로드 받은 후 실행된 ubuntu로 접속 됨c7d79b819bcd (실행된 ubuntu 컨테이너 고유ID) |
|
컨테이너 생성 | # docker create -i -t --name [생성할 컨테이너 이름] [이미지명] |
다운로드된 이미지가 있을 경우 실행 함없을 경우 못찾는다는 오류메시지 출력옵션 설명 create (컨테이너 생성) -i -t (컨테이너와 상호 입출력 가능, attach 로 접속 가능) -- name (컨테이너 이름) 예시 # docker create -i -t --name mycentos centos:7 결과 cd0320ab97583ef2ab2de92ccdbbe70dc9d144713b92af995b5d6ad17850829d (실행된 centos 컨테이너 고유 ID) run 명어와는 다르게 바로 컨테이너로 접속이 되는건 아님 |
|
컨테이너 시작 | # docker start [생성된 컨테이너 이름] # docker start [생성된 컨테이너 이름] |
생성되어 있는 컨테이너를 실행함 예시 # docker start mycentos OR # docker start cd0320ab9758 명령어 실행 전 : # docker container ls -al CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES cd0320ab9758 centos:7 "/bin/bash" 16 hours ago Created mycentos 명령어 실행 후 : # docker container ls -al CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES cd0320ab9758 centos:7 "/bin/bash" 16 hours ago Up 2 seconds mycentos |
|
컨테이너 내부로 접속 | # docker attach [실행된 컨테이너 이름] # docker attach [실행된 컨테이너 ID] |
실행중인 컨테이너 내부로 접속함 예시 # docker attach mycentos OR # docker attach cd0320ab9758 결과 [root@cd0320ab9758 /]# ls anaconda-post.log dev home lib64 mnt proc run srv tmp |
|
내부 컨테이너에서 빠져나옴 |
# exit |
해당 컨테이너 중지 포함 예시 # exit 결과 exit |
|
Ctrl + P, Q | |
해당 컨테이너 중지 미포함 | |
컨테이너 목록 확인 |
# docker ps |
현재 작동중인 컨테이너 목록 표시 CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES cd0320ab9758 centos:7 "/bin/bash" 16 hours ago Up 14 minutes mycentos |
|
# docker ps -a | |
현재 중지된 컨테이너 까지 모두 표시 CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES cd0320ab9758 centos:7 "/bin/bash" 16 hours ago Up 15 minutes mycentos bf2dc1cbe53c ubuntu:14.04 "/bin/bash" 16 hours ago Exited (255) 19 minutes ago flamboyant_shtern c7d79b819bcd ubuntu:14.04 "/bin/bash" 17 hours ago Exited (127) 16 hours ago practical_zhukovsky 69f25ce365df centos "/bin/bash" 2 weeks ago Exited (127) 2 weeks ago nervous_gauss |
|
# docker ps --format "table [필드]" | |
예시 (/t는 탭 범위만큼 뛰어서 출력) # docker ps --format "table {{.ID}}\t{{.Status}}" 결과 CONTAINER ID STATUS cd0320ab9758 Up 26 seconds 필드 CONTAINER ID => {{.ID}} IAMGE => {{.Image}} COMMAND => {{.Command}} CREATED => {{.Created}} STATUS => {{.Status}} PORTS => {{.Ports}} NAMES => {{.Names}} |
|
- CONTAINER ID : 컨테이너에게 자동으로 할동되는 고유 ID - IMAGE : 컨터에너는 생성할 때 사용된 이미지명 - COMMAND : 컨테이너가 시작될 때 실행될 명령어(내부로 접속할 때 사용될 쉘) - CREATED : 컨테이너가 생성되고 난 뒤 흐른 시간 - STATUS : 컨테이너의 상태 => Up(실행중), Exited(종료), Pause(일시중지) 등 - PORT : 컨테이너가 개방한 포트와 호스트에 연결한 포트(아무것도 없는 경우 외부에노출 X) - NAMES : 컨테이너의 고유 이름 |
|
컨테이너 상세 정보 확인 | # docker inspect [컨테이너ID] |
엄청 긴 16진수 해시값인 컨테이너 고유 ID에서 앞에 12자리만 입력해도 됨 예시 # docker inspect cd0320ab9758 결과 [ { "Id": "cd0320ab97583ef2ab2de92ccdbbe70dc9d144713b92af995b5d6ad17850829d", "Created": "2021-06-08T23:29:54.902393581Z", "Path": "/bin/bash", (내용이 많아서 중간 부분 생략) "MacAddress": "02:42:ac:11:00:03", "DriverOpts": null } } } } ] |
|
# docker inspect [컨테이너ID] | grep Id | |
표시되는 전체 정보에서 Id 들어간 Low 가져와서 리턴 예시 # docker inspect cd0320ab9758 결과 "Id": "cd0320ab97583ef2ab2de92ccdbbe70dc9d144713b92af995b5d6ad17850829d", |
|
컨테이너 삭제 |
# docker rm [옵션] [컨테이너이름] |
지정된 컨테이너 삭제 예시 # docker rm mycentos 오류상황 - 실행중인 컨테이너를 삭제할 경우 표시되는 에러메시지 Error response from daemon: You cannot remove a running container cd0320ab97583ef2ab2de92ccdbbe70dc9d144713b92af995b5d6ad17850829d. Stop the container before attempting removal or force remove # docker rm -f mycentos => -f 옵션을 주면 실행중인 컨테이너도 삭제한다. |
|
# docker container prune | |
모든 정지된 컨테이너만 삭제 정지된 컨테이너를 모두 삭제할 껀지 물어본다. WARNING! This will remove all stopped containers. Are you sure you want to continue? [y/N] 삭제된 컨테이너 ID 가 표시 된다. Deleted Containers: bf2dc1cbe53cbc0afdbb2f49c349ccaa5a5e240b85dbf8f18696f6b626204961 c7d79b819bcd69ff48ddf9913de907cbaad6a7aea138730ea9f4928e45e6b492 69f25ce365df0645c3bb84e24d172662a048579f9ad891ed1db46edac92f3be7 Total reclaimed space: 254B |
|
# docker rm $(docker ps -a -q) | |
출력된 컨테이너 리스트를 활용해서 삭제 단순히 rm 명령으로 삭제하는거라 역시 실행중인 Container에 대해서는 에러가 표시 된다. Error response from daemon: You cannot remove a running container cd0320ab97583ef2ab2de92ccdbbe70dc9d144713b92af995b5d6ad17850829d. Stop the container before attempting removal or force remove Error response from daemon: You cannot remove a running container 9a78fb789f2fe1ecbd04149ecfd1ec3a87e682dda4a9f09d |
|
컨테이너 중지 | # docker stop [컨테이너이름] |
예시 # docker stop mycentos 결과 mycentos docker ps 명령어로 조회하면 목록에 표시 안되는걸 확인 할 수 있다. |
|
# docker stop $(docker ps -a -q) | |
모든 컨테이너를 중지 한다. |
반응형