最近在学习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交互终端关联到本地主机的标准输出上了。
本文为个人学习笔记,不对之处敬请各位看客指正,也请不喜勿喷。