1. docker 서비스를 시작하고 시스템 부팅 시에 시작하도록 구성systemctl enable dockersystemctl start docker2. docker 호스트 인스턴스에 대한 버전 정보docker version3. info서브 명령을 사용하여 현재 구성 정보 살펴보기docker info4. dockerd가 시작할 때 생성한 디렉터리 계층구조를 살펴보기ls -R /var/lib/docker5. docker가 설치되어 있는 리눅스 환경 특징:ip a#명령어 실행 시 docker0로 사설 ip가 할당됨#외부로 나갈 수는 있지만 패킷이 다시 돌아오지 못함/var/lib/docker라는 폴더가 있는지 여부(있으면 docker가 설치되어 있는거임)
IP1 IP2 IP3
con1 con2 con3
docker 172.17.0.1/16
192.168.10.81
사설 IP가 할당되기 때문에 Container에서 나갈 때는 나갈 수 있지만
다시 돌아올 때는 패킷을 받을 수 없다(IP를 변경해준다)
Source NAT를 사용한다
컨테이너가 나갈 때만 역할 IP...Source IP를 변경해준다
- (Linux Bridge)L2, DHCP, 그리고 나갈 때만 SNAT 역할로 내보내준다.
1. docker 서비스를 시작하고 시스템 부팅 시에 시작하도록 구성systemctl enable dockersystemctl start docker2. docker 호스트 인스턴스에 대한 버전 정보docker version3. info서브 명령을 사용하여 현재 구성 정보 살펴보기docker info4. dockerd가 시작할 때 생성한 디렉터리 계층구조를 살펴보기ls -R /var/lib/docker5. docker가 설치되어 있는 리눅스 환경 특징:ip a#명령어 실행 시 docker0로 사설 ip가 할당됨#외부로 나갈 수는 있지만 패킷이 다시 돌아오지 못함/var/lib/docker라는 폴더가 있는지 여부(있으면 docker가 설치되어 있는거임)6. /etc/docker/daemon.json 파일 생성하면 warning을 제거할 수 있다(SSL접속)("insecure-registries" :["10.10.12.0/24"])7. docker 재시작systemctl restart docker8. ubuntu 이미지 생성(이미지 저장소 레지스토리 - 일종의 파일서버에서 가져오기)docker pull reg.cloud.com/ubuntudocker images로 이미지 확인docker run -it reg.cloud.com/ubuntu로 이미지 생성9. apt명령어 실행으로 Ubuntu인지 여부 확인aptcat /etc/os-release로 release 정보 확인
*레지스토리(registry) : 이미지를 저장하는 원격 저장소
docker에서 공식적으로 제공하는 저장소가 존재한다 :
docker hub : https://hub.docker.com/explore/
1 2 3 | 1. docker 저장소에서 이미지 가져오기(여기서는 busybox) docker pull busybox | cs |
*Repository : 여러 docker 이미지들의 콜렉션 네임스페이스
public과 private으로 구분된다.
- 버전을 public repository에서 가져오기
#ubuntu:16.04
- 버전 입력안 할 시에는 자동으로 latest를 가져온다
#ubuntu
- docker images 명령어로 image tag를 확인 할 수 있다.
접근 repository가 private일 경우 로그인이 필요 :
1 2 3 4 5 6 | 1. docker hub 로그인 docker login docker logout 2. 로그인 정보 확인 cat ~/.docker/config.json | cs |
*Docker Pull 받기 :
1 2 3 4 5 6 7 8 | 1. pull 받기 docker pull {registryAddress}/{namespace}/{repositoryName}:{tag} docker pull {이미지} #사내망에 저장 예시 docker pull {계정 or URL}/{이미지} docker pull reg.cloud.com/busybox | cs |
*Docker 이미지/프로세스 지우기 :
1 2 3 4 5 6 7 8 9 | 1. docker process 및 이미지 지우기 docker rm -f {프로세스 명} docker ps -a #로 조회 docker rm -f 0e60b5e39d5c #docker 이미지 지우기 docker rmi <저장소 이름>/<이미지 이름, ID>:<태그> | cs |
*이미지 수정(Commit & Push)
뒤에서 따로 설명하겠지만, Docker에서 Commit 및 Push를 할 경우,
이미지에서는 Layer를 (revision별?) 서로 공유 하며 Layer는 1개만 가지고 있다. 전체 이미지가 아니라 수정된 부분만 업로드 된 상태로 남는다.
=> 이미지 전체를 또 받을 필요가 없다...빠르다...분산환경
(버전 컨트롤이 가능!!)
*이미지 레이어 구조 확인 :
1 2 3 4 5 | 1. 이미지 레이어 확인하기 ls /var/lib/docker/overlay2/ -l #여러개가 출력되는데 이것을 조립해서 하나의 이미지로 보여준다. ls -l /var/lib/docker/overlay2/{이미지레이어 ID} #diff link lower | cs |
*Docker 포트 매핑 및 실행:
1 2 3 4 5 6 7 | - 포트 매핑 docker run -d(백그라운드 실행) -p {HOST PORT}:{Container PORT} --restart=always --name registry registry:2.5 docker run -d -p 5000:5000 --restart=always --name registry registry:2.5 docker run -d -p 5000:5000 --restart=always --name hkregistry registry:2.5 | cs |
*Docker image명 변경 :
1 2 3 4 5 | docker tag reg.cloud.com/ubuntu localhost/ubuntu #Push 한 후에 localhost/ubuntu를 다운받을 수 docker push localhost/ubuntu docker pull localhost/ubuntu | cs |
*Docker image tar파일로 백업/삭제/업로드
1 2 3 4 5 6 7 8 9 10 | *Docker image를 아웃풋 tar 파일로 백업 받기 docker save -o /tmp/ubuntu.tar reg.cloud.com/ubuntu *기존 Docker 이미지 삭제 docker ps -a docker rm -r {Container ID} docker rmi {image name} *백업받은 tar 이미지 파일 다시 업로드 docker load -i ubuntu.tar | cs |
Container에 들어가서 ps -ef로 조회해보면
PID 1번은 컨테이너에 이미지를 띄워주는 프로세스임~
컨테이너 run 시 이미지에 내장된 명령어가 자동으로 실행됨!
*Docker Process 관리
1 2 3 4 5 6 7 8 9 10 11 | *Docker 컨테이너 프로세스 실행 docker container run {image} cat /etc/os-release *Docker 컨테이너 프로세스 [root@host01-2 tmp]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES c02b501f1151 reg.cloud.com/ubuntu "/bin/bash" About a minute ago Up About a minute compassionate_euler - Ctrl+p+q 를 누르면 bash shell을 프로세스를 죽이지 않은 상태에서 빠져나올 수 있음 - 다시 bash shell 프로세스로 돌아갈려면 docker attach {container ID} | cs |
'Docker(도커) Kubernetes' 카테고리의 다른 글
docker image tag 관리, dockerfile 생성하기, 인스트럭션 사용법 (0) | 2018.05.23 |
---|---|
Docker Container와 Host간 web server storage를 공유하도록 만들기 (0) | 2018.05.23 |
Docker 이미지란, 도커 이미지 layer 파일시스템 구조, UTS, PID 호스트 네임스페이스 공유 (0) | 2018.05.23 |
Docker Container 특징, 컨테이너 기반기술, VM과 컨테이너 차이 (0) | 2018.05.21 |
Docker 개념, 베어메탈, VM, Docker Container 이해하기 (0) | 2018.05.21 |