安装
dockers中本来就安装了centos7j镜像,如下:
所以直接生成centos7容器,后面由于需要将cnetos容器的22端口和3306端口映射出去,以实现通过xshell操作centos和sqlyog连接centos里的mysql,将Docker容器的22端口绑定到主机的50022端口上,将Docker容器的3306端口绑定到主机的33010端口上
绑定前确保50022和33010端口没有被占用,查看端口占用
netstat -ano|findstr "端口号"
#杀死占用端口
tasklist|findstr "15984"
然后实例化centos7
docker run -itd -p 50022:22 -p 33010:3306 --privileged --name myCentos centos:7 /usr/sbin/init
参数解析:
- -d ——后台运行容器并返回容器ID
- -i ——交互模式运行容器,通常与 -t 同时使用
- -t ——为容器重新分配一个伪输入终端,通常与 -i 同时使用
- –name ——为容器指定一个名称,此例为容器指定名为centos7
- –privileged: 可以使container内的root拥有真正的root权限
-d: 后台运行容器,并返回容器ID;
-i: 以交互模式运行容器,通常与 -t 同时使用;
-p: 指定端口映射,格式为:主机(宿主)端口:容器端口
-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用
连接(开启)容器
docker exec -it mySqlCentos /bin/bash
# 查看CentOS系统信息
cat /etc/os-release
至此,CentOS7的系统已经跑起来了,要退出只需在终端键入exit回车。如果要停止容器,在终端执行docker container stop 容器ID
即可;运行为docker container start 容器ID
;要移除容器则执行docker container rm 容器ID
。
容器中安装jdk
查看jdk版本
yum search java|grep jdk
安装JDK
yum install -y java-1.8.0-openjdk
安装sshd
// 安装网络工具,可以使用ifconfig查看网卡ip信息
yum -y install net-tools
// 安装ssh服务
yum -y install openssh-server
// 需要的话,安装ssh客户端
yum -y install openssh-clients
// 需要的话,安装passwd,修改root用户密码,这里就不细说了
yum -y install passwd
//重置密码 123456
echo 123456 |passwd --stdin root
将myCentos制作成镜像
docker commit myCentos centos-jdk:8
启动ssh服务
要进入到myCentos环境
systemctl start sshd
使用Xshell连接
localhost是咱们docker宿主机的ip,启动docker时映射的端口号是50022,所以需要使用这个端口连接ssh服务,点击连接按钮后再弹出的窗口输入你之前设置的密码,即可完成连接。
centos中启动MySQL
systemctl start mysqld
查看启动状态
systemctl status mysqld
ctrl+c 退出 找回密码
grep "password" /var/log/mysqld.log
ctrl+insert 复制 密码
shift+insert粘贴 密码
输入密码:
mysql -u root -p
密码输入是不显示的
修改密码策略
set global validate_password.policy=0;
set global validate_password.length=4;
#展示密码制定策略
show variables like 'validate_password%';
#原因:MySQL8.0开始将授权和创建用户分开了,分开执行即可
创建新用户并设置密码
create user 'seckill'@'%' identified by '123456';
授权
grant all privileges on *.* to 'seckill'@'%';
flush privileges;
localhost是咱们docker宿主机的ip,启动docker时映射的端口号是33010,所以需要使用这个端口连接mysql服务,点击连接按钮后再弹出的窗口输入你之前设置的密码,即可完成连接。