개발/DevOps

Docker 이미지와 컨테이너 관련 명령어

달리초이 2022. 12. 27. 15:59

 

- docker 이미지 검색

docker search [옵션] <이미지이름>

 

- docker 이미지 다운로드

docker pull [옵션] <이미지이름:태그명>

뒤에 태그명 생략하면 latest 버전으로 자동 다운로드됨

 

- 컨테이너 이미지 레이어가 들어가는 곳

/var/lib/docker/overlay2

 

- 저장된 이미지 조회

docker images
또는
docker image ls

 

- 다운 받은 이미지 상세보기

docker inspect [옵션] <이미지이름:태그명>

# --format 옵션 예제. 출력값 중에 특정 키의 값만 출력
docker inspect --format '{{.NetworkSettings.IPAddress}}' webserver
#172.17.0.2

# alias 사용해 줄여서 사용할 수도
alias cip=docker inspect --format '{{.NetworkSettings.IPAddress}}'
cip webserver
#172.17.0.2

 

 

- docker 이미지 실행

docker run --name web -d -p 80:80 nginx

기존에 80 포트를 사용하거나 web이라는 이름의 컨테이너가 있다면 각각 kill이나 stop, rm 한 후 해보자.

 

- 제대로 실행되었는지 확인

docker ps

# 80번 포트로 접근하면 nginx 페이지 내용을 응답받음
curl localhost:80

 

- 컨테이너 = 다른 프로그램과 분리된 환경에서 실행
- 컨테이너 이미지 = 컨테이너 실행을 위해 미리 준비해야 함
- 허브 = 컨테이너 이미지가 저장된 창고

 

- docker 이미지 삭제

docker rmi [옵션] <이미지이름>

 

컨테이너 명령어

- 실행중인 컨테이너 목록 확인

docker ps [옵션]

 

- 컨테이너 생성

docker create [옵션] <이미지이름:태그명>
docker create --name webserver nginx:1.14

 

- 컨테이너 실행

docker start [옵션] <컨테이너이름>
docker start webserver

 

- 컨테이너 pull -> create -> start 를 한 번에 실행하는 명령어

docker run [옵션] [이미지이름 또는 이미지ID] [실행할 파일]
docker run --name webserver -d nginx:1.14

-d: 컨테이너 백그라운드 실행

-it: 컨테이너를 종료하지 않은체로, 터미널의 입력을 계속해서 컨테이너로 전달하기 위해서 사용

--name: 컨테이너에 이름을 부여하여 식별하고자 할 때 사용

-e: 환경변수를 설정할 때 사용, Dockerfile의 ENV 설정도 덮어써짐
-p: 호스트와 컨테이너 간의 포트 배포/바이드를 위해 사용

-v: 호스트와 컨테이너 간의 볼륨(volumn) 설정

-w: dockerfile의 workdir 설정을 덮어쓰기 위해 사용
--entrypoint: Dockerfile의 ENTRYPOINT 설정을 덮어쓰기 위해서 사용
--rm: 컨테이너를 일회성으로 실행할 때 주로 사용, 컨테이너가 종료될 때 컨테이너와 관련된 리소스(파일 시스템, 볼륨)까지 깨끗이 제거

출처 : https://www.daleseo.com/docker-run/

 

- 컨테이너 실행 중지

docker stop [옵션] <컨테이너이름>

 

- 컨테이너 삭제

docker rm [옵션] <컨테이너이름>

 

실행중인 컨테이너 관리 명령어

- 포그라운드로 실행중인 컨테이너에 연결

docker attach [옵션] <컨테이너이름>
docker attach centos

 

- 컨테이너에서 동작되는 프로세스 확인

docker top [옵션] <컨테이너이름>

 

- 동작중인 컨테이너가 생성한 로그 보기

docker logs [옵션] <컨테이너이름>
docker logs -f

 

- 동작중인 컨테이너에 New 명령어 추가 실행

docker exec [옵션] <컨테이너이름> <명령어>
docker exec -it webserver /bin/bash

 

 

출처: 따배도

https://youtu.be/ild9PzdC0ww

728x90
반응형