博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ubuntu 18.04 docker 学习经历(三)Docker mysql 及 phpmyadmin
阅读量:7193 次
发布时间:2019-06-29

本文共 8052 字,大约阅读时间需要 26 分钟。

hot3.png

20181231 假期闲来无事,整理一下 docker mysql 及 phpmyadmin 学习经历

1 、下载安装 docker-ce

官网

安装 docker-cesudo apt-get install docker-ce

2、Docker 理解

1)、每一个 Docker container (容器)就是一个特定应用程序,启动后就是一个特定进程2)、一个容器就是一项服务,每一个 mysql 容器就可以提供一个 mysql 服务和若干实例3)、这里特意安装 2 个不同版本,宿主机自己也已经安装过 LNMP ,用于对比学习

3、下载、安装、运行 mysql 容器

1)、查找 mysql 镜像 docker search mysql	NAME                                                   DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED	mysql                                                  MySQL is a widely used, open-source relation…   7585                [OK]                	mariadb                                                MariaDB is a community-developed fork of MyS…   2460                [OK]                	mysql/mysql-server                                     Optimized MySQL Server Docker images. Create…   569                                     [OK]	zabbix/zabbix-server-mysql                             Zabbix Server with MySQL database support       155                                     [OK]	hypriot/rpi-mysql                                      RPi-compatible Docker Image with Mysql          102                                     	zabbix/zabbix-web-nginx-mysql                          Zabbix frontend based on Nginx web-server wi…   82                                      [OK]	centurylink/mysql                                      Image containing mysql. Optimized to be link…   59                                      [OK]	....2)、下载安装 mysql 最新版sudo docker pull mysql3)、下载安装 mysql 5.6sudo docker pull mysql:5.64)、docker images	REPOSITORY           TAG                 IMAGE ID            CREATED             SIZEmysql                5.6                 27e29668a08a        47 hours ago        256MBmysql/mysql-server   latest              a02eab9e2434        2 months ago        276MBhello-world          latest              4ab4c602aa5e        3 months ago        1.84kB5)、运行 mysql/mysql-server 容器sudo docker run --name mysql56 -e MYSQL_ROOT_PASSWORD=123456 -p 3309:3306 -d mysql:5.6参数说明:--name mysql-e MYSQL_ROOT_PASSWORD=123456-p 3308:33066)、运行 mysql 5.6 容器	sudo docker run --name mysql -e MYSQL_ROOT_PASSWORD=123456 -p 3309:3306 -d mysql/mysql-server参数说明:	同上7)、查看容器是否启动、 docker ps	CONTAINER ID        IMAGE                COMMAND                  CREATED             STATUS                   PORTS                               NAMES	88c2aaa078d9        mysql:5.6            "docker-entrypoint.s…"   6 seconds ago       Up 4 seconds             0.0.0.0:3309->3306/tcp              mysql56	f53d369601e4        mysql/mysql-server   "/entrypoint.sh mysq…"   3 minutes ago       Up 3 minutes (healthy)   33060/tcp, 0.0.0.0:3308->3306/tcp   mysql8)、查看容器端口	 docker port mysql		3306/tcp -> 0.0.0.0:3308		容器的 3306 端口映射到宿主机的 3308 端口			docker port mysql56		3306/tcp -> 0.0.0.0:33099)、查看容器 IP	docker inspect mysql56		...		"IPAddress": "172.17.0.2",		...		docker inspect mysql		...		"IPAddress": "172.17.0.3",		...		** 以下连接测试 h 也可以使用容器的 IP	** 容器 IP 是动态的,每一次不一定一样

4 、连接 容器的 mysql 测试

浏览器测试放到下一步:安装 phpmyadmin 的时候在进行这里直接在命令行测试** 注意端口号是大写 P ,小写p指的是密码1)、连接宿主机自己的的 mysql(以下指令是等效的)	mysql -uroot -p123456	mysql -P3306 -uroot -p123456	mysql -h127.0.0.1 -P3306 -uroot -p123456	mysql -hlocalhost -P3306 -uroot -p123456查看版本号mysql> select version();	+-------------------------+	| version()               |	+-------------------------+	| 5.7.24-0ubuntu0.18.04.1 |	+-------------------------+	1 row in set (0.00 sec)退出mysql> quit2)、连接容器 mysql 的 mysql (容器名字没有取好,应该也带上一个版本号,例如:mysql57)	mysql -P3308 -u root -p123456 (这个不对!还是连接的宿主机的mysql)	mysql -h127.0.0.1 -P3308 -uroot -p123456	mysql -hlocalhost -P3308 -uroot -p123456 (这个不对!还是连接的宿主机的mysql)		查看版本号	mysql> select version();	+-------------------------+	| version()               |	+-------------------------+	| 5.7.24-0ubuntu0.18.04.1 |	+-------------------------+	1 row in set (0.00 sec)3)、连接容器 mysql56 的 mysql	mysql -P3309 -u root -p123456(这个不对!还是连接的宿主机的mysql)	mysql -h127.0.0.1 -P3309 -uroot -p123456	mysql -hlocalhost -P3309 -uroot -p123456 (这个不对!还是连接的宿主机的mysql)	mysql> select version();		+-----------+		| version() |		+-----------+		| 5.6.42    |		+-----------+		1 row in set (0.00 sec)

5、进入容器测试

