Penggunaan kontena docker



Klien docker

Klien docker adalah sangat mudah. ​​Kami boleh terus memasukkan arahan docker untuk melihat semua pilihan arahan klien Docker.

php@php:~# docker

docker27.png

Anda boleh menggunakan arahan docker command --help untuk mendapatkan pemahaman yang lebih mendalam tentang cara menggunakan arahan Docker yang ditentukan.

Sebagai contoh, kami ingin melihat penggunaan khusus arahan statistik buruh pelabuhan:

php@php:~# docker stats --help

docker28.png


Jalankan web aplikasi

Kontena yang kami jalankan tadi tiada kegunaan khas.

Seterusnya mari cuba membina aplikasi web menggunakan docker.

Kami akan menjalankan aplikasi Flask Python dalam bekas docker untuk menjalankan aplikasi web.

php@php:~# docker run -d -P training/webapp python app.py

docker29.png

Perihalan parameter:

  • -d:Biarkan bekas berjalan di latar belakang.

  • -P:Petakan port rangkaian yang digunakan di dalam bekas kepada hos yang kami gunakan.


Lihat bekas aplikasi WEB

Gunakan docker ps untuk melihat bekas kami yang sedang berjalan

php@php:~$ docker ps

docker30.png

Di sana adalah lebih banyak maklumat pelabuhan di sini.

PORTS
0.0.0.0:32769->5000/tcp

Docker membuka port 5000 (port Python Flask lalai) dipetakan ke port 32769 hos.

Pada masa ini kami boleh mengakses aplikasi WEB melalui penyemak imbas

docker31.png

Kami juga boleh menentukan bendera -p untuk mengikat port yang ditentukan.

php@php:~$ docker run -d -p 5000:5000 training/webapp python app.py

docker psLihat bekas yang sedang berjalan

docker32.png

Port 5000 di dalam kontena dipetakan ke port 5000 pada hos tempatan kami.


Pintasan ke port rangkaian

Anda boleh melihat pemetaan port bekas melalui arahan ps docker juga menyediakan pintasan lain: port docker untuk melihat yang ditentukan (ID atau nama) Port tertentu bekas dipetakan ke nombor port hos.

ID kontena aplikasi web yang kami buat di atas ialah: 7a38a1ad55c6 dan namanya: determined_swanson

Saya boleh menggunakan port docker 7a38a1ad55c6 atau port docker determined_swanson untuk melihat pemetaan port kontena<🎜

php@php:~$ docker port 7a38a1ad55c6
5000/tcp -> 0.0.0.0:5000
php@php:~$ docker port determined_swanson
5000/tcp -> 0.0.0.0:5000


Lihat log aplikasi WEB

log docker [ID atau nama] Anda boleh melihat output standard di dalam bekas.

php@php:~$ docker logs -f 7a38a1ad55c6
 * Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)
192.168.239.1 - - [09/May/2016 16:30:37] "GET / HTTP/1.1" 200 -
192.168.239.1 - - [09/May/2016 16:30:37] "GET /favicon.ico HTTP/1.1" 404 -

-f:biarkan log dokcer keluarkan keluaran standard di dalam bekas sama seperti menggunakan ekor -f.

Dari atas, kita dapat melihat bahawa aplikasi menggunakan port 5000 dan boleh melihat log akses aplikasi.


Lihat proses bekas aplikasi WEB

Kami juga boleh menggunakan docker top untuk melihat proses yang berjalan di dalam bekas

php@php:~$ docker top determined_swanson

docker33.png


Periksa aplikasi WEB

Gunakan pemeriksaan docker untuk melihat maklumat asas Docker. Ia mengembalikan fail JSON yang merekodkan konfigurasi dan maklumat status bekas Docker.

php@php:~$ docker inspect determined_swanson
[
    {
        "Id": "7a38a1ad55c6914b360b565819604733db751d86afd2575236a70a2519527361",
        "Created": "2016-05-09T16:20:45.427996598Z",
        "Path": "python",
        "Args": [
            "app.py"
        ],
        "State": {
            "Status": "running",
......

Hentikan bekas aplikasi WEB

php@php:~$ docker stop determined_swanson   
determined_swanson

Mulakan semula bekas aplikasi WEB

Kita boleh menggunakan perintah docker start untuk memulakan bekas yang dihentikan.

php@php:~$ docker start determined_swanson
determined_swanson

docker ps -l untuk melihat bekas yang sedang berjalan

docker34.png

Menjalankan bekas, kita boleh menggunakan perintah restart dok untuk memulakan semula


Alih keluar bekas aplikasi WEB

Kita boleh menggunakan arahan docker rm untuk memadam bekas yang tidak diperlukan

php@php:~$ docker rm determined_swanson  
determined_swanson

Apabila memadamkan bekas, bekas mesti dihentikan, jika tidak ralat berikut akan dilaporkan

rreeee