1. ホーム
  2. ドッカー

docker-imageの基本操作(III)

2022-03-03 07:29:34
<パス

docker-mirrorの基本操作(III)

ミラーの一覧表示

シンタックス

docker images [OPTSIONS][REPOSITROY] 
-a,all=flase
-f,--filter=[]
--no-trunc=false
-q,--quite=flase

を実行して、ローカルホストのミラーを一覧表示します。

runoob@runoob:~$ 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

各オプションの説明。

REPOSITORY: indicates the repository source of the mirror
TAG: the label of the mirror
IMAGE ID: mirror ID
CREATED: mirror creation time
SIZE: mirror size

同じリポジトリソースでも、異なるバージョンを表す複数のTAGを持つことができます。例えば、ubuntuのリポジトリソースでは、15.10、14.04など異なるバージョンが存在します。REPOSITORY:TAGを使用して、異なるミラーを定義します。


そこで、バージョン15.10のubuntuシステムイメージでコンテナを実行したい場合、コマンドは次のようになります。

runoob@runoob:~$ docker run -t -i ubuntu:15.10 /bin/bash 

バージョン14.04のubuntuシステムイメージでコンテナを実行する場合、コマンドは以下のようになります。

runoob@runoob:~$ docker run -t -i ubuntu:14.04 /bin/bash 

イメージのバージョンタグを指定しない場合、例えばubuntuとだけ指定した場合、Dockerはubuntu:latestイメージをデフォルトで使用します。

インスタンスです。

ビューミラー、IMAGE IDの表示が不完全な場合
[root@izwz93cxtzylaaouqzjj4sz docker]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/ubuntu latest 2a4cca5ac898 37 hours ago 111.5 MB
docker.io/centos latest ff426288ea90 8 days ago 207.2 MB

画像を表示し、IMAGE IDを完全に表示します。
[root@izwz93cxtzylaaouqzjj4sz ~]# docker images --no-trunc
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/ubuntu latest sha256:2a4cca5ac898476c2c47a8d6a17102e00241d6fa377fbe4d50787fe3d7a8d4d6 37 hours ago 111.5 MB
docker.io/centos latest sha256:ff426288ea903fcf8d91aca97460c613348f7a27195606b45f19ae91776ca23d 8 days ago 207.2 MB

ミラーの詳細を見る
docker inspect [OPTIONS]CONTAINER|IMAGE[CONTAINER|IMGAE...]
[root@izwz93cxtzylaaouqzjj4sz ~]# docker inspect centos:latest


doker rmi [OPTIONS]IMAGE[IMAGE...]
    -f,--force=false Force removal of the image
    --no-prune=flase do not delete untagged parents


ミラーの削除

シンタックス

[root@izwz93cxtzylaaouqzjj4sz ~]# docker rmi -f ubuntu:latest
Untagged: ubuntu:latest
Untagged: docker.io/ubuntu@sha256:55c3bcbe279b387e344c3e8dddec74115dbb3b4f4c91f97f4d1827e2ab9aba17
Deleted: sha256:2a4cca5ac898476c2c47a8d6a17102e00241d6fa377fbe4d50787fe3d7a8d4d6

インスタンス

[root@izwz93cxtzylaaouqzjj4sz ~]# docker rmi $(docker images ubuntu -q)
"docker rmi" requires at least 1 argument(s).
See 'docker rmi --help'.

Usage: docker rmi [OPTIONS] IMAGE [IMAGE...]

Remove one or more images

すべてのミラーを削除します。

docker search [OPTIONS] TERM
--automated=false Only show automated builds
--no-trunc=false Don't rtruncate output
-s,--starts=0 Onlry displays with at least x stars
Returns up to 25 results

画像の取得とプッシュ

ミラーを探す

構文

[root@izwz93cxtzylaaouqzjj4sz ~]# docker search ubuntu
INDEX NAME DESCRIPTION STARS OFFICIAL AUTOMATED
docker.io docker.io/ubuntu Ubuntu is a Debian-based Linux operating s...   7115 [OK]       
docker.io docker.io/dorowu/ubuntu-desktop-lxde-vnc Ubuntu with openssh-server and NoVNC 157 [OK]
docker.io docker.io/rastasheep/ubuntu-sshd Dockerized SSH service, built on top of of...   127 [OK]
docker.io docker.io/ansible/ubuntu14.04-ansible Ubuntu 14.04 LTS with ansible 90 [OK]
docker.io docker.io/ubuntu-upstart Upstart is an event-based replacement for ...   80 [OK]       
docker.io docker.io/neurodebian NeuroDebian provides neuroscience research...   41 [OK]       
.......................... 


インスタンス

すべてのミラーを検索
[root@izwz93cxtzylaaouqzjj4sz ~]# docker search -s 3 ubuntu
Flag --stars has been deprecated, use --filter=stars=3 instead
INDEX NAME DESCRIPTION STARS OFFICIAL AUTOMATED
docker.io docker.io/ubuntu Ubuntu is a Debian-based Linux operating s...   7115 [OK]       
docker.io docker.io/dorowu/ubuntu-desktop-lxde-vnc Ubuntu with openssh-server and NoVNC 157 [OK]
docker.io docker.io/rastasheep/ubuntu-sshd Dockerized SSH service, built on top of of...   127 [OK]

星3つ以上のミラーを探す
docker pull [iptions] name[:TAG]
-a, --all-tags=false Download all tagged images in the repository

画像の引き込み

シンタックス

