Docker實(shí)踐之docker-compose部署mysql

文章目錄

docker實(shí)踐之docker-compose部署mysql
1樊拓、安裝部署docker
2、編寫(xiě)docker-compose文件
3实束、編寫(xiě)配置文件和初始化文件
4卵惦、啟動(dòng)數(shù)據(jù)庫(kù)
5、檢查初始化的數(shù)據(jù)
6谈竿、驗(yàn)證遠(yuǎn)程連接

docker實(shí)踐之docker-compose部署mysql

前面用golang寫(xiě)了一個(gè)api server团驱,但是要用到一些測(cè)試數(shù)據(jù),又要方便給別人空凸,想來(lái)用docker部署環(huán)境最簡(jiǎn)單了嚎花。只需要簡(jiǎn)單執(zhí)行兩個(gè)命令就可以搞定了。博主的環(huán)境是windows然后在windows里面部署一個(gè)centos7的虛擬機(jī)呀洲。在虛擬機(jī)里面安裝部署了docker紊选。

1、安裝部署docker

在linux下面只需簡(jiǎn)單的一個(gè)命令:

yum install docker

其他的系統(tǒng)類似道逗。

2兵罢、編寫(xiě)docker-compose文件

version: '2'
services:
    mysql:
        network_mode: "host"
        environment:
            MYSQL_ROOT_PASSWORD: "yourpassword"
            MYSQL_USER: 'test'
            MYSQL_PASS: 'yourpassword'
        image: "docker.io/mysql:latest" 
        restart: always
        volumes:
            - "./db:/var/lib/mysql"
            - "./conf/my.cnf:/etc/my.cnf"
            - "./init:/docker-entrypoint-initdb.d/"
        ports:
            - "3306:33060"

這里稍微解釋一下,其中滓窍,network_mode為容器的網(wǎng)絡(luò)模式卖词,一般自己測(cè)試用host模式就可以了。MYSQL_ROOT_PASSWORD為數(shù)據(jù)庫(kù)的密碼吏夯,也就是root用戶的密碼此蜈。MYSQL_USER和MYSQL_PASS另外一個(gè)用戶名和密碼。image為你拉取鏡像的地址和版本噪生,當(dāng)然也可以換成自己的鏡像倉(cāng)庫(kù)裆赵,這里使用官方的。volumes里面的參數(shù)為映射本地和docker容器里面的文件夾和目錄跺嗽。./db 用來(lái)存放了數(shù)據(jù)庫(kù)表文件顾瞪,./conf/my.cnf存放自定義的配置文件,./init存放初始化的腳本抛蚁。ports 為映射主機(jī)和容器的端口陈醒。寫(xiě)好docker-compose.yml后把相應(yīng)的文件夾建好,當(dāng)然也可以換成你自己的瞧甩。下面的是博主的文件夾結(jié)構(gòu)钉跷。

root@localhost mysql # tree
.
├── conf
│   └── my.cnf
├── db
├── docker-compose.yml
└── init
    └── init.sql

3、編寫(xiě)配置文件和初始化文件

root@localhost conf # cat my.cnf 
[mysqld]
user=mysql
default-storage-engine=INNODB
character-set-server=utf8
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8

這里的配置文件只是一個(gè)簡(jiǎn)單的舉例肚逸,大家需要根據(jù)自己的配置來(lái)更改爷辙。

root@localhost init # cat init.sql 
use mysql;
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'yourpassword';
create database test;
use test;
create table user
(
    id int auto_increment primary key,
    username varchar(64) unique not null,
    email varchar(120) unique not null,
    password_hash varchar(128) not null,
    avatar varchar(128) not null
);
insert into user values(1, "zhangsan","test12345@qq.com","passwd","avaterpath");
insert into user values(2, "lisi","12345test@qq.com","passwd","avaterpath");

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'yourpassword';這一句比較重要彬坏,放開(kāi)root登入權(quán)限,如果你要在其他的主機(jī)用root用戶登入到數(shù)據(jù)庫(kù)就需要寫(xiě)入這句話膝晾。其他的語(yǔ)句就是建表操作和插入數(shù)據(jù)的操作了栓始。

4、啟動(dòng)數(shù)據(jù)庫(kù)

root@localhost mysql # docker-compose pull

