2-使用daocloud部署mysql+phpmyadmin容器

创建于20170211

本章小目标

  • 下载mysql镜像
  • 熟悉mysql 容器化配置
  • 部署mysql镜像
  • 下载phpmyadmin镜像
  • 熟悉phpmyadmin 容器化配置
  • 部署phpmyadmin镜像
  • 使用phpmyadmin来管理mysql

我习惯使用daocloud来对容器进行管理,我的云服务器也是用daocloud管理的,好处是镜像下载比较快,图形界面也比较友好。
daocloud链接:https://dashboard.daocloud.io/

当然,直接在服务器上写用docker命令操作也是可以的

1,mysql镜像地址

daocloud上mysql的镜像源地址如下:
https://dashboard.daocloud.io/packages/fa51c1d6-9dc2-49d9-91ac-4bbfc24a1bda
镜像地址: daocloud.io/library/mysql
个人猜测,daocloud.io/library前缀开头的镜像应该是和docker hub官方保持同步的版本。

2,mysql镜像官方文档解读

docker hub官网地址:
https://hub.docker.com/_/mysql/
在这里可以看到mysql镜像构建的Dockerfile文件,也是从一个linux镜像开始的。

FROM debian:jessie

从官方文档需要明确:

  • mysql镜像启动的参数(环境变量)
  • 从其他容器link时,需要指定的名称(/etc/hosts中的主机名)。如:

$ docker run --name some-app --link some-mysql:mysql -d application-that-uses-mysql

some-mysql:mysql 别名是否叫mysql,根据使用者容器的需要来定

  • 数据库配置文件
  • 数据库数据存放路径,这个很重要,不然容器关闭,数据就没了。

最后,文档中提到,如果用一个已经包含数据库的目录(有mysql子目录),那么原有数据保持不变。也就是说可以从现有的数据库来启动容器。

If you start your mysql container instance with a data directory that already contains a database (specifically, a mysql subdirectory), the $MYSQL_ROOT_PASSWORD variable should be omitted from the run command line; it will in any case be ignored, and the pre-existing database will not be changed in any way.

3,daocloud部署mysql

直接在daocloud镜像网页上点击部署最新版本,选择自己的自有主机(云服务器)。

  • 应用名称:BIT1DB
  • 端口映射:主机端口固定3306,与容器端口保持一致。以后作为本机的固定数据库服务。
  • volume:/data10g/bit1db/mysql 映射数据盘地址到容器地址:/var/lib/mysql (为什么是这个地址,之前的文档里面都说了)
  • 环境变量:MYSQL_ROOT_PASSWORD 设置mysql root用户密码

然后点击立即部署。
此时可以切换标签页,看到当前YAML文件的配置如下:

BIT1DB:
  image: daocloud.io/library/mysql:5.7.4
  privileged: false
  restart: always
  ports:
  - 3306:3306
  volumes:
  - /data10g/bit1db/mysql:/var/lib/mysql
  environment:
  - MYSQL_ROOT_PASSWORD=*****

4,检查mysql启动情况

大概1~2分钟就从无到有启动了一个mysql,容器化真的很方便。

4.1 首先查看主机

# docker images    查看下载的镜像
REPOSITORY                              TAG                 IMAGE ID            CREATED             SIZE
daocloud.io/library/mysql               5.7.4               aa5364eb3d85        2 years ago         252.3 MB

# docker ps   查看启动的容器
CONTAINER ID        IMAGE                                    COMMAND                  CREATED              STATUS              PORTS                    NAMES
a595a1091750        daocloud.io/library/mysql:5.7.4          "/entrypoint.sh mysql"   About a minute ago   Up About a minute   0.0.0.0:3306->3306/tcp   dao_BIT1DB_1

# netstat -an | grep 3306  查看主机固定端口
tcp6       0      0 :::3306                 :::*                    LISTEN

/data10g/bit1db/mysql# ls -l   查看数据卷保存的数据
total 123032
-rw-rw---- 1 999 docker        2 Feb 12 09:07 a595a1091750.pid
-rw-rw---- 1 999 docker       56 Feb 12 09:07 auto.cnf
-rw-rw---- 1 999 docker 12582912 Feb 12 09:07 ibdata1
-rw-rw---- 1 999 docker 50331648 Feb 12 09:07 ib_logfile0
-rw-rw---- 1 999 docker 50331648 Feb 12 09:07 ib_logfile1
-rw-rw---- 1 999 docker 12582912 Feb 12 09:07 ibtmp1
drwx------ 2 999 docker     4096 Feb 12 09:07 mysql
drwx------ 2 999 docker     4096 Feb 12 09:07 performance_schema

4.2 然后查看容器

root@a595a1091750:/usr/local/mysql# cat /etc/hosts
127.0.0.1       localhost
::1     localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
172.17.0.6      a595a1091750     #主机名就是容器ID,并且有一个内网IP,后续从其他容器link时也可以用这个IP指定主机名

4.3 启动一个容器连接mysql试一下

密码输错了是会报错的,也说明我们连接的确实是之前创建的数据库。

# docker run -it --link dao_BIT1DB_1:mysql --rm mysql sh -c 'exec mysql -h"172.17.0.6" -P"3306" -uroot -p"******"'

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
+--------------------+
3 rows in set (0.00 sec)

大功告成。

5,phpmyadmin镜像地址

使用mysql的人都习惯用phpmyadmin,所以有必要再启动一个容器。
在镜像市场里面搜索,还是采用daocloud国内源镜像。看其版本应该是与官方保持同步的,而且下载速度比较快。
https://dashboard.daocloud.io/packages/06196480-43ec-4cb9-8325-1d77287dabad
镜像地址: daocloud.io/daocloud/phpmyadmin

6,phpmyadmin镜像官方文档解读

官方文档:https://hub.docker.com/r/phpmyadmin/phpmyadmin/

  • 找到其link语句:

docker run --name myadmin -d --link mysql_db_server:db -p 8080:80 phpmyadmin/phpmyadmin

可以看到:

  • mysql_db_server:db,说明需要把已有的mysql容器映射为别名:db,稍后可以看到db将存在于phpmyadmin的/etc/hosts中。

  • 8080:80,说明容器内部的端口是80

  • 环境变量
    PMA_HOST - define address/host name of the MySQL server
    PMA_PORT - define port of the MySQL server

7,部署phpmyadmin

-应用名称:BIT1DB_ADMIN
-端口映射:phpmyadmin的网页访问端口可以不固定,这不像mysql,将来需要在程序中配置,因此使用固定端口。
然后点击立即部署
查看YAML文件:

BIT1DB_ADMIN:
  image: daocloud.io/daocloud/phpmyadmin:edge
  privileged: false
  restart: always
  ports:
  - '80'
  environment:
  - PMA_PORT=3306
  - PMA_HOST=172.17.0.6   #这里用的是内网IP,因此端口对应映射前的端口

8,验证phpmyadmin安装结果

访问网页:http://外网服务IP:32807
32807是动态端口,根据之前的设置映射到phpmyadmin容器的80端口。每次重启容器,端口号自动+1

Paste_Image.png

新建数据库,发现大多数也用的是utf8_general_ci,所以新建数据 这里也选用utf8_general_ci就可以了。

后续会研究一下django容器,开发一个小demo,并使用这里创建的mysql容器。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,968评论 6 482
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,601评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 153,220评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,416评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,425评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,144评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,432评论 3 401
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,088评论 0 261
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,586评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,028评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,137评论 1 334
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,783评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,343评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,333评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,559评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,595评论 2 355
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,901评论 2 345

推荐阅读更多精彩内容