Jadual Kandungan
Tujuan fail pemalam:
Terdapat dua cara untuk menjalankan bekas:
Anggap bahawa struktur laluan pembungkusan imej adalah seperti berikut:
Kompilasi imej baharu melalui arahan berikut:
mod larian docker
mod docker-compose
Rumah Operasi dan penyelenggaraan Nginx Apakah kaedah untuk memasang fail pemalam nginx di bawah Docker?

Apakah kaedah untuk memasang fail pemalam nginx di bawah Docker?

May 13, 2023 pm 03:04 PM
docker nginx

Tujuan fail pemalam:

  • Fail tidak terikat dengan fail imej docker Ia boleh diubah suai dan bekas boleh dimulakan semula digunakan dan tidak akan dipulihkan oleh imej

  • Fail seperti log dan maklumat lain yang direkodkan semasa menjalankan bekas boleh disimpan secara automatik pada storan luaran dan tidak akan hilang akibat dimulakan semula bekas

Terdapat dua cara untuk menjalankan bekas:

  • perintah larian docker

  • arahan docker-compose

Kaedah arahan docker run menggunakan parameter -v untuk melekapkan direktori hos luaran ke laluan dalam bekas, tentukannya melalui berbilang parameter -v, dan hanya laluan mutlak boleh digunakan; perintah docker-compose menggunakan Kaedah perkhidmatan adalah mudah untuk menerangkan dengan tepat, perkhidmatan boleh mengandungi berbilang bekas, dan konfigurasi pemasangan laluan luaran juga dikonfigurasikan melalui. Parameter -v. Kelebihannya ialah anda boleh menggunakan laluan relatif, yang tentunya relatif kepada laluan fail docker-compose.yml . Kelebihan lain ialah arahan untuk docker-compose untuk memulakan bekas adalah agak mudah.

Anggap bahawa struktur laluan pembungkusan imej adalah seperti berikut:

├── build.sh
├── docker-compose.yml
├── Dockerfile
├── mynginx.conf
├── nginx-vol
│   ├── conf.d
│   │   └── mynginx.conf
│   ├── html
│   │   └── index.html
│   └── logs
│       ├── access.log
│       └── error.log
└── run.sh
Salin selepas log masuk

Fail Docker ialah fail konfigurasi untuk membina imej, dan kandungannya adalah seperti berikut:

FROM nginx
LABEL maintainer="xxx" email="<xxx@xxx.com>" app="nginx test" version="v1.0"
ENV WEBDIR="/data/web/html"
RUN mkdir -p ${WEBDIR}
EXPOSE 5180
Salin selepas log masuk

Berdasarkan nginx, tentukan laluan fail data baharu sebagai /data/web/html, port terdedah ialah 5180.

Kompilasi imej baharu melalui arahan berikut:

docker build -t nginx:test-v1 .
Salin selepas log masuk

Teg imej yang disusun ialah test-v1, anda boleh melihat imej setempat:

docker images
REPOSITORY   TAG       IMAGE ID       CREATED          SIZE
nginx        test-v1   d2a0eaea3fac   56 minutes ago   141MB
nginx        latest    605c77e624dd   9 days ago       141MB
Salin selepas log masuk

Anda boleh melihat bahawa tag adalah ujian- Imej v1 ialah imej baharu yang baru disusun.

Buat nginx volum luaran nginx-vol dan folder conf.d, log dan html yang berkaitan, dan letakkan kandungan yang sepadan ke dalam direktori yang sepadan. Sebagai contoh, kandungan iindex.html dalam folder html adalah seperti berikut:

<html>
        <head>
                <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
                <title>系统时间</title>
        <body>
                <div id="datetime">
                        <script>
                                setInterval("document.getElementById(&#39;datetime&#39;).innerHTML=new Date().toLocaleString();",1000);
                        </script>
                </div>
        </body>
        </head>
</html>
Salin selepas log masuk

sebenarnya hanyalah halaman yang memaparkan masa semasa.

Bahagian log kosong Tujuannya adalah untuk menulis log apabila bekas berjalan ke storan luaran Walaupun bekas dihentikan atau imej dimusnahkan, log berjalan masih boleh dikekalkan.

Confid berikut ialah konfigurasi diperibadikan nginx, kandungannya adalah seperti berikut:

