Jadual Kandungan
Pengenalan kepada pembinaan imej
docker commit untuk membina imej
Fail Docker untuk membina imej
First Dockerfike
  10.CMD
  11.ENTRYPOINT
Dockerfile演示
Rumah Operasi dan penyelenggaraan Docker Terdapat beberapa cara untuk mencipta imej Docker

Terdapat beberapa cara untuk mencipta imej Docker

Feb 23, 2022 pm 06:22 PM
docker cermin

Terdapat dua cara untuk mencipta imej Docker: 1. Gunakan arahan "docker commit" untuk membina imej secara manual berdasarkan bekas sedia ada 2. Gunakan Dockerfile untuk membina imej secara automatik baca arahan dalam fail binaan Dockerfile secara automatik.

Terdapat beberapa cara untuk mencipta imej Docker

Persekitaran pengendalian tutorial ini: sistem linux5.9.8, versi docker-1.13.1, komputer Dell G3.

Kadangkala imej yang dimuat turun dari gudang imej Docker tidak dapat memenuhi keperluan Kami boleh membina imej sendiri berdasarkan imej asas.

Pengenalan kepada pembinaan imej

Dalam apa. situasi Jadi kita perlu membina imej itu sendiri?

(1) Apabila kita tidak dapat mencari imej sedia ada, seperti aplikasi yang dibangunkan oleh kita sendiri

(2) Kita perlu menambah fungsi tertentu pada imej

binaan docker Terdapat dua cara untuk imej: docker commit arahan dan Dockerfile bina fail

docker commit untuk membina imej

Membina imej berdasarkan bekas sedia ada terutamanya menggunakan docker commit arahan untuk membina imej baharu.

Terdapat tiga langkah utama dalam binaan dockercommit:

  • Jalankan bekas
  • Ubah suai bekas
  • Simpan bekas sebagai imej baharu

Sebagai contoh, pasang editor vim dalam imej centos dan simpan sebagai imej baharu

(1) Jalankan bekas

[root@ken1 docker]# docker run -it centos
Unable to find image 'centos:latest' locally
latest: Pulling from library/centos
a02a4930cb5d: Pull complete 
Digest: sha256:184e5f35598e333bfa7de10d8fb1cebb5ee4df5bc0f970bf2b1e7c7345136426
Status: Downloaded newer image for centos:latest
Salin selepas log masuk

(2 ) Pasang editor vim

Editor vim mengesahkan bahawa ia tidak dipasang

[root@69f501e858a6 /]# vim
bash: vim: command not found
Salin selepas log masuk

Pasangkannya

[root@69f501e858a6 /]# yum install vim -y
Salin selepas log masuk

(3) Simpan sebagai imej baharu

Semak dahulu imej yang sedang dijalankan

