1. Registry ( 저장소 )
- 이미지가 보관되는 곳
- 불특정 다수가 접근하여 이미지를 사용할 수 있는 public registry
- 특정 사용자 / 그룹만 접근하여 이미지를 사용할 수 있는 private registry
- 사용자 혼자만 접속할 수 있는 local registry
public registry
-
위와 같이 docker search 를 하면 도커 허브에 연결하여, 퍼블릭 저장소에 보관된 공개된 모든 이미지를 검색 / pull 할 수 있다. 첫번째 검색 결과는 항상 공식 이미지 이다
-
공식 이미지는 별도의 계정 정보가 보이지 않는다. 하지만, public registry 에 공개된 이미지는 ID/프로그램명 과 같이 출력된다 ( ex. circleci/python )
-
public 저장소는 이처럼 누구든 접속 가능하므로 위험하다
private registry
- 도커 허브에 repository 를 만들 때 private 으로 만들고, 접속 허용하고자 하는 id 를 지정
- aws, gcp, azure 와 같이 vpc 환경에서 작업하는 경우에도 사설 저장소를 운영할 수 있다
- 별도의 서버를 하나 준비하고, 해당 서버에 registry 라는 이미지를 이용하여, 사설 저장소를 운영할 수 있는 컨테이너를 생성한다
local registry
-
컴퓨터 자체에 이미지를 보관할 수 있는 공간이 있는데, 여기를 로컬 저장소하고 하며, 컨테이너 생성시에는 1차적으로 이 로컬 저장소에서 이미지를 검색하게 된다. 이때, 로컬 저장소에 이미지가 없다면, 도커 허브로 연결한다
-
레포지터리와 레지스트리를 동일한 의미로 사용하긴 하지만, 레포지터리의 모음이 레지스트리. 즉, 도커 허브라는 퍼블릭 레지스트리 안에, 우리는 레포지터리를 만든 것이다. 이 레포지터리는 안에 TAG 로 또 구분한다
- 하나의 이미지를 하나의 레포지터리에 연결, 레포지터리 안에도 구획 나눠져 있기도 하다
2. 도커 컨테이너의 life cycle
p.63
- run 하면, 컨테이너가 생성 및 실행된다
- start 하면 실행되며, stop 을 통해 die 시켜서 stop 상태로 전환시킬 수 있다
- create 를 통해 생성하면, 생성만 되고, 시작이 안되므로, 별도로 start 를 시켜야 시작된다
- restart 를 통해 재시작이 가능하다
- pause 를 하면 컨테이너를 중지시킨다
- 컨테이너 삭제는 stop 인 상태에서 docker container rm 을 하면 삭제된다
- docker container rm -f = docker container stop + docker container rm
명령어
- docker container attach : 생성된 컨테이너에 연결
- docker container exec [컨테이너 이름] 명령어 : 컨테이너에게 명령어를 전달
- 이미지 pull 하기 : docker pull 이미지이름 을 통해 이미지를 pull 한다
- docker pull httpd : 도커 허브에서 제공되는 공식 이미지 중 최신 이미지를 local registry 에 pull
- docker pull centos:7 : 도커 허브 공식 centos 이미지 중 7 버전을 local registry 에 pull
- docker container ls --all : 컨테이너 리스트
- docker image ls : 이미지 리스트
3. 컨테이너 삭제
- 위와 같이 실행중인 컨테이너는 삭제가 불가능하다. -f 옵션을 통해 실행중인 컨테이너를 바로 삭제할 수 있다
- 위와 같이 q 옵션으로 컨테이너 ID 만 출력할 수 있다
- 이를 통해 위와 같이 모든 컨테이너를 삭제할 수 있다
docker rm -f $(docker container ls --all -q)