version: '3.1' services: 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/mysql volumes: wordpressastra: dbastra:
这是一个用于运行WordPress和MySQL数据库的Docker Compose文件。
"wordpressastra"服务定义了一个带有Astra主题的WordPress镜像。它被配置为始终重启,并设置在端口8082上运行。它还定义了用于数据库连接的环境变量,包括主机、用户、密码和数据库名称。Volumes部分指定了一个持久化卷,用于存储WordPress文件。
"dbastra"服务定义了一个MySQL 5.7版本的镜像。它也被设置为始终重启,并定义了数据库的环境变量,包括数据库名称、用户、密码和一个随机的root密码。Volumes部分指定了一个持久化卷,用于存储MySQL数据。
总的来说,这个Docker Compose文件提供了一个简单、便携的方式来运行带有Astra主题的WordPress和MySQL数据库。
如果把数据库目录 挂在到宿主机 /app/mysql/data如果要将数据库目录挂载到宿主机的/app/mysql/data
目录,只需要修改Docker Compose文件的dbastra
服务的volumes部分。以下是修改后的Docker Compose文件:
version: '3.1' services: 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/mysql volumes: wordpressastra:
在dbastra
服务的volumes部分,我们将/var/lib/mysql
目录替换为宿主机上的/app/mysql/data
目录。这样就会将MySQL数据存储在宿主机上的/app/mysql/data
目录中,而不是Docker容器中。
如果要将/var/www/astra/html
目录挂载到宿主机的/app/wordpress
目录,只需要修改Docker Compose文件的wordpressastra
服务的volumes部分。以下是修改后的Docker Compose文件:
version: '3.1' services: 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/mysql volumes: wordpressastra:
在wordpressastra
服务的volumes部分,我们将/var/www/astra/html
目录替换为宿主机上的/app/wordpress
目录。这样就会将WordPress文件存储在宿主机上的/app/wordpress
目录中,而不是Docker容器中。
是的,volumes
节点中的wordpressastra
定义了一个Docker卷,用于存储WordPress的数据。这个卷是在wordpressastra
服务中定义的,并被映射到/var/www/astra/html
目录。即使我们将此目录挂载到宿主机,我们仍然需要定义一个Docker卷来存储WordPress数据。因此,即使将目录挂载到宿主机,我们仍然需要保留volumes
节点中的wordpressastra
定义。
你提到的volumes
节点中的dbastra
定义了一个Docker卷,用于存储MySQL的数据。这个卷是在dbastra
服务中定义的,并被映射到/var/lib/mysql
目录。我们可以选择将此目录挂载到宿主机上的某个目录,也可以不挂载,让Docker容器来管理MySQL数据。如果我们选择不挂载,那么该节点确实不需要加。在这种情况下,Docker将使用其默认机制来创建和管理数据卷。
但是,如果我们希望将MySQL数据存储在宿主机上的某个目录中,我们需要在volumes
节点中定义一个Docker卷,就像我之前所示的那样。在这种情况下,我们需要指定一个宿主机目录,它将被用于存储MySQL数据。
翻译
搜索
复制
标签:dockercompose,部署,宿主机,wordpress,volumes,mysql,wordpressastra,Docker,dbastra From: https://www.cnblogs.com/zxh263/p/17276129.html