IT/기초 지식

[Docker] 자주 사용하는 Docker 커맨드 모음

개발자 두더지 2021. 4. 21. 12:01
728x90

docker 컨테이너를 실행하고 로그인


docker run -i -t [이미지명] /bin/bash

참고로, -u[유저명] 을 추가로 입력하여 가동할 때의 유저를 지정할 수 있다.

 

 

docker이미지를 tar.gz형식으로 저장하기


docker save [이미지명] > [파일명].tar.gz

 

 

tar.gz형식의 docker이미지를 로드


docker load < [파일명].tar.gz

 

 

docker이미지를 복사(태그명 변경)


docker tag [대상 이미지명:태그] [변경 후 이미지명:태그]

 

 

실행중인 컨테이너에 로그인


docker exec -it [컨테이너ID] bash

 

 

실행중인 컨테이너의 호스트에서 파일을 복사


docker cp [호스트 파일 경로] [컨테이너ID]:[컨테이너복사 대상 경로]

 

 

실행중인 컨테이너를 이미지로써 저장하기


docker commit [편집한 컨테이너ID] [저장할 컨테이너명]

 

 

외부에서부터 컨테이너에 액세스하기 (포트 포워딩)


docker run -p [외부 포트]:[컨테이너 포트]

-p 옵션은 여러개 지정 가능하다.

 

 

dockerfile를 이용해 이미지를 작성


docker build -t [이미지명]:[태그명] [Dockerfile디렉토리 경로]

 

 

status가 exited인 docker이미지만을 일괄 삭제


docker rm $(docker ps -a --filter 'status=exited' -q)

 

 

처리가 종료될 때에 컨테이너를 자동 삭제


실행시에 --rm 옵션을 붙이면 된다.

docker run --rm 이하 생략

 

 

컨테이너의 볼륨을 호스트에 마운트하기


docker run -v [호스트 볼륨 경로]:[컨테이너 내의 경로] [컨테이너 이미지]

 

 

컨테이너를 시작·중지· 재실행


docker start/stop/restart [컨테이너명]

호스트상의 모든 컨테이너를 일괄 정지하고 싶은 경우네느 아래의 커맨드를 사용한다.

docker stop $(docker ps -q)

 

 

컨테이너 이미지를 registry에 push


docker push [컨테이너명]

 

 

docker registry상의 이미지 목록을 확인


curl https://[registry 도메인 명]:5000/v2/_catalog

증명서등 SSL의 설정이 올바르지 않은 경우 에러가 발생한다.

Error의 예시는 아래와 같다.

curl: (60) Peer's certificate issuer has been marked as not trusted by the user.
More details here: https://curl.haxx.se/docs/sslcerts.html

curl performs SSL certificate verification by default, using a "bundle"
 of Certificate Authority (CA) public keys (CA certs). If the default
 bundle file isn't adequate, you can specify an alternate file
 using the --cacert option.
If this HTTPS server uses a certificate signed by a CA represented in
 the bundle, the certificate verification probably failed due to a
 problem with the certificate (it might be expired, or the name might
 not match the domain name in the URL).
If you'd like to turn off curl's verification of the certificate, use
 the -k (or --insecure) option.

이 때는 --cacert 옵션으로 crt 파일 경로를 지정한다.

curl --cacert [crt파일 경로] https://[레지스터리 도메인 명]:5000/v2/_catalog

아래와 같은 Error가 발생한 경우, sudo로 실행한다.

curl: (77) Problem with the SSL CA cert (path? access rights?)

또한 임의의 방법으로 -k 옵션을 사용하는 방법도 있다.

curl -k https://[레지스터리 도메인명]:5000/v2/_catalog

 

 

docker registry상의 이미지 태그를 확인


v2/_catalog 커맨드로도 태그를 확인할 수 있으면 좋겠지만, 태그를 확인하기 위해서는 리퍼지토리를 지정하여 아래의 커맨드대로 실행한다.

curl https://[레지스터리 도메인명]:5000/v2/[리포지터리 명]/tags/list

{"name":"[리포지터리 명]","tags":["latest"]}

 

 

컨테이너를 자동 재실행


호스트 재실행이나 의도하지 않게 컨테이너를 중지됐을 때, 자동으로 재실행해주는 옵션이다.

docker stop 커맨드로 명시적으로 종료한 경우는 제외한다.

docker run --restart=always

always대신에 on-failure[:max-retries] 로 이상 종료시 리트라이 횟수 지정해 재실행을 설정할 수 있다.

 

 

컨테이너명의 변경(rename)


docker run옵션 --name으로 지정한 컨테이너명을 변경할 수 있다.

docker rename [변경전] [변경후]

 

 

각 종 컨테이너 정보 취득


docker inspect

IP 주소, 포트, 마운트 정보 등을 확인할 수 있다.

 

 

일반 유저도 docker 커맨드를 사용할 수 있게 한다.


docker 그룹에 일반 유저를 추가해서 커맨드를 사용하게 할 수 있다.

sudo usermod -a -G docker [유저명]

참고자료

qiita.com/suzukihi724/items/961112f6578a60dd6266

728x90

'IT > 기초 지식' 카테고리의 다른 글

[Docker] Docker 이미지 튜토리얼  (0) 2021.05.10
[Docker] Docker 기초(3)  (0) 2021.05.07
[Docker] Docker 기초(2)  (0) 2021.04.05
[Docker] Docker 기초(1)  (0) 2021.04.04
[SQL Server] 저장 함수(stored function)만들기  (0) 2021.03.11