Prasyarat
1 Docker telah dipasang pada komputer dan pelayan tempatan Anda boleh memuat turunnya di Google
2 hab, daftar untuk pintu penghantaran:
3 Anda perlu biasa dengan docker dan memahami beberapa arahan dalam dockerfile
Gunakan dockerfile untuk membuat imej
Jika mesin ini Terdapat projek yang dipanggil web
Buat fail docker baharu dalam direktori akar web dan tulis kandungan berikut
from nginx:1.13.6-alpine label maintainer="lilywang <lilywang.cd@gmail.com>" arg tz="asia/shanghai" env tz ${tz} run apk upgrade --update \ && apk add bash tzdata \ && ln -sf /usr/share/zoneinfo/${tz} /etc/localtime \ && echo ${tz} > /etc/timezone \ && rm -rf /var/cache/apk/* copy dist /usr/share/nginx/html cmd ["nginx", "-g", "daemon off;"]
Pada masa ini, struktur fail dalam web ialah:
. |____dockerfile |____dist // 为项目打包后的文件 | |____index.html
Seterusnya, masukkan direktori web dalam bash
cd web docker build -t lilywang711/web .
Jika anda melihat perkara berikut dalam maklumat cetakan, ini bermakna imej telah berjaya dibina
berjaya membina 4c050212ce0d
berjaya menandakan lilywang711/web: terkini
Anda juga boleh memasukkan docker images
untuk melihat senarai imej semasa
Kemudian masukkan arahan docker push lilywang711/web
untuk memuat naik imej yang baru anda bina ke hab docker untuk memudahkan menunggu Kami akan menarik imej pada pelayan kemudian
Jika terdapat beberapa projek yang perlu digunakan, hanya ulangi langkah di atas dan bina seberapa banyak imej. kerana terdapat projek
Penyerahan sisi pelayan
Log masuk Ssh ke pelayan, buat folder nginx baharu dalam direktori pengguna semasa (saya adalah direktori akar), dan buat nginx.conf baharu di dalamnya
Tulis dalam nginx.conf Masukkan kandungan berikut
user nginx; worker_processes 2; error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid; events { use epoll; worker_connections 2048; } http { include /etc/nginx/mime.types; # include /etc/nginx/conf.d/*.conf; root /usr/share/nginx/html; index index.html index.htm; server { listen 80; server_name a.yourdomain.cn; location / { } } server { listen 80; server_name b.yourdomain.cn; location / { proxy_pass http://your_vps_ip:81; } } server { listen 80; server_name localhost; location / { } } }
Seterusnya
Mulakan docker systemctl start docker
Tarik dua imej anda baru sahaja membuat dan memuat naik
docker pull lilywang711/web
docker pull lilywang711/web1
Masukkan arahan berikut untuk memulakan bekas
docker run -itd --name web -p 80:80 -v /root/nginx/nginx.conf:/etc/nginx/nginx.conf lilywang711/web // -i 交互模式运行容器, -t 为容器分配一个伪终端,-d 后台运行容器,可直接连写 -itd // --name 是给该容器起个叫web的名字,方便辨识 // -p 是绑定端口 本机端口80:容器端口80 // -v 声明volume,意思是将容器中的/etc/nginx/nginx.conf 挂载到 宿主机里的/root/nginx/nginx.conf,以后配置nginx只需要修改/root/nginx/nginx.conf就行了
Begitu juga dengan yang lain imej lilywang711/web1, cuma tukar port dan nama
docker run -itd --name web1 -p 81:80 -v /root/nginx/nginx.conf:/etc/nginx/nginx.conf lilywang711/web1
Pada ketika ini masukkan docker ps
dan anda dapat melihat bahawa kedua-dua bekas sudah berjalan
Projek dockerized dan penempatan pada nginx telah selesai
Masukkan http://a.yourdomain.cn dan http://b.yourdomain.cn dalam penyemak imbas untuk melihat kesan, yang sepadan dengan projek web dan web1 dalam komputer tempatan masing-masing
Atas ialah kandungan terperinci Bagaimana docker nginx menggunakan berbilang projek. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!