docker安装mysql并配置远程连接

1.centos7 安装docker

https://docs.docker.com/install/linux/docker-ce/centos/

2.docker 配置阿里云镜像加速

a.注册一个属于自己的阿里云账户(可复用淘宝账号)

b.获得加速器地址连接:

    登陆阿里云开发者平台

    获取加速器地址  https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors   

配置镜像加速器

针对Docker客户端版本大于 1.10.0 的用户

您可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器

sudo mkdir -p /etc/docker

sudo tee /etc/docker/daemon.json <<-'EOF'

{ "registry-mirrors": ["https://xxxxxx.mirror.aliyuncs.com"] } EOF

sudo systemctl daemon-reload

sudo systemctl restart docker

3.配置docker服务开机自动启动

docker 服务器开机自启动:

1.systemctl is-enabled docker.service  检查服务是否开机启动

2.systemctl enable docker.service  将服务配置成开机启动

3.systemctl start docker.service  启动服务

 

systemctl  相关其他命令:

systemctl disable docker.service 禁止开机启动

systemctl stop docker.service  停止
systemctl restart docker.service  重启

------------------------------------------------------

容器开机启动:

创建容器时候指定restart参数:

docker run    -it -p 6379:6379 --restart=always  --name redis -d redis

对已经创建的容器用docker update 更新:

docker update --restart=always  xxx

 

--restart具体参数值详细信息 :

no - 容器退出时,不重启容器
on-failure - 只有在非0状态退出时才从新启动容器
always - 无论退出状态是如何,都重启容器


docker运行hello-world

>docker run hello-world


 

使用docker安装mysql

1.搜索mysql的docker镜像

>docker search mysql

2.拉取mysql   docker pull mysql[:TAG]   TAG可选,不选默认选择latest   https://hub.docker.com/_/mysql?tab=tags

>docker pull mysql

3.列出本机镜像

>docker images

4.根据mysql镜像创建容器并运行

>docker run --name centos7-mysql -e MYSQL_ROOT_PASSWORD=123456 -P -d mysql

返回容器id

5.查看运行中的容器

>docker ps

6.查看具体容器内部细节

>docker inspect centos7-mysql

返回一个json串

FeHelper-20191112173841.json

7.连接mysql容器,已交互命令式连接

>docker exec -it centos7-mysql /bin/bash

8.连接mysql数据库

>mysql -hlocalhost -uroot -p

mysql>show databases;

9.远程连接mysql数据库

a.设置mysql远程权限

mysql>ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';

b.刷新权限

mysql>flush privileges;

c.navicat测试连接


在运行以上方式创建的mysql容器时,产生的数据文件是在容器内部,一旦容器删除,那么数据也就丢失,因此,下面创建容器将使用数据卷。使用数据卷有两种方式:DockerFile内添加或者命令添加。

DockerFile内添加:

1.创建DockerFile文件

# volume mysql
FROM centos
VOLUME ["/mysql/config","/mysql/data"]
CMD echo "finished,--------success1"
CMD /bin/bash

2.docker build 根据DockerFile创建镜像

>docker build -f /home/manage/docker/volume/mysql/mysqlvolume -t mysql/volume .

3.查看已有docker 镜像

>docker images

4.run 上面的镜像创建容器

>docker run -it b2c2f12085d4  /bin/bash

5.在容器内创建文件

6.在主机上找出对应容器卷的文件路径

a.>docker inspect b141535f7860

b.在主机上找到对应的文件

c.进入到容器查看相应目录

命令添加:

>docker run --name centos7-mysql -v /home/manage/mysql/config:/etc/mysql/conf.d -v /home/manage/mysql/data:/var/lib/mysql  --privileged=true -e MYSQL_ROOT_PASSWORD=123456 -P -d mysql --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci

 


安装docker-compose

GitHub源

sudo curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

sudo chmod +x /usr/local/bin/docker-compose

 

Daocloud镜像

curl -L https://get.daocloud.io/docker/compose/releases/download/1.22.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

chmod +x /usr/local/bin/docker-compose

 


 

修改已经创建的docker容器的端口映射

 

对于已经创建的docker容器,如何修改映射的端口号呢?可以参考如下的操作步骤

 

0)  docker container list –all

 

结果中的CONTAINER ID列为容器id

 

1)  docker inspect <容器id>   |  grep Id

 

查看容器hash,<容器id>由步骤0)获得

 

2)  docker stop <容器id>

 

停止运行中的容器

 

3) vim /var/lib/docker/containers/[容器hash]/hostconfig.json,(有人提到,如果config.v2.json里面也记录了端口,也要修改)

 

编辑容器配置文件,<容器hash>由步骤1)获得

 

修改PortBindings参数配置,宿主机8001端口映射容器80端口示例:

 

“PortBindings”:{“80/tcp”:[{“HostIp”:””,”HostPort”:”8001″}]},”

 

4) systemctl restart docker

 

重新启动docker引擎

 

5)docker start <容器id>

 

重新启动docker容器

 

posted @ 2019-11-12 17:45  margo  阅读(1192)  评论(0编辑  收藏  举报