簡體   English   中英

數據庫已創建,但 MySQL Docker 中沒有表

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM