Penggunaan imej Docker


Apabila menjalankan bekas, jika imej yang digunakan tidak wujud secara setempat, docker akan memuat turunnya secara automatik daripada gudang imej docker Secara lalai adalah untuk memuat turun daripada sumber imej awam Docker Hub.

Mari belajar di bawah:

  • 1 Urus dan gunakan imej hos Docker tempatan

  • 2


Senaraikan senarai imej

Kita boleh menggunakan

imej docker untuk menyenaraikan imej pada hos setempat.

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

Penjelasan setiap pilihan:

  • REPOSTITORY: Mewakili sumber gudang imej

  • TAG: Tag imej

  • ID IMEJ: ID Imej

  • DICIPTA:Masa penciptaan imej

  • SAIZ: Saiz imej

Sumber gudang yang sama boleh mempunyai berbilang TAG, mewakili ini Terdapat versi berbeza sumber gudang Contohnya, dalam sumber gudang ubuntu, terdapat banyak versi berbeza seperti 15.10, 14.04, dll. Kami menggunakan REPOSTITORY:TAG untuk mentakrifkan imej yang berbeza.

Jadi, jika kita ingin menggunakan imej sistem ubuntu versi 15.10 untuk menjalankan bekas, arahannya adalah seperti berikut:

php@php:~$ docker run -t -i ubuntu:15.10 /bin/bash 
root@d77ccb2e5cca:/#

Jika kita mahu menggunakan imej sistem ubuntu versi 14.04 untuk menjalankan bekas, arahan Seperti berikut:

php@php:~$ docker run -t -i ubuntu:14.04 /bin/bash 
root@39e968165990:/#

Jika anda tidak menentukan label versi imej, contohnya, jika anda hanya menggunakan ubuntu, docker akan menggunakan ubuntu:latest image secara lalai.


Dapatkan imej baharu

Apabila kami menggunakan imej yang tidak wujud pada hos tempatan, Docker akan memuat turun imej tersebut secara automatik. Jika kita ingin memuat turun imej ini terlebih dahulu, kita boleh menggunakan arahan tarik docker untuk memuat turunnya.

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

Selepas muat turun selesai, kami boleh terus menggunakan imej ini untuk menjalankan bekas.


Cari imej

Kami boleh mencari imej dari tapak web Docker Hub ialah:

https://hub.docker.com/<. 🎜>Kami juga Anda boleh menggunakan arahan carian docker untuk mencari imej. Sebagai contoh, kami memerlukan cermin httpd sebagai perkhidmatan web kami. Kita boleh mencari httpd melalui arahan carian docker untuk mencari imej yang sesuai dengan kita.
php@php:~$  docker search httpd

docker35.png

NAMA:

Nama sumber gudang imej

PENERANGAN:

Penerangan imej

RASMI:

Sama ada docker dikeluarkan secara rasmi

Seret imej

Kami memutuskan untuk menggunakan versi rasmi imej httpd dalam gambar di atas, gunakan arahan docker pull untuk Muat turun imej.

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

Selepas muat turun selesai, kita boleh menggunakan imej ini.

php@php:~$ docker run httpd

Buat imej

Apabila imej yang kami muat turun dari gudang imej docker tidak memenuhi keperluan kami, kami boleh menukar imej itu dalam dua cara berikut.

    1. Kemas kini imej daripada bekas yang telah dibuat dan serahkan imej
  • 2. Gunakan arahan Dockerfile untuk mencipta imej baharu


Kemas kini imej

Sebelum mengemas kini imej, kita perlu menggunakan imej untuk mencipta bekas.
php@php:~$ docker run -t -i ubuntu:15.10 /bin/bash
root@e218edb10161:/#
menggunakan arahan kemas kini apt-get dalam bekas yang sedang berjalan untuk mengemas kini.

Selepas menyelesaikan operasi, masukkan arahan keluar untuk keluar dari bekas.

Bekas dengan ID e218edb10161 pada masa ini adalah bekas yang telah diubah mengikut keperluan kita. Kami boleh menyerahkan salinan kontena melalui perintah docker commit.

php@php:~$ docker commit -m="has update" -a="php" e218edb10161 php/ubuntu:v2
sha256:70bf1840fd7c0d2d8ef0a42a817eb29f854c1af8f7c59fc03ac7bdee9545aff8

Perihalan setiap parameter:

  • -m:Maklumat perihalan yang diserahkan

  • -a:Nyatakan pengarang imej

  • e218edb10161: ID Bekas

  • php/ubuntu :v2:Nyatakan nama imej sasaran yang akan dibuat

Kita boleh menggunakan perintah imej docker untuk melihat imej baharu kamiphp/ubuntu : v2:

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

Mulakan bekas menggunakan imej baharu kamiphp/ubuntu

php@php:~$ docker run -t -i php/ubuntu:v2 /bin/bash                            
root@1a9fbdeb5da3:/#

Bina imej

Kami menggunakan Perintah binaan docker untuk mencipta imej baharu dari awal. Untuk melakukan ini, kita perlu mencipta Dockerfile yang mengandungi satu set arahan untuk memberitahu Docker cara membina imej kita.

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

Setiap arahan akan mencipta lapisan baharu pada imej, dan awalan setiap arahan mestilah huruf besar.

FROM pertama menentukan sumber imej yang hendak digunakan

Arahan RUN memberitahu docker untuk melaksanakan arahan dalam imej dan memasang apa. . .

Kemudian, kami menggunakan fail Dockerfile untuk membina imej melalui arahan binaan docker.

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
......

Perihalan parameter:

  • -t: Tentukan nama imej sasaran yang akan dibuat

  • .: Direktori di mana fail Dockerfile terletak Anda boleh menentukan laluan mutlak fail Docker

Gunakan imej docker untuk menyemak sama ada imej yang dibuat sudah. wujud dalam senarai. ID imej ialah 860c279d2fec

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

Kita boleh menggunakan imej baharu untuk mencipta bekas

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)

Seperti yang anda lihat dari atas, imej baharu sudah mengandungi php pengguna kami cipta


Tetapkan tag imej

Kita boleh menggunakan arahan tag docker untuk menambah tag baharu pada imej.

php@php:~$ docker tag 860c279d2fec php/centos:dev

ID imej teg buruh pelabuhan, berikut ialah 860c279d2fec, nama pengguna, nama sumber imej (nama repositori) dan nama teg baharu (teg).

Menggunakan arahan imej docker, anda boleh melihat bahawa imej dengan ID 860c279d2fec mempunyai satu lagi label.

rreeee