server {
    listen       5180;
    #listen  [::]:5180;
    server_name  localhost;

    #access_log  /var/log/nginx/host.access.log  main;
    location / {
        root   /data/web/html;
        index  index.html index.htm;
    }
    #error_page  404              /404.html;
    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    # proxy the PHP scripts to Apache listening on 127.0.0.1:80
    #location ~ \.php$ {
    #    proxy_pass   http://127.0.0.1;
    #}
    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #    root           html;
    #    fastcgi_pass   127.0.0.1:9000;
    #    fastcgi_index  index.php;
    #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
    #    include        fastcgi_params;
    # deny access to .htaccess files, if Apache&#39;s document root
    # concurs with nginx&#39;s one
    #location ~ /\.ht {
    #    deny  all;
}
Salin selepas log masuk

Malah, laluan port dan root diubah suai berdasarkan default.conf lalai nginx, tujuannya ialah untuk menggambarkan nginx Fail konfigurasi juga boleh disimpan secara luaran Jika program anda sendiri boleh mengubah suai fail konfigurasi, maka dengan cara ini, fail konfigurasi boleh diubah suai semasa fail konfigurasi yang diubah suai sebenarnya disimpan pada storan luaran , jadi ia tidak akan berubah pada bila-bila masa Ia hilang apabila bekas berhenti berjalan, dan tidak akan dipulihkan kepada fail di dalam imej.

mod larian docker

Untuk kemudahan, anda boleh menulis arahan larian ke dalam skrip shell, seperti run.sh, kandungannya adalah seperti berikut:

docker run --name nginx-v1 -p 15180:5180 -v /home/project/nginx-test/nginx-vol/logs:/var/log/nginx -v /home/project/nginx-test/nginx-vol/conf.d:/etc/nginx/conf.d -v /home/project/nginx-test/nginx-vol/html:/data/web/html -d nginx:test-v1
Salin selepas log masuk

Anda boleh lihat bahawa terdapat 3 dalam arahan Setiap -v sepadan dengan lekapan storan luaran yang berbeza dan dipetakan ke direktori berbeza dalam bekas. Port selepas

-p (perhatikan bahawa ia adalah huruf kecil) masing-masing ialah port hos dan port kontena, iaitu, port 15180 hos dipetakan ke port 5180 kontena, supaya port perkhidmatan nginx 5180 yang dimulakan oleh kontena boleh diakses melalui Port 15180 hos dipetakan.

Lihat bekas yang sedang berjalan:

docker ps -a
CONTAINER ID   IMAGE           COMMAND                  CREATED         STATUS         PORTS                                                 NAMES
cf2275da5130   nginx:test-v1   "/docker-entrypoint.…"   6 seconds ago   Up 5 seconds   80/tcp, 0.0.0.0:15180->5180/tcp, :::15180->5180/tcp   nginx-v1
Salin selepas log masuk

Lihat pemetaan terperinci:

docker inspect nginx-v1
Salin selepas log masuk

akan memaparkan maklumat lengkap, di mana pemetaan pelekap storan lengkap boleh dilihat di bahagian "Mounts" Keadaan .

Lihat terus di bawah nginx-vol/logs pada hos, dan anda boleh melihat bahawa log berjalan nginx dalam bekas ditulis secara automatik ke storan hos luaran.

ls -l nginx-vol/logs/
total 12
-rw-r--r-- 1 root root 1397 1月   8 15:08 access.log
-rw-r--r-- 1 root root 4255 1月   8 15:59 error.log
Salin selepas log masuk

Hentikan bekas:

docker stop nginx-v1
Salin selepas log masuk

Padamkan bekas:

docker rm nginx-v1
Salin selepas log masuk

mod docker-compose

Pasang docker-compose

apt-get install docker-compose	
Salin selepas log masuk

Write docker -compose.yml file

version: "3"
services:
        nginx:
                container_name: mynginx
                image: nginx:test-v1
                ports:
                        - 80:5180
                volumes:
                        - ./nginx-vol/html:/data/web/html
                        - ./nginx-vol/logs:/var/log/nginx
                        - ./nginx-vol/conf.d:/etc/nginx/conf.d
                restart: always
Salin selepas log masuk

container_name: Nyatakan nama kontena

imej: Imej yang akan digunakan dan label yang sepadan

