這裡我使用的是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...