Arahan tarik docker digunakan untuk menarik imej aplikasi, dan perintah docker pull nginx
digunakan untuk menarik versi terkini imej nginx. Berikut ialah hasil tindak balas proses penarikan imej:
# docker pull nginx Using default tag: latest latest: Pulling from library/nginx c229119241af: Pull complete 2215908dc0a2: Pull complete 08c3cb2073f1: Pull complete 18f38162c0ce: Pull complete 10e2168f148a: Pull complete c4ffe9532b5f: Pull complete Digest: sha256:2275af0f20d71b293916f1958f8497f987b8d8fd8113df54635f2a5915002bf1 Status: Downloaded newer image for nginx:latest docker.io/library/nginx:latest
Daripada di atas kita dapat melihat bahawa imej nginx ditarik dari URL docker.io
.
Gunakan perintah docker images
untuk menyemak fail imej yang dimuat turun dalam sistem pengendalian semasa.
# docker images REPOSITORY TAG IMAGE ID CREATED SIZE nginx latest 12766a6745ee 33 hours ago 142MB hello-world latest feb5d9fea6a5 6 months ago 13.3kB
REPOSITORY gudang imej dan nama imej Jika gudang imej tidak dipaparkan, lalainya ialah docker.io
TAG versi imej atau. Teg pencapaian, terbaharu mewakili versi terkini
ID IMEJ Pengecam unik imej
DICIPTA Masa imej ini dicipta
SAIZ mewakili saiz fail imej
Mulakan bekas melalui Perintah docker run
, dan nama bekas ialah nginx-zimug .
# docker run -d --name nginx-zimug -p 80:80 nginx 81bb1211144bc0991a789f860458548643c60b5459466c14d0604be9a4ccbfd7
-d
bermaksud bekas sedang berjalan di latar belakang
--name
Beri nama bekas itu
-p
Pemetaan port, dalam format 宿主机端口:容器端口
, maksud di atas adalah untuk memetakan port 80 dalam bekas ke port 80 hos untuk menyediakan perkhidmatan akses luaran. Medan terakhir ialah nama imej
Apabila penyemak imbas mengakses port 80 hos melalui protokol HTTP, nombor port boleh ditinggalkan. Keputusan capaian yang diperoleh adalah seperti berikut, menunjukkan perkhidmatan nginx kami telah berjaya dimulakan.
Anda boleh melihat bekas yang sedang berjalan melalui docker ps
, seperti yang ditunjukkan di bawah:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 81bb1211144b nginx "/docker-entrypoint.…" 11 minutes ago Up 11 minutes 0.0.0.0:80->80/tcp, :::80->80/tcp nginx-zimug
Mula-mula buat jelas Apa yang penting ialah kandungan fail dalam bekas boleh diubah suai, tetapi setelah bekas dimulakan semula, semua pengubahsuaian pada fail data dan fail konfigurasi yang ditulis pada bekas akan hilang . Oleh itu, untuk menyimpan status larian dan hasil pelaksanaan bekas, kami perlu memetakan beberapa fail data penting, fail log dan fail konfigurasi dalam bekas kepada hos.
Ambil nginx sebagai contoh nginx mempunyai tiga direktori fail penting:
容器中路径 | 宿主机中自定义映射路径 | |
---|---|---|
存储网站网页的目录 | /usr/share/nginx/html | /root/nginx/html |
nginx配置文件目录 | /etc/nginx/nginx.conf | /root/nginx/conf/nginx.conf |
日志目录 | /var/log/nginx | /root/nginx/logs |
Buat direktori fail baharu dalam mesin hos
mkdir -p /root/nginx/logs /root/nginx/html /root/nginx/conf;
Letakkan bekas Salin fail ke dalam hos
Salin fail konfigurasi nginx ke hos
docker cp nginx-zimug:/etc/nginx/nginx.conf /root/nginx/conf;
Letakkan fail html simulasi ke dalam direktori html
fail berikut disimpan sebagai index.html dan diletakkan dalam direktori /root/nginx/html
hos Kerana hubungan pemetaan, ia sebenarnya diletakkan dalam direktori /usr/share/nginx/html
bekas.
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>使用docker搭建nginx web服务</title> </head> <body> <h2>访问成功</h2> <p>厉害了!</p> </body> </html>
Parameter -v
menyatakan hubungan pemetaan antara fail hos dan fail dalam bekas, dan formatnya ialah -v 宿主机目录:容器文件系统目录
. Mulakan bekas baharu. Nama bekas ialah nginx-prod
docker run -d -p 80:80 \ --name nginx-prod \ -v /root/nginx/html:/usr/share/nginx/html \ -v /root/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \ -v /root/nginx/logs:/var/log/nginx nginx
Sebelum memulakan bekas baharu, padamkan bekas nginx-zimug lama. Jika bekas lama tidak dipadamkan, port kontena baharu akan bercanggah dengan port kontena lama. Gunakan arahan berikut untuk memadamkan bekas:
docker stop nginx-zimug; docker rm nginx-zimug;
Laksanakan perintah docker run
di atas untuk memulakan bekas baharu. Selepas permulaan, akses port 80 hos melalui penyemak imbas Hasil tindak balas adalah seperti berikut, yang membuktikan bahawa nginx menyediakan perkhidmatan web secara normal.
Pada masa yang sama, anda boleh mengubah suai konfigurasi nginx pada mesin hos dan melihat fail log masa jalan. Menukar fail konfigurasi akan menjejaskan perkhidmatan nginx yang berjalan dalam bekas kerana terdapat hubungan pemetaan antara hos dan fail konfigurasi dalam bekas.
Atas ialah kandungan terperinci Cara menggunakan docker untuk memasang perkhidmatan web yang disediakan oleh nginx. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!