Rumah >Operasi dan penyelenggaraan >Docker >Kuasai sepenuhnya penggunaan bekas pembelajaran Docker

Kuasai sepenuhnya penggunaan bekas pembelajaran Docker

WBOY
WBOYke hadapan
2022-01-17 18:46:342306semak imbas

Artikel ini membawakan anda tentang penggunaan kontena dalam docker. Saya harap ia akan membantu anda.

Kuasai sepenuhnya penggunaan bekas pembelajaran Docker

Jalankan bekas

Jika anda ingin mencari imej sedia ada, anda boleh mencarinya di Carian awam di Docker Hub dan anda boleh menemui pengenalan dan penggunaannya di sini, sama seperti mencari projek sumber terbuka di GitHub.

Kuasai sepenuhnya penggunaan bekas pembelajaran Docker

Jika anda menggunakan Docker Hub buat kali pertama, anda boleh mendaftar akaun dahulu dan masukkan ubuntu dalam kotak carian teratas Hasil pertama yang ditemui ialah imej ubuntu rasmi. klik untuk melihat halaman dalam gambar di atas.

Halaman ini mempunyai beberapa maklumat asas dan pengenalan penggunaan imej Arahan docker pull ubuntu di sebelah kanan digunakan untuk menarik imej secara setempat. Seperti yang dinyatakan dalam artikel sebelumnya, apabila kita membuat instantiat bekas, jika Docker tidak dapat mencari imej yang ditentukan secara setempat, ia akan secara automatik menariknya, jadi kita boleh menjalankannya secara langsung secara setempat:

docker run -i -t ubuntu /bin/bash

Arahan ini mempunyai beberapa lagi parameter daripada contoh terakhir Mari kita jelaskan di bawah:

  • -saya boleh memastikan STDIN dihidupkan dalam bekas

  • -t akan peruntukkan terminal pseudo-TTY pada bekas

  • ubuntu ialah nama imej, yang bersamaan dengan hello-world dalam contoh sebelumnya

  • /bin/bash ialah arahan yang akan dilaksanakan dalam bekas selepas permulaan

Parameter -i dan -t membolehkan kami berinteraksi dengan bekas selepas ia dijalankan. Apabila bekas dibuat, Docker akan melaksanakan arahan /bin/bash dalam bekas Oleh itu, selepas bekas dijalankan, terminal kami akan dilampirkan pada bekas:

Kuasai sepenuhnya penggunaan bekas pembelajaran Docker

Pada masa ini, Anda boleh membuka terminal dan masukkan arahan ps docker untuk melihat bekas yang telah dimulakan. masa, dan status , nama. Nama reverent_wu di sini dijana secara automatik oleh Docker Jika anda perlu menentukan nama semasa membuat bekas, anda boleh menggunakan --name untuk menamakan bekas.

CONTAINER ID   IMAGE     COMMAND       CREATED       STATUS       PORTS     NAMES
402c5d3468d7   ubuntu    "/bin/bash"   4 hours ago   Up 4 hours             reverent_wu

Di dalam bekas

Dalam keadaan semasa, kami boleh melaksanakan sebarang arahan yang disokong oleh sistem ubuntu dalam terminal yang dilampirkan pada bekas . Sebagai contoh, masukkan arahan nama hos dan ketahui bahawa nama hos bekas ialah ID bekasnya. Seterusnya, anda boleh melihat fail /etc/hosts:

Anda juga boleh cuba melihat sendiri proses dalam bekas, atau menggunakan apt-get to pasang pakej.

Akhir sekali, anda boleh memasukkan arahan keluar untuk keluar dari bekas dan kembali ke gesaan arahan hos. Ambil perhatian bahawa apabila anda melaksanakan docker ps pada masa ini, anda akan mendapati bahawa bekas ubuntu yang baru anda buat tidak lagi dalam senarai bekas.
root@402c5d3468d7:/# cat /etc/hosts
127.0.0.1        localhost
::1        localhost ip6-localhost ip6-loopback
fe00::0        ip6-localnet
ff00::0        ip6-mcastprefix
ff02::1        ip6-allnodes
ff02::2        ip6-allrouters
172.17.0.2        402c5d3468d7

Apabila kami keluar, kontena berhenti berjalan. Walau bagaimanapun, bekas itu belum dipadamkan Anda boleh menggunakan arahan ps -a docker untuk melihat semua bekas yang dibuat, sama ada bekas itu dimulakan atau tidak:

CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
Pada masa ini, statusnya berubah kepada Keluar. (0) 2 minit yang lalu , menunjukkan bahawa ia telah dilancarkan 2 minit yang lalu, dan kod status keluar ialah 0, menunjukkan jalan keluar biasa.

Kami boleh memulakan semula bekas ini dengan arahan berikut:
CONTAINER ID   IMAGE     COMMAND       CREATED       STATUS                     PORTS     NAMES
402c5d3468d7   ubuntu    "/bin/bash"   4 hours ago   Exited (0) 2 minutes ago             reverent_wu

Dalam arahan ini, mula docker diikuti dengan ID bekas, atau nama bekas juga boleh digunakan . Selepas perlaksanaan berjaya, anda boleh melihat bekas berada dalam keadaan permulaan melalui arahan ps docker Selepas bekas dimulakan semula melalui arahan start docker, parameter yang ditentukan oleh arahan docker run akan digunakan, iaitu selepas. permulaan, /bin/bash akan dijalankan untuk memulakan shell , tetapi kami belum memasuki baris arahan bekas. Anda boleh masuk semula melalui arahan attach docker:

docker start 402c5d3468d7
Pada masa ini, anda boleh terus melaksanakan arahan dalam bekas.

Jika bekas tidak lagi digunakan, anda boleh menggunakan arahan rm docker untuk memadamkannya.
docker attach 402c5d3468d7

Menyediakan perkhidmatan berterusan
docker rm 402c5d3468d7

Lebih kerap, kami menggunakan bekas untuk menjalankan aplikasi dan perkhidmatan dan berharap ia akan Latar belakang terus menyediakan perkhidmatan Pada masa ini, anda perlu menjalankan bekas dalam mod terpisah (atau mod daemon). Cuma tambah parameter -d selepas docker run untuk membiarkan bekas berjalan di latar belakang. Seterusnya, kami menjalankan bekas sekali lagi melalui arahan berikut:

Kali ini, kami memanggil bekas detached_mode, pass -d untuk membiarkannya berjalan dalam mod tertanggal, dan Dengan melaksanakan skrip, cetak barisan Docker YYDS setiap 1 saat.

Oleh kerana ia berjalan dalam mod terpisah, kami tidak dapat melihat kandungan bercetak pada baris arahan selepas permulaan. Tetapi anda boleh melihat bekas berjalan melalui arahan ps docker.
docker run --name detached_mode -d ubuntu /bin/sh -c "while true; do echo Docker YYDS; sleep 1; done"

Jika anda mahu ia berhenti berjalan, anda boleh menggunakan arahan henti dok.

Anda juga boleh memulakannya semula melalui arahan mula docker, atau anda boleh memulakan semula bekas yang sedang berjalan melalui mulakan semula docker.

docker stop detached_mode

Status berjalan kontena

在 detached_mode 容器运行的时候,可以通过 docker logs 命令获取容器的日志。也可以增加 -f 来持续监控日志,类似于 tail -f 命令。

docker logs -f detached_mode

此时就可以看到一直有 Docker YYDS 被打印。

除了监控容器的日志,也可以使用 docker top 命令,查看容器内的进程。

docker top detached_mode

Kuasai sepenuhnya penggunaan bekas pembelajaran Docker

使用 docker stats 命令,可以查看容器的CPU、内存、网络I/O、存储I/O的性能和指标。

Kuasai sepenuhnya penggunaan bekas pembelajaran Docker

另外,docker exec 命令可以在容器内部运行进程。

docker exec detached_mode cat /etc/hosts

以上命令可以让我们直接查看容器中的 hosts 文件的内容,如果需要运行一个后台进程,在指令后面增加 -d 参数就可以了。

容器的详细信息

使用 docker inspect 命令可以查看容器的详细信息,其结果是一个 JSON 结构,包含的信息非常丰富。可以通过 -f 或者 --format 来选定想要查看的部分。

docker inspect --format '{{ .NetworkSettings.IPAddress }}' detached_mode

执行以上的命令,只会在命令行展示容器的 IP 地址。

推荐学习:《docker视频教程

Atas ialah kandungan terperinci Kuasai sepenuhnya penggunaan bekas pembelajaran Docker. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:juejin.im. Jika ada pelanggaran, sila hubungi admin@php.cn Padam