docker 部署mysql_docker部署mysql8.0.13实践

参考官方文档

获取镜像

docker pull mysql:8.0.13 //:8.0.13 为版本标签也可使用 docker pull mysql 获取最新版本

查看获取的镜像

docker images

显示:

wt-001% docker image ls

REPOSITORY TAG IMAGE ID CREATED SIZE

redis latest 5d2989ac9711 2 weeks ago 95MB

centos 7 1e1148e4cc2c 5 weeks ago 202MB

mysql latest f991c20cb508 2 months ago 486MB

上面一行 redis 就是

创建数据卷进行数据持久化

在启动容器之前,我先创建一个数据卷来进行持久化,当然也可以直接-v进行指定,我这里就将数据卷交给docker进行管理:

docker volume create mysql

查看创建的volume:

docker volume ls

显示:

wt-001% docker volume ls

DRIVER VOLUME NAME

local 04ed2856cb9db6f73cb187094939fc733c17a98501350cec3207e64ff0bc67af

local mysql

local redis

最后一个 mysql 就是

启动容器

docker container run -p 3306:3306 --restart=always --mount source=mysql,destination=/var/lib/mysql -v /etc/localtime:/etc/localtime --name mysql -d mysql -e MYSQL_ROOT_PASSWORD=my-secret

注意:

如果在运行 docker container run XXXX 容器时没有设置--restart=always选项,则在重新启动系统后,这些容器将不会自动启动。

命令说明:

1.docker container run :启动一个容器并运行。以前版本直接用docker run,后来我估计是为了更细分职责,docker添加了manager command,即docker container,docker image等等。这样符合了模块化的思想,职责更明确(个人想法)。

2. -p 3306:3306 :宿主机的3306端口与容器的3306端口进行绑定。这样外部可以通过访问宿主机的3306端口进而访问到容器中的3306端口。

3. --mount source=mysql,destination=/var/lib/mysql :数据卷进行绑定。source是指的上面我们在宿主机创建出来的volume,destination即我们要与容器中的哪个数据卷进行绑定。当然绑定数据卷还可以用-v 宿主机数据卷:容器数据卷进行绑定。

4. -v /etc/localtime:/etc/localtime :设定容器的时间与宿主机保持一致。

5. --name mysql :设置容器的名称mysql。注意:容器名称是唯一的。

6. -d mysql :告诉容器在后台运行 mysql。

-e MYSQL_ROOT_PASSWORD=my-secret: 此变量是必需的,指定将为MySQL root超级用户帐户设置的密码。在上面的例子中,它被设置为my-secret

在容器中登录 mysql

docker container exec -it mysql bash

命令说明:

docker container exec 进入容器

-t 让docker分配一个伪终端,并绑定到容器的标准输入上

-i 让容器的标准输入保持打开

mysql 是容器的名字

这时你会进入容器的终端界面,启动mysql的连接命令即可

连接 mysql

root@2e99c3e5b27b: mysql -h0.0.0.0 -P3306 -uroot -p

Enter password:

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connection id is 8

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>

获取运行mysql容器IP

wt-001% docker container port mysql

3306/tcp -> 0.0.0.0:3306

则此时redis容器IP地址为:0.0.0.0

远程登陆redis

49f7e46cf4c6

image.png

49f7e46cf4c6

image.png

49f7e46cf4c6

image.png

如上图连接成功

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值