도커 이미지 사용법
컨테이너를 실행할 때 사용된 이미지가 로컬에 없으면 docker는 docker 이미지 웨어하우스에서 자동으로 다운로드합니다. 기본값은 Docker Hub 공개 이미지 소스에서 다운로드하는 것입니다.
아래에서 알아보세요.
1. 로컬 Docker 호스트 이미지 관리 및 사용
2. 이미지 생성
이미지 목록 나열
로컬 미러 목록을 표시하는 데 docker 이미지를 사용할 수 있습니다. 호스트에서.
php@php:~$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE ubuntu 14.04 90d5884b1ee0 5 days ago 188 MB php 5.6 f40e9e0f10c8 9 days ago 444.8 MB nginx latest 6f8d099c3adc 12 days ago 182.7 MB mysql 5.6 f2e8d6c772c0 3 weeks ago 324.6 MB httpd latest 02ef73cf1bc0 3 weeks ago 194.4 MB ubuntu 15.10 4e3b13c8a266 4 weeks ago 136.3 MB hello-world latest 690ed74de00f 6 months ago 960 B training/webapp latest 6fae60ef3446 11 months ago 348.8 MB
각 옵션 설명:
REPOSTITORY: 이미지의 창고 소스를 나타냅니다
TAG: 이미지의 태그
IMAGE ID: 이미지 ID
-
CREATED: 이미지 생성 시간
SIZE: 이미지 크기
동일한 웨어하우스 소스에 이 웨어하우스 소스의 다양한 버전을 나타내는 여러 개의 태그가 있을 수 있습니다. 15.10, 14.04 등과 같은 다양한 버전에서는 REPOSTITORY:TAG를 사용하여 다양한 이미지를 정의합니다.
따라서 15.10 버전의 ubuntu 시스템 이미지를 사용하여 컨테이너를 실행하려는 경우 명령은 다음과 같습니다.
php@php:~$ docker run -t -i ubuntu:15.10 /bin/bash root@d77ccb2e5cca:/#
14.04 버전의 ubuntu 시스템 이미지를 사용하여 컨테이너를 실행하려는 경우 명령은 다음과 같습니다.
php@php:~$ docker run -t -i ubuntu:14.04 /bin/bash root@39e968165990:/#
이미지의 버전 라벨을 지정하지 않으면 예를 들어 ubuntu만 사용하는 경우 docker는 기본적으로 ubuntu:latest 이미지를 사용합니다.
새 이미지 가져오기
로컬 호스트에 존재하지 않는 이미지를 사용하면 Docker가 자동으로 이미지를 다운로드합니다. 이 이미지를 미리 다운로드하려면 docker pull 명령을 사용하여 다운로드할 수 있습니다.
Cphp@php:~$ docker pull ubuntu:13.10 13.10: Pulling from library/ubuntu 6599cadaf950: Pull complete 23eda618d451: Pull complete f0be3084efe9: Pull complete 52de432f084b: Pull complete a3ed95caeb02: Pull complete Digest: sha256:15b79a6654811c8d992ebacdfbd5152fcf3d165e374e264076aa435214a947a3 Status: Downloaded newer image for ubuntu:13.10
다운로드가 완료된 후 이 이미지를 직접 사용하여 컨테이너를 실행할 수 있습니다.
이미지 찾기
Docker Hub 웹사이트에서 이미지를 검색할 수 있습니다. Docker Hub URL은 https://hub.docker.com/docker 검색 명령을 사용하여 이미지를 검색할 수도 있습니다. 예를 들어 웹 서비스로 httpd 미러가 필요합니다. docker search 명령어를 통해 httpd를 검색하여 우리에게 맞는 이미지를 찾을 수 있습니다.
php@php:~$ docker search httpd
NAME:이미지 웨어하우스 소스 이름
DESCRIPTION:이미지 설명
OFFICIAL:docker가 공식적으로 출시되나요?
이미지를 드래그하세요
사용하기로 결정했습니다. httpd 위의 이미지 이미지의 공식 버전의 경우 docker pull 명령을 사용하여 이미지를 다운로드합니다.
php@php:~$ docker pull httpd Using default tag: latest latest: Pulling from library/httpd 8b87079b7a06: Pulling fs layer a3ed95caeb02: Download complete 0d62ec9c6a76: Download complete a329d50397b9: Download complete ea7c1f032b5c: Waiting be44112b72c7: Waiting
다운로드가 완료된 후 이 이미지를 사용할 수 있습니다.
php@php:~$ docker run httpd
이미지 만들기
docker 이미지 웨어하우스에서 다운로드한 이미지가 요구 사항을 충족하지 않는 경우 다음 두 가지 방법으로 이미지를 변경할 수 있습니다.
1. 이미 생성된 컨테이너에서 이미지를 업데이트하고 이 이미지를 제출하세요
2. Dockerfile 명령을 사용하여 새 이미지 만들기
이미지 업데이트
이미지를 업데이트하기 전에 이미지를 사용하여 컨테이너를 만들어야 합니다.php@php:~$ docker run -t -i ubuntu:15.10 /bin/bash root@e218edb10161:/#는 실행 중인 컨테이너 내에서 apt-get update 명령을 사용하여 업데이트합니다.
작업을 완료한 후 종료 명령을 입력하여 컨테이너를 종료하세요.
현재 ID가 e218edb10161인 컨테이너는 우리의 필요에 따라 변경된 컨테이너입니다. docker commit 명령을 통해 컨테이너 복사본을 제출할 수 있습니다.
php@php:~$ docker commit -m="has update" -a="php" e218edb10161 php/ubuntu:v2 sha256:70bf1840fd7c0d2d8ef0a42a817eb29f854c1af8f7c59fc03ac7bdee9545aff8
각 매개변수 설명:
-m:제출된 설명 정보
-a:이미지 작성자 지정
e218edb10161:컨테이너 ID
php/우분투 ; 컨테이너를 시작하려면
php@php:~$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE php/ubuntu v2 70bf1840fd7c 15 seconds ago 158.5 MB ubuntu 14.04 90d5884b1ee0 5 days ago 188 MB php 5.6 f40e9e0f10c8 9 days ago 444.8 MB nginx latest 6f8d099c3adc 12 days ago 182.7 MB mysql 5.6 f2e8d6c772c0 3 weeks ago 324.6 MB httpd latest 02ef73cf1bc0 3 weeks ago 194.4 MB ubuntu 15.10 4e3b13c8a266 4 weeks ago 136.3 MB hello-world latest 690ed74de00f 6 months ago 960 B training/webapp latest 6fae60ef3446 12 months ago 348.8 MB
이미지 빌드
docker build 명령을 사용하여 처음부터 새 이미지를 만듭니다. 이렇게 하려면 Docker에 이미지 빌드 방법을 알려주는 일련의 지침이 포함된 Dockerfile을 만들어야 합니다. php@php:~$ docker run -t -i php/ubuntu:v2 /bin/bash
root@1a9fbdeb5da3:/#
각 명령은 이미지에 새 레이어를 생성하며 각 명령의 접두사는 대문자여야 합니다.
첫 번째 FROM은 사용할 이미지 소스를 지정합니다. RUN 명령은 Docker에게 이미지에 있는 명령을 실행하고 무엇을 설치하라고 지시합니다. . .
그런 다음 Dockerfile 파일을 사용하여 docker build 명령을 통해 이미지를 빌드합니다.
php@php:~$ cat Dockerfile
FROM centos:6.7
MAINTAINER Fisher "fisher@sudops.com"
RUN /bin/echo 'root:123456' |chpasswd
RUN useradd php
RUN /bin/echo 'php:123456' |chpasswd
RUN /bin/echo -e "LANG=\"en_US.UTF-8\"" > /etc/default/local
EXPOSE 22
EXPOSE 80
CMD /usr/sbin/sshd -D
매개변수 설명: -t
: 생성할 대상 이미지 이름을 지정합니다..
: Dockerfile 파일이 있는 디렉터리, Dockerfile의 절대 경로를 지정할 수 있습니다
- 도커 이미지를 사용하여 생성 내용 보기 이미지가 이미 목록에 있으며 이미지 ID는 860c279d2fec
php@php:~$ docker build -t php/centos:6.7 . Sending build context to Docker daemon 17.92 kB Step 1 : FROM centos:6.7 ---> d95b5ca17cc3 Step 2 : MAINTAINER Fisher "fisher@sudops.com" ---> Using cache ---> 0c92299c6f03 Step 3 : RUN /bin/echo 'root:123456' |chpasswd ---> Using cache ---> 0397ce2fbd0a Step 4 : RUN useradd php ......
새 이미지를 사용하여 컨테이너를 만들 수 있습니다php@php:~$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE php/centos 6.7 860c279d2fec About a minute ago 190.6 MB php/ubuntu v2 70bf1840fd7c 17 hours ago 158.5 MB ubuntu 14.04 90d5884b1ee0 6 days ago 188 MB php 5.6 f40e9e0f10c8 10 days ago 444.8 MB nginx latest 6f8d099c3adc 12 days ago 182.7 MB mysql 5.6 f2e8d6c772c0 3 weeks ago 324.6 MB httpd latest 02ef73cf1bc0 3 weeks ago 194.4 MB ubuntu 15.10 4e3b13c8a266 5 weeks ago 136.3 MB hello-world latest 690ed74de00f 6 months ago 960 B centos 6.7 d95b5ca17cc3 6 months ago 190.6 MB training/webapp latest 6fae60ef3446 12 months ago 348.8 MB
위에서 새 이미지가 이미 있음을 알 수 있습니다 우리가 만든 사용자 PHP가 포함되어 있습니다 이미지 태그 설정docker tag 명령을 사용하여 이미지에 새 태그를 추가할 수 있습니다.
php@php:~$ docker run -t -i php/centos:6.7 /bin/bash [root@41c28d18b5fb /]# id php uid=500(php) gid=500(php) groups=500(php)
docker 태그 이미지 ID, 여기에는 860c279d2fec, 사용자 이름, 이미지 소스 이름(리포지토리 이름) 및 새 태그 이름(태그)이 있습니다.
docker Images 명령을 사용하면 ID가 860c279d2fec인 이미지에 라벨이 하나 더 있음을 확인할 수 있습니다.
rreee