–我們有時需要在mysql容器啟動時執行sql建表, 那麼我們就可以在構建映象時,指定容器要執行的sql.
步驟:1.準備建資料庫表的檔案init_db.sql: (檔名需要對應和dockerfile定義要執行的sql檔名一樣)
create database if not exists `test`;
use `test`;
create table `people` (
`id` varchar(32) not null,
`name` varchar(64) not null
);
2.準備插入資料庫的檔案init_data.sql:
insert into `people` (`id`,`name`) values ('007','詹姆斯邦德');
3.建立執行sql的shell指令碼createdb.sh:
#這個指令碼是登入mysql並執行指定的sql檔案
mysql -uroot -p$mysql_root_password <4.建立dockerfile檔案:
#基礎映象使用的是mysql:latest(mysql:8)
from mysql:latest
#定義工作目錄變數
env work_path /usr/local/work
#定義會被容器自動執行的目錄
env auto_run_dir /docker-entrypoint-initdb.d
#定義要執行的sql檔名
env file_0 init_db.sql
env file_1 init_data.sql
#定義要執行的shell檔名
env create_data_shell createdb.sh
#建立工作檔案目錄
run mkdir -p $work_path
#把sql檔案複製到工作目錄下
copy ./$file_0 $work_path/
copy ./$file_1 $work_path/
#把要執行的shell檔案放到/docker-entrypoint-initdb.d/目錄下,容器會自動執行這個shell
copy ./$create_data_shell $auto_run_dir/
#給執行檔案增加可執行許可權
run chmod a+x $auto_run_dir/$create_data_shell
5.把上述檔案都放在同一目錄下(如我都放在c:\users\z2\desktop\docker下),並在該目錄下執行docker build -t test_mysql .
構建映象,
6,執行docker images
檢視映象:
7.執行docker run --name mytestsql -e mysql_root_password=123456 -idt test_mysql
啟動容器:
8.執行docker ps
檢視執行的容器:
9.執行docker exec -it mytestsql /bin/bash
以互動式方式進入容器命令列:
10,登入容器的mysql:
11.檢視資料是否執行成功:
12. 到此我們的操作成功完成!,
若要了解win10下如何在docker容器中分別執行mysql, redis, springboot專案,
請移步至我的github: docker執行springboot專案
在docker中建立mysql
我的mysql映象版本是8.0 記錄一下出現的意外情況 我是以下面的命令來進行安裝 sudo docker run name mysql 2 d restart always p 5002 3306 e mysql root password yourpasswd v pwd db2 data va...
Docker建立MySQL容器
本文目的是建立乙個mysql的image,並且在新建立出來的容器裡自動啟動mysql服務接受外部連線 步驟 1.首先建立乙個目錄並在目錄下建立乙個dockerfile,檔案內容如下 from centos centos6 maintainer fanbin kong kongxx hotmail.c...
Docker建立MySQL容器
本文目的是建立乙個mysql的image,並且在新建立出來的容器裡自動啟動mysql服務接受外部連線 步驟 1.首先建立乙個目錄並在目錄下建立乙個dockerfile,檔案內容如下 from centos centos6 maintainer fanbin kong kongxx hotmail.c...