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 [유저명]
참고자료
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 |