Docker 容器中的数据库不断被删除
DB in Docker container keeps getting deleted
我是 docekr 的新手,我正在我的本地机器上设置一个 Codeigniter docker 图像
bitnami/codeigniter:3
一切正常,但 mysql 容器在我每次执行时都会丢失它的数据库和所有数据
sudo docker-撰写
这是docker-撰写文件
version: '3.3'
services:
myapp:
image: docker.io/bitnami/codeigniter:3
container_name: app-backend
ports:
- '8000:8000'
volumes:
- '.:/app'
depends_on:
- mariadb
mariadb:
image: docker.io/bitnami/mariadb:10.3
container_name: app-marriadb
volumes:
- app_dbdata:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: app_db
ports:
- '3307:3306'
environment:
- ALLOW_EMPTY_PASSWORD=yes
volumes:
app_dbdata:
我尝试了多种可能性,但不确定哪里出错了。我的 OS 是 Ubuntu 18.04
bitnami/mariadb image 在容器内使用不同的路径存储数据库。引用其 Docker 中心页面的“保留您的数据库”部分:
For persistence you should mount a directory at the /bitnami/mariadb
path. If the mounted directory is empty, it will be initialized on the first run.
因此,在您的 Compose 设置中,将该路径指定为挂载目录:
version: '3.8'
services:
mariadb:
volumes:
- app_dbdata:/bitnami/mariadb # <-- not /var/lib/mysql
volumes:
app_dbdata: # unchanged
我是 docekr 的新手,我正在我的本地机器上设置一个 Codeigniter docker 图像 bitnami/codeigniter:3
一切正常,但 mysql 容器在我每次执行时都会丢失它的数据库和所有数据 sudo docker-撰写
这是docker-撰写文件
version: '3.3'
services:
myapp:
image: docker.io/bitnami/codeigniter:3
container_name: app-backend
ports:
- '8000:8000'
volumes:
- '.:/app'
depends_on:
- mariadb
mariadb:
image: docker.io/bitnami/mariadb:10.3
container_name: app-marriadb
volumes:
- app_dbdata:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: app_db
ports:
- '3307:3306'
environment:
- ALLOW_EMPTY_PASSWORD=yes
volumes:
app_dbdata:
我尝试了多种可能性,但不确定哪里出错了。我的 OS 是 Ubuntu 18.04
bitnami/mariadb image 在容器内使用不同的路径存储数据库。引用其 Docker 中心页面的“保留您的数据库”部分:
For persistence you should mount a directory at the
/bitnami/mariadb
path. If the mounted directory is empty, it will be initialized on the first run.
因此,在您的 Compose 设置中,将该路径指定为挂载目录:
version: '3.8'
services:
mariadb:
volumes:
- app_dbdata:/bitnami/mariadb # <-- not /var/lib/mysql
volumes:
app_dbdata: # unchanged