docker使用系列之-(2).安装mysql

打开容器镜像官网

2.3.1 镜像官网搜索 mysql

2.3.2 选择tags安装mysql镜像

选择版本: 5.7

sudo docker pull mysql:5.7

2.3.3 安装完之后检查已安装镜像

sudo docker images

输出:

[vagrant@localhost ~]$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mysql 5.7 8679ced16d20 34 hours ago 448MB

2.3.4 创建实例并启动:

sudo docker run -p 3306:3306 --name mysql \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=mypasswd \
-d mysql:5.7

参数说明:

-p 3306:3306 将容器的3306端口映射到主机的3306端口;
–name mysql 给当前启动的容器取名叫 mysql
-v /mydata/mysql/log:/var/log/mysql 将日志文件夹挂载到主机;
-v /mydata/mysql/data:/var/lib/mysql 将数据文件夹挂载到主机;
-v /mydata/mysql/conf:/etc/mysql 将配置文件挂载到主机;
-e MYSQL_ROOT_PASSWORD=mypasswd -e设置参数, 初始化root用户的密码
-d 以后台方式运行(daemon) -v 都是目录挂载(挂在后在linux可以直接修改就会同步到容器内部-相当于快捷方式);
mysql:5.7 指定用哪个镜像启动的这个容器

2.3.5 查看docker正在运行中的容器:

[root@localhost vagrant]# docker ps
CONTAINER ID    IMAGE        COMMAND                    CREATED            STATUS            PORTS                                NAMES
1f582c4433c5    mysql:5.7    "docker-entrypoint.s…"    3 minutes ago    Up 3 minutes    0.0.0.0:3306->3306/tcp, 33060/tcp   mysql

image-20200724144634590

2.3.6 进入容器内部查看容器环境:

2.3.6.1 执行命令docker exec -it:

-it = interactive model 交互模式

docker exec -it 1f582c4433c5 /bin/bash 或者 docker exec -it mysql /bin/bash

2.3.6.2 命令说明:

docker exec -it 表示进入交互模式; 后面跟容器id或者name都可以;

[root@localhost vagrant]# docker exec -it 1f582c4433c5 /bin/bash
root@1f582c4433c5:/# 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  var
root@1f582c4433c5:/# exit
exit
[root@localhost vagrant]# docker exec -it mysql /bin/bash
root@1f582c4433c5:/# 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  var
root@1f582c4433c5:/#

2.3.7 docker容器的说明

  1. docker run 一次就启动一个独立的容器;

  2. 容器之间是互相隔离的;

  3. 每一个容器都是一个完整的运行环境;

    见上面 2.3.6的内容: docker exec -it 进入交互模式, 可以看到每个容器内部都是独立的linux, 都有自己独立的目录结构;

image.png

2.3.8 扩展-修改配置等

2.3.8.1 增加my.cnf配置文件

安装docker容器完成后, linux就生成了映射目录 /mydata/mysql 下面有3个目录 log data conf, 现在进入 /mydata/mysql/conf

cd /mydata/mysql/conf

然后 vi my.cnf :wq保存

[client]
default-character-set=utf8

[mysql]
default-character-set=utf8

[mysqld]
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve

2.3.8.2 修改完配置文件,重启docker容器mysql

docker restart mysql

重启后即可使用mysql


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 hi@niewj.com

×

喜欢就点赞,疼爱就打赏