mysql的docker容器啟動方法

2021-10-02 06:09:43 字數 1623 閱讀 3610

這裡我使用的是mysql:5.7的鏡,可以直接拉取:docker pull mysql:5.7

啟動mysql容器很簡單,一行命令就能解決:

docker run -itd -p 10406:3306  -e mysql_root_password='root'  --name test-mysql mysql:5.7 

針對啟動容器後需要做一些初始化的事情我們應該怎麼做,例如:啟動資料庫後,需要建庫並設定引數,下邊有兩個方法:

第一種方法:

docker run -itd -p 10406:3306  -e mysql_root_password='root' -e mysql_database=testdb --name test-mysql mysql:5.7 --character-set-server=utf8 --collation-server=utf8_general_ci

mysql_database 建立資料庫並命名為testdb

--character-set-server 指定其預設字符集為 utf8

--collation-server=utf8_general_ci 預設校對規則為 utf8_chinese_ci(簡體中文,不區分大小寫)

第二種方法:

mysql:5.7容器裡有乙個/docker-entrypoint-initdb.d目錄,這個目錄就是啟動資料庫後執行初始化工作的。

可以通過自己編寫乙個資料庫初始化檔案掛載此目錄中(不過也可以用dockerfile重新生成乙個新的映象),具體操作如下:

新建乙個初始化檔案:

vi /home/server/workspace/mysql/initdb/init_database.sql

內容:

-- 建庫

create database if not exists my_db default charset utf8 collate utf8_general_ci;

-- 切換資料庫

use my_db;

-- 建表

drop table if exists `table1`;

create table `table1` (

`id` int(11) unsigned not null auto_increment,

`name` varchar(20) default null comment '姓名',

`age` int(11) default null comment '年齡',

primary key (`id`)

) engine=innodb default charset=utf8;

建立容器:

docker run -itd -p 10406:3306  -e mysql_root_password='root'  -v /home/server/workspace/mysql/initdb:/docker-entrypoint-initdb.d --name test-mysql mysql:5.7

總結:第一種方法方便快捷,不過只能處理簡單的資料庫設定;

第二種方法可擴充套件性更高,可以再初始化檔案中新增很多資料庫操作,但是需要外部掛在檔案發布起來沒第一張方法方便。

我需要的業務比較簡單,只需要建立乙個資料庫即可,所以採用的第一種方法。

docker 容器設定自啟

文章出處 case1 容器未建立 docker run restart always name mynginx d nginx case2 容器已經建立 docker update restart unless stopped mynginx 容器自啟動引數no 預設 不自動重啟容器 on fail...

docker容器設定開機自啟

docker開機自啟設定 命令 systemctl enable docker.service docker容器的開機自啟 在使用docker run啟動容器時,使用 restart引數來設定 例 docker run d name mysql p 3306 3306 restart always ...

如何在docker容器中啟jupyter

docker h 0.0.0.0 run it rm p 18888 8888 v pwd dump data root dump data harbor.atompai.com nitrogen xdock v1 bin bash設定密碼 pip install jupyter啟動容器 docke...