[root@ken1 ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
69f501e858a6        centos              "/bin/bash"         2 minutes ago       Up 2 minutes                            quizzical_torvalds
Salin selepas log masuk

Gunakan komit untuk menyimpan sebagai imej baharu

[root@ken1 ~]# docker commit 69f501e858a6 centos-vim
sha256:42083b89a179368bc29a8f40d14f8824990183c8e4b28fd84411d440c26342e5
Salin selepas log masuk

69f501e858a6 ialah ID bekas yang sedang berjalan, anda juga boleh menggunakan nama di bawah nama
centos-vim ialah nama imej baharu

Semak sama ada terdapat imej centos-vim

Mulakan semula imej baharu dan sahkan sama ada ia boleh ditemui menggunakan editor vim

Imej baharu boleh menggunakan editor vim

[root@ken1 ~]# docker run -it centos-vim 
[root@61d090898bad /]# vim
[root@61d090898bad /]# vim test
Salin selepas log masuk

Di atas menunjukkan cara menggunakan commit untuk mencipta imej baharu , tetapi docker tidak mengesyorkan menggunakan kaedah ini untuk mencipta imej atas sebab-sebab berikut:

  • Ini adalah cara manual untuk mencipta imej, bekas itu salah, dan ia tidak cekap dan lemah dalam kebolehulangan
  • Lebih penting. Pengguna tidak tahu bagaimana imej itu dicipta. Adakah terdapat sebarang program berniat jahat di dalamnya?

Fail Docker untuk membina imej

Fail Docker ialah fail yang terdiri daripada satu set arahan program membaca Dockerfile Arahan dalam akhirnya menjana imej.

First Dockerfike

Langkah 1: Buat direktori baharu

[root@ken1 ~]# mkdir /test
Salin selepas log masuk

Langkah 2: Tulis Dockerfile

Nama Dockerfile , dan D pertama perlu menggunakan huruf besar

[root@ken1 ~]# cat Dockerfile
FROM centos
RUN yum install vim -y
Salin selepas log masuk

FROMcentos bermaksud menggunakan imej asas centos

RUN bermaksud memasang editor vim pada centos

Langkah 3: Bina Cermin

[root@ken1 ~]# docker build -t centos-vim2 .
Salin selepas log masuk

-t diikuti dengan menyatakan nama tag (tag) bagi imej baharu

Titik terakhir menunjukkan bahawa konteks docker ialah direktori semasa. Docker akan mencari fail Dockerfile daripada konteks binaan secara lalai Kami juga boleh menentukan lokasi Dockerfile melalui parameter -f

Langkah 4: Lihat imej

<.>

Lihat struktur hierarki imej

sejarah docker akan memaparkan sejarah pembinaan imej, iaitu proses pelaksanaan fail Docker .

Arahan biasa fail Dcoker

 1.DARI

Nyatakan imej asas

 2. PENYELENGGARA

Tetapkan pengarang imej. Boleh jadi sebarang aksara

 3.COPY

Salin fail daripada konteks binaan ke imej

COPY menyokong dua format: COPY src dest dan COPY ["src", "dest"]

Nota: src hanya boleh membrek fail atau direktori dalam konteks binaan, iaitu, dalam direktori yang sama dengan Dockerfile

 4.ADD

dan COPY Begitu juga, salin fail dari konteks binaan ke imej.

Perbezaannya ialah jika src ialah fail arkib (tar, zip, tgz, xz), fail tersebut akan dipindahkan secara automatik ke dest

 5.ENV

Set persekitaran Pembolehubah dan pembolehubah persekitaran boleh digunakan dengan arahan seterusnya, contohnya:

ENV name ken RUN echo $name

 6.EXPOSE

Proses dalam bekas yang ditentukan akan memantau Port tertentu, Docker boleh mendedahkan port

 7.VOLUME

mengisytiharkan fail atau direktori sebagai volum

 8.WORKDIR

ialah arahan RUN ,ENTRYPINT,ADD,COPY seterusnya tetapkan direktori kerja semasa dalam imej

 9.RUN

Jalankan arahan yang ditentukan dalam bekas

  10.CMD

容器启动时运行指定的命令

dockerfile中可以多个CMD指令,但是只要最后一个生效。CMD可以被docker run之后的参数替换

  11.ENTRYPOINT

设置容器启东市的命令

dockerfile中可以有多个ENTRYPOINT,但是只有最后一个生效。

CMD或者docker run之后的参数会被当做参数传递给ENTERYPOINT.

Dockerfile演示

下面演示一个比较全面的dockerfile

[root@ken1 test]# cat Dockerfile 
#my Dockerfile
FROM busybox
MAINTAINER ken
WORKDIR /ken
RUN touch test
COPY ["ken1","."]
ADD ["wordpress.tar.gz","."]
ENV name "ken"
Salin selepas log masuk

注意:Dockerfile支持以#开头的注释

构建镜像

[root@ken1 test]# docker build -t myimage .
Sending build context to Docker daemon  4.281MB
Step 1/7 : FROM busybox
 ---> 3a093384ac30
Step 2/7 : MAINTAINER ken
 ---> Running in 2a73a83507ce
Removing intermediate container 2a73a83507ce
 ---> 8c3df9b3d823
Step 3/7 : WORKDIR /ken
 ---> Running in 31c6f9fe2195
Removing intermediate container 31c6f9fe2195
 ---> a458cf986072
Step 4/7 : RUN touch test
 ---> Running in e1b08ebd363c
Removing intermediate container e1b08ebd363c
 ---> 41601920009a
Step 5/7 : COPY ["ken1","."]
 ---> 2ebfa0933fca
Step 6/7 : ADD ["wordpress.tar.gz","."]
 ---> d0ad29d3aa34
Step 7/7 : ENV name "ken"
 ---> Running in fceae6e20e63
Removing intermediate container fceae6e20e63
 ---> 7efe0600e48f
Successfully built 7efe0600e48f
Successfully tagged myimage:latest
Salin selepas log masuk

查看镜像

运行该镜像

[root@ken1 test]# docker run -it myimage
/ken # ls
ken1       test       wordpress
/ken # echo $name
ken
Salin selepas log masuk
  •  可以发现当前工作目录为/ken,且自动创建
  • ken1是我们从docker context目录中复制过去的
  • test是使用touch创建的
  • wordpres压缩包已经被自动解压
  • $name为变量值为ken

推荐学习:《docker视频教程

Atas ialah kandungan terperinci Terdapat beberapa cara untuk mencipta imej Docker. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Cara membuat cermin di Docker Cara membuat cermin di Docker Apr 15, 2025 am 11:27 AM

Langkah -langkah untuk membuat imej Docker: Tulis Dockerfile yang mengandungi arahan membina. Bina imej di terminal, menggunakan arahan membina Docker. Tag imej dan tetapkan nama dan tag menggunakan arahan tag docker.

Cara mengemas kini imej Docker Cara mengemas kini imej Docker Apr 15, 2025 pm 12:03 PM

Langkah -langkah untuk mengemas kini imej Docker adalah seperti berikut: Tarik tag imej terkini imej baru memadam imej lama untuk tag tertentu (pilihan) mulakan semula bekas (jika diperlukan)

Cara menggunakan desktop docker Cara menggunakan desktop docker Apr 15, 2025 am 11:45 AM

Bagaimana cara menggunakan desktop Docker? Docktop Docktop adalah alat untuk menjalankan bekas Docker pada mesin tempatan. Langkah -langkah untuk digunakan termasuk: 1. Pasang desktop Docker; 2. Mulakan desktop Docker; 3. Buat imej Docker (menggunakan Dockerfile); 4. Membina imej Docker (menggunakan Docker Build); 5. Jalankan bekas Docker (menggunakan Docker Run).

Cara Menyelamatkan Gambar Docker Cara Menyelamatkan Gambar Docker Apr 15, 2025 am 11:54 AM

Untuk menyimpan imej di Docker, anda boleh menggunakan arahan Docker Commit untuk membuat imej baru, yang mengandungi keadaan semasa bekas yang ditentukan, Sintaks: Docker Commit [Options] Nama Imej Container ID. Untuk menyimpan imej ke repositori, anda boleh menggunakan arahan PUSH Docker, Sintaks: Docker Push Nama Imej [: TAG]. Untuk mengimport imej yang disimpan, anda boleh menggunakan arahan tarik docker, sintaks: docker tarik nama imej [: tag].

Cara Membaca Versi Docker Cara Membaca Versi Docker Apr 15, 2025 am 11:51 AM

Untuk mendapatkan versi Docker, anda boleh melakukan langkah -langkah berikut: Jalankan arahan Docker "Docker -version" untuk melihat versi klien dan pelayan. Untuk MAC atau Windows, anda juga boleh melihat maklumat versi melalui tab versi Docktop GUI atau menu desktop Docker.

Cara menyalin fail di Docker ke luar Cara menyalin fail di Docker ke luar Apr 15, 2025 pm 12:12 PM

Kaedah untuk menyalin fail ke tuan rumah luaran di Docker: Gunakan arahan CP Docker: Jalankan Docker CP [Options] & lt; Container Path & GT; & lt; PATH HOST & GT;. Menggunakan jumlah data: Buat direktori pada tuan rumah, dan gunakan parameter -V parameter untuk memasang direktori ke dalam bekas apabila membuat bekas untuk mencapai penyegerakan fail bidirectional.

Cara memeriksa nama bekas Docker Cara memeriksa nama bekas Docker Apr 15, 2025 pm 12:21 PM

Anda boleh menanyakan nama kontena Docker dengan mengikuti langkah -langkah: Senaraikan semua bekas (Docker PS). Tapis senarai kontena (menggunakan arahan grep). Mendapat nama kontena (terletak di lajur "Nama").

Cara keluar dari bekas dengan Docker Cara keluar dari bekas dengan Docker Apr 15, 2025 pm 12:15 PM

Empat cara untuk keluar dari Docker Container: Gunakan Ctrl D di terminal kontena masukkan perintah keluar di terminal kontena Gunakan Docker Stop & lt; container_name & gt; Perintah Gunakan Docker Kill & lt; container_name & gt; Perintah di terminal tuan rumah (keluar kuasa)

See all articles