最近在学习docker和mysql,把学习环境的搭建过程做个简单记录,过程参考官网资料、大神blog及某度。本文纯做个人学习笔记。

先推荐两篇文章,对于新手学习有莫大助益

http://www.jsdaima.com/blog/177.html

http://dockone.io/article/783


一、工具及环境:

1. vmware workstation pro 15

2. centos 7.6

3. docker 最近版

4. mysql 8

5. xshell


二、虚机系统环境

使用vmware workstation安装centos虚拟机,过程不再赘述,网络我用的是桥接模式,安装过程中新建了docker用户。

1.虚拟机基本配置:

添加docker用户sudo权限

su #切换成root

vi /etc/sudoers

给docker添加全部权限

su docker #切回docker

修改主机名

sudo hostnamectl set-hostname Docker

修改IP

sudo vi /etc/sysconfig/network-scripts/ifcfg-ens33

重启网络服务

sudo systemctl restart network.service

使用xshell通过SSH连接到虚机

安装wget工具(系统安装时用的安装包用的是默认)

sudo yum install -y wget

更新yum源(阿里云)

cd /etc/yum.repos.d/

sudo mkdir bak ; sudo mv Cent* bak

sudo wget -O CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

sudo yum clean all #清理缓存

sudo yum makecache #建立新源的缓存元数据

sudo yum update #更新系统


二、安装docker

官网的get started https://docs.docker.com/get-started/,花点时间看看对于新手菜鸟有很大帮助

想直接开始的 https://docs.docker.com/install/linux/docker-ce/centos/

题外话:建议新手学习新技术先从官网开始,不要上来就是找各种教程快餐,不是不可以,而是难以系统性学习。

三种方式安装:yum、手动安装rpm包、安装脚本,我选择yum

添加docker yum源(相比更新centos yum,这次换一种方式使用yum套件工具做,其实原理一样)

sudo yum install -y yum-utils device-mapper-persistent-data lvm2 #安装yum套件工具,为了使用yum-config-manager命令

以下两步二选一

sudo yum-config-manager –-add-repo https://download.docker.com/linux/centos/docker-ce.repo #添加官方docker repo 不推荐 原因都懂,太慢

sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo #添加国内镜像(阿里云)推荐!

sudo yum makecache fast #建立新源的缓存元数据

安装docker

sudo yum install –y docker-ce docker-ce-cli containerd.io

启动docker服务

sudo systemctl start docker

(可选)设置自启动

sudo systemctl enable docker

验证安装

sudo docker run hello-world #这条命令实际上执行了从官方docker hub下载hello-world这个镜像并让他运行在容器中

正常的结果如下

如果出错了也不要紧,多尝试几次,毕竟官方的docker hub不是那么容易访问的。如果实在不行,下面我们做一下镜像拉取的加速


三、配置docker hub国内镜像加速器

关于这部分官网当然没有,直接某度,有很多资料.我们用阿里云的加速(万能的阿里云)

1 登录阿里开发者平台

2 https://dev.aliyun.com/search.html

免费注册一个账号,本土的就是人性化,账号都可以用中文

登陆后,右上角点击管理控制台进入

按提示操作,全中文就不赘述了(验证docker客户端版本使用docker version)

sudo mkdir -p /etc/docker

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

{

"registry-mirrors": ["https://nnfr32vp.mirror.aliyuncs.com"]

}

EOF

sudo systemctl daemon-reload

sudo systemctl restart docker

再次测试hello-world,如何?是不是感觉像坐了火箭。


三、安装配置mysql

mysql官方指导:https://dev.mysql.com/doc/mysql-linuxunix-excerpt/5.6/en/docker-mysql-getting-started.html

查找mysql镜像

sudo docker search mysql

如果想拉取指定版本的镜像,需要手动去查找tag标签,https://hub.docker.com/r/mysql/mysql-server/tags/,我用最新版的所以没有指定tag

sudo docker pull mysql

sudo docker images –a

运行mysql镜像生成容器,做简单初始化

方法一:

sudo yum run \ #docker 容器运行命令,实际上是 docker create 和 docker start的命令集合

--name mysql.zz \ #指定生成的容器名称为mysql.zz(container ID和name都可以唯一代表一个容器 )

-p 12345:3306 \ #指定将容器内使用的3306端口映射至本地主机的12345端口

-e MYSQL_ROOT_PASSWORD=1QAZ@wsx \ #这个参数为root设置显式的设置密码

-d mysql #-d 是后台运行参数,maysql是刚拉取的镜像名称

方法二:

docker run --name mysql.zz  \                                                       #运行容器

-e MYSQL_RANDOM_ROOT_PASSWORD=true  \          #- e指定运行参数,这里表示使用随机root密码

-p 12345:3306  \                                                                  #映射端口

-d mysql                                                                                 #后台运行 镜像名

返回一个容器ID,可以用docker ps查看

sudo docker logs mysql.zz 2>&1 | grep PASSWORD                #docker logs 显示容器内部标准输出,这里把标准错误输出到标准输出并过滤出随机生成的密码

sudo docker exec -it mysql.zz mysql -uroot –p                          #docker exec 在容器内部执行mysql 客户端命令,-i  允许你对容器内的标准输入 (STDIN) 进行交互,-t 在新容器内指定一个伪终端或终端

输入root密码(方法一)或随机密码(方法二)即可将容器内的client交互终端关联到本地主机的标准输出上了。

本文为个人学习笔记,不对之处敬请各位看客指正,也请不喜勿喷。