鍍金池/ 問答/Linux  數(shù)據(jù)庫/ docker commit 后的鏡像沒有數(shù)據(jù)

docker commit 后的鏡像沒有數(shù)據(jù)

我想弄一個帶有數(shù)據(jù)的鏡像,這樣就可以在不同的環(huán)境(主機)中 pull 下來這個鏡像就會有完整的數(shù)據(jù)了.

我從 docker mysql5.5 下載了一個dockerfile 文件,在本地 build 之后生成了一個 image .
后來基于這個 image 創(chuàng)建了一個 mysql5.5 的容器, 并且基于在這個容器里面導(dǎo)入了一個數(shù)據(jù)庫.
導(dǎo)入數(shù)據(jù)是成功,容器也正常運行.

接著我對這個容器 做了 commmit 的操作,并且打了 tag ,推送到 docker.hub 了.

但是我再從 docker hub 中 pull 這個 image . 發(fā)現(xiàn)基于這個 image 創(chuàng)建的容器,只有一個空的 mysql . 里面沒有我導(dǎo)入的那個數(shù)據(jù)庫.

我是遺漏了什么么?

我的操作記錄為:

clipboard.png

可以看到新的 image 是350MB 的.

問題就出現(xiàn)這里,我再從我 pull 下來的鏡像也是 350M 的.但是這個 鏡像創(chuàng)建的容器 卻是空數(shù)據(jù)庫的.

如果我這個方式不行,那么有什么辦法能實現(xiàn)我的目的么?

回答
編輯回答
別逞強

建議你還是在將數(shù)據(jù)卷掛載到本地
給你我本地開發(fā)所使用的docker-compose和Dockerfile部分代碼作為參考,希望可以幫助到你

db:
        container_name: 'local_db'
        build: ./services/mysql
        environment:
          MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
        ports:
          - "3306:3306"
        volumes:
          - ${MYSQL_DATA_PATH}:/var/lib/mysql
FROM mariadb:10.1
MAINTAINER crazycodes <919342864@qq.com>

ADD ./config/default.cnf /etc/mysql/conf.d/default.cnf
2018年6月3日 22:44
編輯回答
念初
  • 從dockerfile可以知道,MySQL的數(shù)據(jù)寫到了VOLUME /var/lib/mysql。
  • 數(shù)據(jù)不應(yīng)該存放在容器,可以在啟動容器時掛載本地目錄到/var/lib/mysql。
2017年2月5日 12:43