Rumah > Artikel > Operasi dan penyelenggaraan > Kuasai sepenuhnya penggunaan bekas pembelajaran Docker
Artikel ini membawakan anda tentang penggunaan kontena dalam docker. Saya harap ia akan membantu anda.
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.
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:
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 402c5d3468d7Apabila 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 NAMESPada 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_wuDalam 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 402c5d3468d7Pada masa ini, anda boleh terus melaksanakan arahan dalam bekas. Jika bekas tidak lagi digunakan, anda boleh menggunakan arahan rm docker untuk memadamkannya.
docker attach 402c5d3468d7Menyediakan 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 YYDS 被打印。 除了监控容器的日志,也可以使用 docker top 命令,查看容器内的进程。 使用 docker stats 命令,可以查看容器的CPU、内存、网络I/O、存储I/O的性能和指标。 另外,docker exec 命令可以在容器内部运行进程。 以上命令可以让我们直接查看容器中的 hosts 文件的内容,如果需要运行一个后台进程,在指令后面增加 -d 参数就可以了。 容器的详细信息 使用 docker inspect 命令可以查看容器的详细信息,其结果是一个 JSON 结构,包含的信息非常丰富。可以通过 -f 或者 --format 来选定想要查看的部分。 执行以上的命令,只会在命令行展示容器的 IP 地址。 推荐学习:《docker视频教程》docker logs -f detached_mode
docker top detached_mode
docker exec detached_mode cat /etc/hosts
docker inspect --format '{{ .NetworkSettings.IPAddress }}' detached_mode
Atas ialah kandungan terperinci Kuasai sepenuhnya penggunaan bekas pembelajaran Docker. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!