[英]Database created but no tables in MySQL Docker
我有一個應用程序運行到一個嵌入 tomcat 的容器中,並與一個 MySQL 數據庫鏈接
我已經運行了我的容器
docker-compose up --build -d
,兩個容器都起來了,我可以登錄應用了
但是,當我把
docker exec -it myapp-mysql bash
我選擇我的數據庫
使用數據庫名;
,我沒有在我的數據庫中看到任何表
這是我的 docker-compose
version: "2"
services:
db:
container_name: myapp-mysql
image: mysql:latest
restart: always
ports:
- 3306:3306
environment:
MYSQL_ROOT_PASSWORD: XXXXXXXX
MYSQL_DATABASE: XXXXXXX
networks:
app_net:
ipv4_address: A.B.C.D
back-end-java:
container_name: myapp-tomcat
build:
context: .
dockerfile: Dockerfile
restart: always
image: application
ports:
- 8008:8443
links:
- db
networks:
app_net:
ipv4_address: A.B.C.D
networks:
app_net:
driver: bridge
ipam:
driver: default
config:
- subnet: A.B.C.D/24
gateway: A.B.C.D
這是 Dockerfile
FROM tomcat:8.0.33-jre8
ADD myapp.war /usr/local/tomcat/webapps/
CMD ["catalina.sh", "run"]
謝謝你
您正在使用--build
這意味着您強制重新創建 mysql 容器,並且由於您沒有將數據卷安裝到主機上,因此每次運行此命令時都會清除您的數據。 您可以通過將 mysql 數據卷安裝到 docker-compose 來避免這種情況,如下所示:
version: "2"
services:
db:
container_name: myapp-mysql
image: mysql:latest
restart: always
ports:
- 3306:3306
volumes:
- "./data/mariadb:/var/lib/mysql:rw"
environment:
MYSQL_ROOT_PASSWORD: XXXXXXXX
MYSQL_DATABASE: XXXXXXX
networks:
app_net:
ipv4_address: A.B.C.D
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.