20190129修正1:mariadb容器的3306端口可以不映射到宿主机上,phpmyadmin直接关联了mariadb容器内的3306端口
目的:
- docker上运行mariadb
- docker上运行phpmyadmin
- 浏览器登陆phpmyadmin管理mariadb
过程:
一、实现docker上运行mariadb
1. docker查找mariadb镜像(联网或存在镜像库)
docker search mariadb
2. 拉取mariadb镜像,查看
docker pull docker.io/mariadb
docker images
3.运行mariadb容器
docker run --name mariadb1 -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -h mariadb1 -d --restart=always mariadb:latest
注1:–name : 容器名称,-h mariadb1:容器内主机名
注2:映射
目录映射 -v /sql/data1/:/var/lib/mysql/
端口映射 -p 3306:3306
注3:–restart=always
容器重启策略always:主机重启后容器也重启(前提:docker开机自启)
注4:-e MYSQL_ROOT_PASSWORD=123456
设置mariadb root 密码
注5:-d 容器后台运行
二、实现在docker 上运行phpmyadmin,并连接mariadb
方法1 link
–link mariadb1 指定容器名称通信
docker run --name phpmyadmin1 -e PMA_HOST=mariadb1 -p 8081:80 -h phpmyadmin1 -d --restart=always --link mariadb1 phpmyadmin/phpmyadmin:latest
在phpmyadmin1容器hosts中看到mariadb1的IP,主机名信息
注:phpmyadmin镜像运行环境参数 -e PMA_HOST=
PMA_HOST = 运行mariadb的主机名或IP
PMA_PORT=3306
PMA_USER=
PMA_PASSWORD=
方法2 docker network
创建一个docker network
docker network create net-mariadb1
查看网络
docker network ls
-
方法2 首先创建网络,再在创建mariadb和phpmyadmin容器时加入网络
docker run --name mariadb1 -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -h mariadb1 -d --restart=always --network net-mariadb1 mariadb:latest docker run --name phpmyadmin1 -e PMA_HOST=mariadb1 -p 8081:80 -h phpmyadmin1 -d --restart=always --network net-mariadb1 phpmyadmin/phpmyadmin:latest docker ps -a
完成后访问localhost:8081 成功
方法3:创建docker-compose.yml搭建
安装docker-compose
yum install docker-compose
vim docker-compose.yml
文件内容
version: "2"
services:
mariadb:
image: mariadb:latest
container_name: mariadb1
hostname: mariadb1
restart: always
ports:
- "3306:3306"
environment:
MYSQL_ROOT_PASSWORD: "123456"
networks:
- net-mariadb1
phpmyadmin:
image: phpmyadmin/phpmyadmin:latest
container_name: phpmyadmin1
hostname: phpmyadmin1
restart: always
ports:
- "8081:80"
environment:
PMA_HOST: mariadb1
networks:
- net-mariadb1
networks:
net-mariadb1:
运行
docker-compose up -d