** 这里只列出容器 mysql56 docker exec -it mysql56 bashroot@88c2aaa078d9:/# ls	bin  boot  dev	docker-entrypoint-initdb.d  entrypoint.sh  etc	home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  varroot@88c2aaa078d9:/# mysql -V      	mysql  Ver 14.14 Distrib 5.6.42, for Linux (x86_64) using  EditLine wrapperroot@88c2aaa078d9:/# apt update进入 mysqlroot@88c2aaa078d9:/# mysql -uroot -p123456	Warning: Using a password on the command line interface can be insecure.	Welcome to the MySQL monitor.  Commands end with ; or \g.	Your MySQL connection id is 2	Server version: 5.6.42 MySQL Community Server (GPL)查询版本号mysql> select version();	+-----------+	| version() |	+-----------+	| 5.6.42    |	+-----------+	1 row in set (0.00 sec)

6、phpmyadmin 部署、测试

1)查找 phpmyadmin 镜像sudo docker search phpmyadmin		NAME                                                      DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED		phpmyadmin/phpmyadmin                                     A web interface for MySQL and MariaDB.          697                                     [OK]		nazarpc/phpmyadmin                                        phpMyAdmin as Docker container, based on off…   60                                      [OK]		1and1internet/ubuntu-16-nginx-php-phpmyadmin-mysql-5      ubuntu-16-nginx-php-phpmyadmin-mysql-5          48                                      [OK]	...2)、安装 phpmyadmin 镜像sudo docker pull phpmyadmin出错了!	Using default tag: latest	Error response from daemon: pull access denied for phpmyadmin, repository does not exist or may require 'docker login'docker pull phpmyadmin/phpmyadmin3)、确认 phpmyadmin 镜像docker images	REPOSITORY              TAG                 IMAGE ID            CREATED             SIZE	php                     5.6-fpm             3c6963d39c34        46 hours ago        344MB	mysql                   5.6                 27e29668a08a        2 days ago          256MB	phpmyadmin/phpmyadmin   latest              15ca549393be        2 weeks ago         166MB	...4)、先运行 mysql 容器	a).前面已经创建过 2 个 mysql 容器,这里直接 start 即可	b).如果没有创建过mysql 容器,先去 docker run 建立	c).为了对比学习,这里将 2 个 mysql 容器都运行起来,分别 Link ,分别建立 phpmyadmin ro容器	docker start mysql	docker start mysql565)、建立 2 个 phpmyadmin 容器	sudo docker run --name phpmyadmin72 --link mysql:db -p 9998:80 -d phpmyadmin/phpmyadmin参数说明:--link mysql:db 连接到 容器mysql ,给这个 link 一个别名为dbsudo docker run --name phpmyadmin56 --link mysql56:db -p 9997:80 -d phpmyadmin/phpmyadmin参数说明:同上6)、确认容器已经运行docker ps	CONTAINER ID        IMAGE                   COMMAND                  CREATED             STATUS                    PORTS                               NAMES	52fcab4ddbdc        phpmyadmin/phpmyadmin   "/run.sh supervisord…"   4 seconds ago       Up 3 seconds              9000/tcp, 0.0.0.0:9997->80/tcp      phpmyadmin56	6d8013dd8267        phpmyadmin/phpmyadmin   "/run.sh supervisord…"   18 seconds ago      Up 17 seconds             9000/tcp, 0.0.0.0:9998->80/tcp      phpmyadmin72	88c2aaa078d9        mysql:5.6               "docker-entrypoint.s…"   4 hours ago         Up 7 minutes              0.0.0.0:3309->3306/tcp              mysql56	f53d369601e4        mysql/mysql-server      "/entrypoint.sh mysq…"   4 hours ago         Up 21 minutes (healthy)   33060/tcp, 0.0.0.0:3308->3306/tcp   mysql7)、浏览器测试:	** 2个数据库容器的 mysql 都是: 用户名: root 密码:123456	连接容器 mysql总是登录不上?http://192.168.1.192:9998/index.php

连接容器 mysql56 是正确的http://192.168.1.192:9997/index.php

8)、部署 phpmyadmin 有3种方法,我这里只是最简单的一种详细学习请参考

7、接下来

从以上部署 phpmyadmin 可以看出1)、phpmyadmin 其实就是一个 php 网站2)、前一步部署的其实就是别人做好的网站镜像3)、如果拥有了镜像,使用 Docker 部署起来真的很快捷!4)、到现在为止,php 开发环境所需要的元素都已经学习过了,怎么给他们组合起来?接下来该学习Dockerfile,docker-compose

20190106 复习 Docker mysql

1、 以上 mysql 容器的 数据库 data 存在那里?不应该在容器里面保存动态数据!

2、如果同一套数据,使用不同版本 mysql 建立容器,会是怎样?

转载于:https://my.oschina.net/u/1440971/blog/2995514

你可能感兴趣的文章
生成自增的编号,生成订单号
查看>>
SqlSever2005 一千万条以上记录分页数据库优化经验总结【索引优化 + 代码优化】一周搞定...
查看>>
企业内部IT一体化系列之四:WEB平台 SharePoint服务配置
查看>>
ksh里三个月之外的文件移动脚本
查看>>
MSDN Windows8 中文版 下载地址
查看>>
MYSQL 中实现时间比较的方法
查看>>
支付宝担保交易接口
查看>>
深入浅出三剑客之sed必杀技一例
查看>>
django sitemap设置为https
查看>>
我的友情链接
查看>>
微信内部浏览器打开网页时提示外部浏览器打开遮罩升级版
查看>>
Go语言类型的本质
查看>>
界面主窗体,子窗体的InitializeComponent(构造函数)、Load事件执行顺序
查看>>
java导入导出Excel数据的要点记录
查看>>
汇编2——完整的例子集合
查看>>
TP缓存设计方案解析
查看>>
APIO2010 特别行动队
查看>>
Javascript语言精粹之Array常用方法分析
查看>>
leetcode 304. Range Sum Query 2D - Immutable
查看>>
Session704: Core ML 3 Framework 观后小结
查看>>