English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
컨테이너를 실행할 때, 로컬에 존재하지 않는 아이콘을 사용하면 docker는 자동으로 docker 아이콘 저장소에서 다운로드합니다. 기본적으로 Docker Hub 공개 아이콘 저장소에서 다운로드합니다.
다음에 우리는 배우겠습니다:
1、로컬 Docker 호스트 아이콘을 관리하고 사용
2、아이콘 생성
우리는 docker images 를 사용하여 로컬 호스트의 아이콘을 나열합니다.
w3codebox@w3codebox:~$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE ubuntu 14.04 90d5884b1ee0 5 일 전 188 MB php 5.6 f40e9e0f10c8 9 일 전 444.8 MB nginx 최신 6f8d099c3adc 12 일 전 182.7 MB mysql 5.6 f2e8d6c772c0 3 주 전 324.6 MB httpd 최신 02ef73cf1bc0 3 주 전 194.4 MB ubuntu 15.10 4e3b13c8a266 4 주 전 136.3 MB hello-world 최신 690ed74de00f 6 달 전 960 B training/webapp 최신 6fae60ef3446 11 달 전 348.8 MB
각 옵션 설명:
REPOSITORY:아이콘의 저장소를 나타냅니다.
TAG:아이콘의 태그
IMAGE ID:아이콘 ID
CREATED:아이콘 생성 시간
SIZE:아이콘 크기
같은 저장소 소스에는 여러 태그가 있을 수 있으며, 이는 이 저장소 소스의 다른 버전을 나타냅니다. 예를 들어, ubuntu 저장소 소스에서는 다음과 같습니다: 15.10、14.04 等多个不同的版本을 사용하려면, REPOSITORY:TAG를 사용하여 다른 아이콘을 정의합니다.
따라서, 우리가 버전이15.10의 ubuntu 시스템 아이콘을 사용하여 컨테이너를 실행할 때, 명령어는 다음과 같습니다:
w3codebox@w3codebox:~$ docker run -t -i ubuntu:15.10 /bin/bash root@d77ccb2e5cca:/#
参数说明:
-i인터랙티브 작업.
-t터미널.
ubuntu:15.10이란 것입니다. 이는 ubuntu를 의미합니다. 15.10 버전 아이콘을 기반으로 컨테이너를 시작합니다.
/bin/bash명령어는 아이콘 이름 뒤에 위치하며, 여기서는 인터랙티브 셸을 원하기 때문에 /bin/bash.
버전이 14.04 의 ubuntu 시스템 아이콘을 사용하여 컨테이너를 실행할 때, 명령어는 다음과 같습니다:
w3codebox@w3codebox:~$ docker run -t -i ubuntu:14.04 /bin/bash root@:39e968165990:/#
아이콘의 버전 태그를 지정하지 않으면, 예를 들어 'ubuntu'만 사용하면 docker는 기본적으로 'ubuntu:latest' 아이콘을 사용합니다.
로컬 호스트에서 존재하지 않는 이미지를 사용할 때 Docker는 자동으로 이 이미지를 pulls합니다. 이 이미지를 미리 pulls하려면 docker pull 명령어를 사용할 수 있습니다.
Cw3codebox@w3codebox:~$ docker pull ubuntu:13.10 13.10: 라이브러리에서 pulls/ubuntu 6599cadaf950: pulls 완료 23eda618d451: pulls 완료 f0be3084efe9: pulls 완료 52de432f084b: pulls 완료 a3됩니다95caeb02: pulls 완료 Digest: sha256:15b79a6654811c8d992ebacdfbd5152fcf3d165e374e264076aa435214a947a3 Status: ubuntu에 새로운 이미지를 pulls13.10
다운로드가 완료되면, 이 이미지를 사용하여 컨테이너를 실행할 수 있습니다.
Docker Hub 웹사이트에서 이미지를 검색할 수 있습니다. Docker Hub 주소는 다음과 같습니다:https://hub.docker.com/
docker search 명령어를 사용하여 이미지를 검색할 수도 있습니다. 예를 들어, 우리는 web 서비스로 사용할 httpd 이미지를 필요로 할 때, docker search 명령어를 사용하여 httpd를 검색하여 적합한 이미지를 찾을 수 있습니다.
w3codebox@w3codebox:~$ docker search httpd
NAME: 이미지 저장소 소스 이름
DESCRIPTION: 이미지 설명
OFFICIAL: docker 공식 출시 여부
stars: Github에서 star과 같이, 좋아요, 찬성을 의미합니다.
AUTOMATED: 자동 빌드
위의 이미지에서 httpd 공식 버전의 이미지를 사용하기로 결정했습니다. docker pull 명령어를 사용하여 이미지를 다운로드합니다.
w3codebox@w3codebox:~$ docker pull httpd 기본 태그 사용: latest latest: 라이브러리에서 pulls/httpd 8b87079b7a06: fs 레이어를 pulls a3됩니다95caeb02: 다운로드 완료 0d62됩니다9c6a76: 다운로드 완료 a329d50397b9: 다운로드 완료 됩니다7c1f032b5c: 대기 중 됩니다44112b72c7: 대기 중
다운로드가 완료되면, 이 이미지를 사용할 수 있습니다.
w3codebox@w3codebox:~$ docker run httpd
이미지 제거를 사용 docker rmi 명령어를 사용하여 예를 들어 hello을 제거합니다-world 이미지:
$ docker rmi hello-world
우리가 Docker 이미지 저장소에서 다운로드한 이미지가 우리의 요구를 충족하지 않을 때, 우리는 다음 두 가지 방법으로 이미지를 변경할 수 있습니다.
1、이미지를 업데이트한 컨테이너에서 이미지를 업데이트하고 이 이미지를 제출합니다
2、Dockerfile 지시를 사용하여 새로운 이미지를 생성합니다
이미지를 업데이트하기 전에, 우리는 이미지를 사용하여 컨테이너를 생성해야 합니다.
w3codebox@w3codebox:~$ docker run -t -i ubuntu:15.10 /bin/bash root@e218edb10161:/#
서비스 중인 컨테이너 내에서 사용 apt-get update 명령어로 업데이트를 수행합니다.
작업이 완료되면 exit 명령어를 입력하여 이 컨테이너를 나갑니다.
이제 ID는 e입니다218edb10161 의 컨테이너는 우리의 요구에 따라 변경된 컨테이너입니다. 우리는 컨테이너 복제를 제출하려면 docker commit 명령어를 사용할 수 있습니다.
w3codebox@w3codebox:~$ docker commit -m="has update" -a="w3codebox" e218edb10161 w3codebox/ubuntu:v2 sha256:70bf1840fd7c0d2d8ef0a42a817eb29f854c1af8f7c59fc03ac7bdee9545aff8
각 파라미터 설명:
-m: 제출된 설명 정보
-a: 이미지 작성자를 지정합니다
e218edb10161:컨테이너 ID
w3codebox/ubuntu:v2: 목표 이미지 이름을 지정할 수 있습니다
우리는 docker images 명령어를 사용하여 우리의 새로운 이미지를 확인합니다 w3codebox/ubuntu:v2:
w3codebox@w3codebox:~$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE w3codebox/ubuntu v2 70bf1840fd7c 15 seconds ago 158.5 MB ubuntu 14.04 90d5884b1ee0 5 일 전 188 MB php 5.6 f40e9e0f10c8 9 일 전 444.8 MB nginx 최신 6f8d099c3adc 12 일 전 182.7 MB mysql 5.6 f2e8d6c772c0 3 주 전 324.6 MB httpd 최신 02ef73cf1bc0 3 주 전 194.4 MB ubuntu 15.10 4e3b13c8a266 4 주 전 136.3 MB hello-world 최신 690ed74de00f 6 달 전 960 B training/webapp 최신 6fae60ef3446 12 달 전 348.8 MB
우리의 새로운 이미지를 사용하여 w3codebox/ubuntu 를 사용하여 컨테이너를 시작합니다
w3codebox@w3codebox:~$ docker run -t -i w3codebox/ubuntu:v2 /bin/bash root@:1a9fbdeb5da3:/#
우리는 명령어 docker build , 새로운 이미지를 만들기 위해부터 시작합니다. 이를 위해, 우리는 Docker가 이미지를 어떻게 빌드할지 알려주는 지시를 포함한 Dockerfile 파일을 생성해야 합니다.
w3codebox@w3codebox:~$ cat Dockerfile FROM centos:6.7 MAINTAINER Fisher "[email protected]" RUN /bin/echo 'root:123456' |chpasswd RUN useradd w3codebox RUN /bin/echo 'w3codebox:123456' |chpasswd RUN /bin/echo -e "LANG=\"en_US.UTF-8"" >/etc/default/local EXPOSE 22 EXPOSE 80 CMD /usr/sbin/sshd -D
각 지시는 이미지에 새로운 레이어를 생성하며, 각 지시의 프리픽스는 대문자여야 합니다.
第一条FROM,指定使用哪个镜像源
RUN 指令告诉docker 在镜像内执行命令,安装了什么。。。
然后,我们使用 Dockerfile 文件,通过 docker build 命令来构建一个镜像。
w3codebox@w3codebox:~$ docker build -t w3codebox/centos:6.7 . Sending build context to Docker daemon 17.92 kB Step 1 : FROM centos:6.7 ---> d95b5ca17cc3 Step 2 : MAINTAINER Fisher "[email protected]" ---> Using cache ---> 0c92299c6f03 Step 3 : RUN /bin/echo 'root:123456' |chpasswd ---> Using cache ---> 0397ce2fbd0a Step 4 : RUN useradd w3codebox ......
参数说明:
-t :指定要创建的目标镜像名
. :Dockerfile 文件所在目录,可以指定Dockerfile 的绝对路径
使用docker images 查看创建的镜像已经在列表中存在,镜像ID为860c279d2fec
w3codebox@w3codebox:~$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE w3codebox/centos 6.7 860c279d2fec About a minute ago 190.6 MB w3codebox/ubuntu v2 70bf1840fd7c 17 시간 전 158.5 MB ubuntu 14.04 90d5884b1ee0 6 일 전 188 MB php 5.6 f40e9e0f10c8 10 일 전 444.8 MB nginx 최신 6f8d099c3adc 12 일 전 182.7 MB mysql 5.6 f2e8d6c772c0 3 주 전 324.6 MB httpd 최신 02ef73cf1bc0 3 주 전 194.4 MB ubuntu 15.10 4e3b13c8a266 5 주 전 136.3 MB hello-world 최신 690ed74de00f 6 달 전 960 B centos 6.7 d95b5ca17cc3 6 달 전 190.6 MB training/webapp 최신 6fae60ef3446 12 달 전 348.8 MB
새 이미지를 사용하여 컨테이너를 생성할 수 있습니다
w3codebox@w3codebox:~$ docker run -t -i w3codebox/centos:6.7 /bin/bash [root@41c28d18b5fb /]: id w3codebox uid =500(w3codebox) 그룹 ID =500(w3codebox) 그룹 =500(w3codebox)
위에서 볼 수 있듯이 새 이미지는 사용자 w를 포함하고 있습니다3codebox。
docker tag 명령어를 사용하여 이미지에 새 태그를 추가할 수 있습니다.
w3codebox@w3codebox:~$ docker tag 860c279d2fec w3codebox/centos:dev
docker tag 이미지ID, 여기서는 860c279d2fec, 사용자 이름, 이미지 원본 이름(repository name) 및 새 태그 이름(tag)가 있습니다.
docker images 명령어를 사용하여 볼 수 있듯이, ID는860c279d2fec의 이미지는 추가 태그가 하나 더 있습니다.
w3codebox@w3codebox:~$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE w3codebox/centos 6.7 860c279d2fec 5 시간 전 190.6 MB w3codebox/centos dev 860c279d2fec 5 시간 전 190.6 MB w3codebox/ubuntu v2 70bf1840fd7c 22 시간 전 158.5 MB ubuntu 14.04 90d5884b1ee0 6 일 전 188 MB php 5.6 f40e9e0f10c8 10 일 전 444.8 MB nginx 최신 6f8d099c3adc 13 일 전 182.7 MB mysql 5.6 f2e8d6c772c0 3 주 전 324.6 MB httpd 최신 02ef73cf1bc0 3 주 전 194.4 MB ubuntu 15.10 4e3b13c8a266 5 주 전 136.3 MB hello-world 최신 690ed74de00f 6 달 전 960 B centos 6.7 d95b5ca17cc3 6 달 전 190.6 MB training/webapp 최신 6fae60ef3446 12 달 전 348.8 MB