.......下載鏡像過(guò)程

root@localhost mysql # docker-compose up -d

mysql_mysql_1_234be9b015e4 is up-to-date
root@localhost mysql # 

此處需要在存放docker-compose.yml的文件夾進(jìn)行操作血当。

5幻赚、檢查初始化的數(shù)據(jù)

root@localhost mysql # docker ps
CONTAINER ID        IMAGE                    COMMAND                  CREATED             STATUS              PORTS               NAMES
cffe8d56f222        docker.io/mysql:latest   "docker-entrypoint..."   21 minutes ago      Up 21 minutes                           mysql_mysql_1_234be9b015e4
root@localhost mysql # docker exec -it cffe8d56f222 bash
root@localhost:/# mysql -uroot -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 11
Server version: 8.0.13 MySQL Community Server - GPL

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> use test;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> select * from user;
+----+----------+------------------+---------------+------------+
| id | username | email            | password_hash | avatar     |
+----+----------+------------------+---------------+------------+
|  1 | zhangsan | test12345@qq.com | passwd        | avaterpath |
|  2 | lisi     | 12345test@qq.com | passwd        | avaterpath |
+----+----------+------------------+---------------+------------+
2 rows in set (0.00 sec)

可以看到數(shù)據(jù)存入到數(shù)據(jù)庫(kù)當(dāng)中去。

6臊旭、驗(yàn)證遠(yuǎn)程連接

在windows宿主機(jī)上面也可以用Navicat連接上數(shù)據(jù)庫(kù)落恼。ip填虛擬機(jī)的ip,port填寫(xiě)3306离熏,密碼為docker-compose文件中的root密碼佳谦。此處需要將宿主機(jī)(我是liunx虛擬機(jī))的防火墻給關(guān)掉,要不然一直連接不上滋戳,或者你開(kāi)啟3306端口給外面訪問(wèn)也可以钻蔑。


image
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市奸鸯,隨后出現(xiàn)的幾起案子矢棚,更是在濱河造成了極大的恐慌,老刑警劉巖府喳,帶你破解...
    沈念sama閱讀 218,284評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異蘑拯,居然都是意外死亡钝满,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,115評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)申窘,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)弯蚜,“玉大人,你說(shuō)我怎么就攤上這事剃法∷檗啵” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,614評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵贷洲,是天一觀的道長(zhǎng)收厨。 經(jīng)常有香客問(wèn)我,道長(zhǎng)优构,這世上最難降的妖魔是什么诵叁? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,671評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮钦椭,結(jié)果婚禮上拧额,老公的妹妹穿的比我還像新娘碑诉。我一直安慰自己,他們只是感情好侥锦,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,699評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布进栽。 她就那樣靜靜地躺著,像睡著了一般恭垦。 火紅的嫁衣襯著肌膚如雪快毛。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,562評(píng)論 1 305
  • 那天署照,我揣著相機(jī)與錄音祸泪,去河邊找鬼。 笑死建芙,一個(gè)胖子當(dāng)著我的面吹牛没隘,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播禁荸,決...
    沈念sama閱讀 40,309評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼右蒲,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了赶熟?” 一聲冷哼從身側(cè)響起瑰妄,我...
    開(kāi)封第一講書(shū)人閱讀 39,223評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎映砖,沒(méi)想到半個(gè)月后间坐,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,668評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡邑退,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,859評(píng)論 3 336
  • 正文 我和宋清朗相戀三年竹宋,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片地技。...
    茶點(diǎn)故事閱讀 39,981評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡蜈七,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出莫矗,到底是詐尸還是另有隱情飒硅,我是刑警寧澤,帶...
    沈念sama閱讀 35,705評(píng)論 5 347
  • 正文 年R本政府宣布作谚,位于F島的核電站三娩,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏妹懒。R本人自食惡果不足惜尽棕,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,310評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望彬伦。 院中可真熱鬧滔悉,春花似錦伊诵、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,904評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至歉提,卻和暖如春笛坦,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背苔巨。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,023評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工版扩, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人侄泽。 一個(gè)月前我還...
    沈念sama閱讀 48,146評(píng)論 3 370
  • 正文 我出身青樓礁芦,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親悼尾。 傳聞我的和親對(duì)象是個(gè)殘疾皇子柿扣,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,933評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容