ports: Port hos dan pemetaan port kontena< . Konfigurasi .yml, port, nama , pemasangan semuanya normal. Mengakses port 80 hos sepadan dengan perkhidmatan 5180 kontena.

Hentikan bekas

docker-compose up -d
Creating network "nginxtest_default" with the default driver
Creating mynginx ...
Creating mynginx ... done
Salin selepas log masuk

Seperti yang anda lihat, lebih mudah untuk menggunakan docker-compose.

Atas ialah kandungan terperinci Apakah kaedah untuk memasang fail pemalam nginx di bawah Docker?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Cara keluar dari bekas dengan Docker Cara keluar dari bekas dengan Docker Apr 15, 2025 pm 12:15 PM

Empat cara untuk keluar dari Docker Container: Gunakan Ctrl D di terminal kontena masukkan perintah keluar di terminal kontena Gunakan Docker Stop & lt; container_name & gt; Perintah Gunakan Docker Kill & lt; container_name & gt; Perintah di terminal tuan rumah (keluar kuasa)

Cara mengemas kini imej Docker Cara mengemas kini imej Docker Apr 15, 2025 pm 12:03 PM

Langkah -langkah untuk mengemas kini imej Docker adalah seperti berikut: Tarik tag imej terkini imej baru memadam imej lama untuk tag tertentu (pilihan) mulakan semula bekas (jika diperlukan)

Cara menyalin fail di Docker ke luar Cara menyalin fail di Docker ke luar Apr 15, 2025 pm 12:12 PM

Kaedah untuk menyalin fail ke tuan rumah luaran di Docker: Gunakan arahan CP Docker: Jalankan Docker CP [Options] & lt; Container Path & GT; & lt; PATH HOST & GT;. Menggunakan jumlah data: Buat direktori pada tuan rumah, dan gunakan parameter -V parameter untuk memasang direktori ke dalam bekas apabila membuat bekas untuk mencapai penyegerakan fail bidirectional.

Cara memeriksa nama bekas Docker Cara memeriksa nama bekas Docker Apr 15, 2025 pm 12:21 PM

Anda boleh menanyakan nama kontena Docker dengan mengikuti langkah -langkah: Senaraikan semua bekas (Docker PS). Tapis senarai kontena (menggunakan arahan grep). Mendapat nama kontena (terletak di lajur "Nama").

Cara memulakan semula Docker Cara memulakan semula Docker Apr 15, 2025 pm 12:06 PM

Cara memulakan semula bekas Docker: Dapatkan ID Container (Docker PS); Hentikan bekas (Docker Stop & lt; container_id & gt;); Mulakan bekas (Docker Start & lt; container_id & gt;); Sahkan bahawa permulaan semula berjaya (Docker PS). Kaedah lain: Docker mengarang (Docker-Compose Restart) atau Docker API (lihat Dokumentasi Docker).

Cara Melihat Proses Docker Cara Melihat Proses Docker Apr 15, 2025 am 11:48 AM

Kaedah Melihat Proses Docker: 1. Docker CLI Command: Docker PS; 2. Systemd CLI Command: Sistem Status SistemCTL; 3. Docker mengarang arahan CLI: Docker-Compose PS; 4 Proses Explorer (Windows); 5. /Direktori Proc (Linux).

Cara menggunakan desktop docker Cara menggunakan desktop docker Apr 15, 2025 am 11:45 AM

Bagaimana cara menggunakan desktop Docker? Docktop Docktop adalah alat untuk menjalankan bekas Docker pada mesin tempatan. Langkah -langkah untuk digunakan termasuk: 1. Pasang desktop Docker; 2. Mulakan desktop Docker; 3. Buat imej Docker (menggunakan Dockerfile); 4. Membina imej Docker (menggunakan Docker Build); 5. Jalankan bekas Docker (menggunakan Docker Run).

Cara Memulakan MySQL oleh Docker Cara Memulakan MySQL oleh Docker Apr 15, 2025 pm 12:09 PM

Proses memulakan MySQL di Docker terdiri daripada langkah -langkah berikut: Tarik imej MySQL untuk membuat dan memulakan bekas, tetapkan kata laluan pengguna root, dan memetakan sambungan pengesahan port Buat pangkalan data dan pengguna memberikan semua kebenaran ke pangkalan data

See all articles