version: 3.1services: wordpressastra: image: wordpress restart: always ports: - 8082:80 environment: WORDPRESS_DB_HOST: dbastra WORDPRESS_DB_USER: exampleuser WORDPRESS_DB_PASSWORD: examplepass WORDPRESS_DB_NAME: exampledb volumes: - wordpressastra:/var/www/astra/html dbastra: image: mysql:5.7 restart: always environment: MYSQL_DATABASE: exampledb MYSQL_USER: exampleuser MYSQL_PASSWORD: examplepass MYSQL_RANDOM_ROOT_PASSWORD: 1 volumes: - dbastra:/var/lib/astra/mysqlvolumes: wordpressastra: dbastra:
這是一個用于運行WordPress和MySQL數據庫的Docker Compose文件。愛掏網 - it200.com
wordpressastra服務定義了一個帶有Astra主題的WordPress鏡像。愛掏網 - it200.com它被配置為始終重啟,并設置在端口8082上運行。愛掏網 - it200.com它還定義了用于數據庫連接的環境變量,包括主機、用戶、密碼和數據庫名稱。愛掏網 - it200.comVolumes部分指定了一個持久化卷,用于存儲WordPress文件。愛掏網 - it200.com
dbastra服務定義了一個MySQL 5.7版本的鏡像。愛掏網 - it200.com它也被設置為始終重啟,并定義了數據庫的環境變量,包括數據庫名稱、用戶、密碼和一個隨機的root密碼。愛掏網 - it200.comVolumes部分指定了一個持久化卷,用于存儲MySQL數據。愛掏網 - it200.com
總的來說,這個Docker Compose文件提供了一個簡單、便攜的方式來運行帶有Astra主題的WordPress和MySQL數據庫。愛掏網 - it200.com
如果把數據庫目錄 掛在到宿主機 /app/mysql/data
如果要將數據庫目錄掛載到宿主機的/app/mysql/data
目錄,只需要修改Docker Compose文件的dbastra
服務的volumes部分。愛掏網 - it200.com以下是修改后的Docker Compose文件:
version: 3.1services: wordpressastra: image: wordpress restart: always ports: - 8082:80 environment: WORDPRESS_DB_HOST: dbastra WORDPRESS_DB_USER: exampleuser WORDPRESS_DB_PASSWORD: examplepass WORDPRESS_DB_NAME: exampledb volumes: - wordpressastra:/var/www/astra/html dbastra: image: mysql:5.7 restart: always environment: MYSQL_DATABASE: exampledb MYSQL_USER: exampleuser MYSQL_PASSWORD: examplepass MYSQL_RANDOM_ROOT_PASSWORD: 1 volumes: - /app/mysql/data:/var/lib/mysqlvolumes: wordpressastra:
在dbastra
服務的volumes部分,我們將/var/lib/mysql
目錄替換為宿主機上的/app/mysql/data
目錄。愛掏網 - it200.com這樣就會將MySQL數據存儲在宿主機上的/app/mysql/data
目錄中,而不是Docker容器中。愛掏網 - it200.com
同樣,如何把/var/www/astra/html掛在到宿主機 /app/wordpress
如果要將/var/www/astra/html
目錄掛載到宿主機的/app/wordpress
目錄,只需要修改Docker Compose文件的wordpressastra
服務的volumes部分。愛掏網 - it200.com以下是修改后的Docker Compose文件:
version: 3.1services: wordpressastra: image: wordpress restart: always ports: - 8082:80 environment: WORDPRESS_DB_HOST: dbastra WORDPRESS_DB_USER: exampleuser WORDPRESS_DB_PASSWORD: examplepass WORDPRESS_DB_NAME: exampledb volumes: - /app/wordpress:/var/www/astra/html dbastra: image: mysql:5.7 restart: always environment: MYSQL_DATABASE: exampledb MYSQL_USER: exampleuser MYSQL_PASSWORD: examplepass MYSQL_RANDOM_ROOT_PASSWORD: 1 volumes: - /app/mysql/data:/var/lib/mysqlvolumes: wordpressastra:
在wordpressastra
服務的volumes部分,我們將/var/www/astra/html
目錄替換為宿主機上的/app/wordpress
目錄。愛掏網 - it200.com這樣就會將WordPress文件存儲在宿主機上的/app/wordpress
目錄中,而不是Docker容器中。愛掏網 - it200.com
volumes: wordpressastra: 這個節點還需要保留?
是的,volumes
節點中的wordpressastra
定義了一個Docker卷,用于存儲WordPress的數據。愛掏網 - it200.com這個卷是在wordpressastra
服務中定義的,并被映射到/var/www/astra/html
目錄。愛掏網 - it200.com即使我們將此目錄掛載到宿主機,我們仍然需要定義一個Docker卷來存儲WordPress數據。愛掏網 - it200.com因此,即使將目錄掛載到宿主機,我們仍然需要保留volumes
節點中的wordpressastra
定義。愛掏網 - it200.com
volumes: dbastra: 這個為何不需要加
你提到的volumes
節點中的dbastra
定義了一個Docker卷,用于存儲MySQL的數據。愛掏網 - it200.com這個卷是在dbastra
服務中定義的,并被映射到/var/lib/mysql
目錄。愛掏網 - it200.com我們可以選擇將此目錄掛載到宿主機上的某個目錄,也可以不掛載,讓Docker容器來管理MySQL數據。愛掏網 - it200.com如果我們選擇不掛載,那么該節點確實不需要加。愛掏網 - it200.com在這種情況下,Docker將使用其默認機制來創建和管理數據卷。愛掏網 - it200.com
但是,如果我們希望將MySQL數據存儲在宿主機上的某個目錄中,我們需要在volumes
節點中定義一個Docker卷,就像我之前所示的那樣。愛掏網 - it200.com在這種情況下,我們需要指定一個宿主機目錄,它將被用于存儲MySQL數據。愛掏網 - it200.com
翻譯
搜索
復制