[root@izwz93cxtzylaaouqzjj4sz ~]# docker images -a
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/centos latest ff426288ea90 8 days ago 207.2 MB
[root@izwz93cxtzylaaouqzjj4sz ~]# docker pull ubuntu:14.04
Trying to pull repository docker.io/library/ubuntu ... 
14.04: Pulling from docker.io/library/ubuntu
556ab54f6580: Pull complete 
6ca8fd6ef32a: Pull complete 
e64a7e7a2b21: Pull complete 
09ed7c05bfd3: Pull complete 
ec1faacd6fd9: Pull complete 
Digest: sha256:f0cc0848fdadb4ae7341028a21f894df7cc2ab56e2bfe162850cbd602234d9a4
[root@izwz93cxtzylaaouqzjj4sz ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/ubuntu 14.04 02a63d8b2bfa 40 hours ago 221.7 MB
docker.io/centos latest ff426288ea90 8 days ago 207.2 MB
The above process is very slow, what is the solution?   Use the --registry-mirror option
1. Modify /etc/default/docker
2. Add DOCKER_OPTS= "--registry-mirror=http://MIRROR-ADDR" MIRROR-ADDR optional:www.daoclod.io或者阿里云镜像镜像加速
3. Restart docker's daemon service docker restart


インスタンス

ubuntu:14.04を引っ張る
 docker push NAME[:TAG]

1. Save changes to containers and use them again
2. The ability to customize images
3. Package and distribute services and their runtime environments as software


画像をプッシュする

構文

Way I:
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]] // build via container
Parameters:
    -a,-author="" Author
    -m,--message="" commit message
    -p,pause=ture Pause container during commit
Way 2:
docker build [OPTIONS] PATH |URL |- // Build via Dockerfile file
Parameters:
    --force-rm=false
    --no-cache=false
    --pull=false
    --q,--quiet=false
    --rm=true
    -t,--tag=""


インスタンス


docker は全体をコミットするのではなく、変更した部分のみをコミットします。

イメージのビルド

[root@izwz93cxtzylaaouqzjj4sz ~]# docker ps -l
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
295e5cfea561 ubuntu "/bin/bash" 2 minutes ago Exited (127) About a minute ago commit_test
[root@izwz93cxtzylaaouqzjj4sz ~]# docker commit -a 'jackzhu' -m 'hellowrold' commit_test 435999799/commit_test1
sha256:0f6cb6231b80269cffeaf71ce05236399f1d8f91f293bb699a9516935dc74392
[root@izwz93cxtzylaaouqzjj4sz ~]# docker images;
REPOSITORY TAG IMAGE ID CREATED SIZE
435999799/commit_test1 latest 0f6cb6231b80 27 seconds ago 111.5 MB
docker.io/ubuntu latest 2a4cca5ac898 43 hours ago 111.5 MB
docker.io/ubuntu 14.04 02a63d8b2bfa 43 hours ago 221.7 MB
docker.io/centos latest ff426288ea90 8 days ago 207.2 MB
docker.io/ubuntu 12.10 3e314f95dcac 3 years ago 172 MB

シンタックス

runoob@runoob:~$ cat Dockerfile 
FROM centos:6.7
MAINTAINER Fisher "[email protected]"
RUN /bin/echo 'root:123456' |chpasswd
RUN useradd runoob
RUN /bin/echo 'runoob:123456' |chpasswd
RUN /bin/echo -e "LANG=\"en_US.UTF-8\"" >/etc/default/local
EXPOSE 22
EXPOSE 80
CMD /usr/sbin/sshd -D

Each directive creates a new layer on the mirror
Each directive must be prefixed with an uppercase
FROM, specifies which mirror source to use
The RUN directive tells docker to execute commands inside the mirror


インスタンス

runoob@runoob:~$ docker build -t runoob/centos:6.7 .
Sending build context to Docker daemon 17.92 kB
Step 1 : FROM centos:6.7
---&gt; d95b5ca17cc3
Step 2 : MAINTAINER Fisher "[email protected]"
---&gt; Using cache
---&gt; 0c92299c6f03
Step 3 : RUN /bin/echo 'root:123456' |chpasswd
---&gt; Using cache
---&gt; 0397ce2fbd0a
Step 4 : RUN useradd runoob

Dockerfileを使ったイメージの構築

最初のDockerfileを作成する

runoob@runoob:~$ cat Dockerfile 
FROM centos:6.7
MAINTAINER Fisher "[email protected]"
RUN /bin/echo 'root:123456' |chpasswd
RUN useradd runoob
RUN /bin/echo 'runoob:123456' |chpasswd
RUN /bin/echo -e "LANG=\"en_US.UTF-8\"" >/etc/default/local
EXPOSE 22
EXPOSE 80
CMD /usr/sbin/sshd -D


Each directive creates a new layer on the mirror
Each directive must be prefixed with an uppercase
FROM, specifies which mirror source to use
The RUN directive tells docker to execute commands inside the mirror


次に、Dockerfile ファイルを使用して、docker build コマンドでイメージを構築します。

runoob@runoob:~$ docker build -t runoob/centos:6.7 .
Sending build context to Docker daemon 17.92 kB
Step 1 : FROM centos:6.7
---&gt; d95b5ca17cc3
Step 2 : MAINTAINER Fisher "[email protected]"
---&gt; Using cache
---&gt; 0c92299c6f03
Step 3 : RUN /bin/echo 'root:123456' |chpasswd
---&gt; Using cache
---&gt; 0397ce2fbd0a
Step 4 : RUN useradd runoob