购买的腾讯云服务器
CPU: 1核 |
内存: 2 G |
操作系统: CentOS 7.5 64位 |
安装前知晓关于docker的相关命令:
1、重启docker
systemctl restart docker
2、查看所有的容器包括停止的
docker ps -a
3、查看运行容器
docker ps
4、移除容器
docker rm ID
5、停止和启动容器
docker start ID 和 docker stop ID
6、重启容器
docker restart ID
首先解决IPV4不通的问题:
vim /etc/sysctl.conf
net.ipv4.ip_forward=1生效配置文件
sysctl -p查看监听端口
lsof -OnP | grep LISTEN
netstat -ntpleroute -n
docker search 镜像名(如:mysql、tomcat、redis)
第一步:拉取docker mysql(直接复制粘贴就可以)
拉取的时候如果太慢,直接去阿里云镜像网站
https://promotion.aliyun.com/ntms/act/kubernetes.html
vi /etc/docker/daemon.json
"registry-mirrors": ["https://u1qs4whp.mirror.aliyuncs.com"]
sudo systemctl daemon-reload
sudo systemctl restart docker
然后按照镜像加速器中的方法和命令重启docker进行拉取
docker pull mysql:5.7
第二步:使用下面命令,查看是否拉取到docker mysql到本地
docker images
第三步:使用mysql镜像并且密码设置为你自己想要设置的数据库密码,直接复制这句话就行
docker run -d -p 53306:3306 --name docker-mysql --restart=always --privileged=true -v /root/docker/mysql57/conf:/etc/mysql/conf.d -v /root/docker/mysql57/logs:/logs -v /root/docker/mysql57/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
然后进入到conf文件夹下 创建一个mysql.cnf的配置文件
[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
default-time_zone='+8:00'
然后保存退出,运行命令重启容器docker restart ID
docker run是启动容器的命令;
--restart=always: 配置此项后, 当 Docker 重启时,容器总是可以自动启动, 其它参数可以参考:[no,on-failure,always]
1.no为默认值,表示容器退出时,docker不自动重启容器
2.on-failure表示,若容器的退出状态非0,则docker自动重启容器,还可以指定重启次数,若超过指定次数未能启动容器则放弃:
3.always表示,只要容器退出,则docker将自动重启容器
--privileged=true : 使用该参数,container内的root拥有真正的root权限, 否则,container内的root只是外部的一个普通用户权限
--name:指定了容器的名称,方便之后进入容器的命令行
-d:d指的是在后台运行。 也可以使用-idt,i是交互式操作,t是一个终端,
-p:指在本地生成一个随机端口,用来映射mysql的3306端口
-e:设置环境变量
MYSQL_ROOT_PASSWORD=emc123123:指定了mysql的root密码
mysql:5.7:指运行mysql镜像及tag
-v :表示挂载, 持久化存储的关键所在
第五步:连接docker mysql
docker exec -it docker-mysql bash
docker exec -it 79041dfb4aaf bash
也可以使用容器编号进入容器
mysql -uroot -p
输入密码连接成功如图所示
第六步:调试和Mysql 工具进行连接,登录到mysql以后输入如下命令
select host, user,plugin,authentication_string from mysql.user;
grant all privileges on *.* to root@"%" identified by "password" with grant option;
flush privileges;
看到这里退出
查看端口状态
netstat -anp | grep 3306
查看防火墙状态
firewall-cmd --state
关闭禁用启动查看防火墙状态
systemctl stop firewalld.servicesystemctl disable firewalld.service
systemctl start firewalld.service
firewall-cmd --state打开3306端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
重载防火墙
firewall-cmd --reload
查看80端口是否打开
firewall-cmd --query-port=80/tcp
打开80端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --query-port=3306/tcp
firewall-cmd --zone=public --add-port=80/tcp --permanent
到此已经打开需要的端口,然后可以用本地工具连接腾讯云上面docker下安装的mysql5.7了
如果还有问题没解决试试以下方法:
这样可以解决问题:
vim /etc/sysctl.conf
net.ipv4.ip_forward=1# 生效配置文件
sysctl -pvi /etc/docker/daemon.json
"registry-mirrors": ["https://u1qs4whp.mirror.aliyuncs.com"]
sudo systemctl daemon-reload
sudo systemctl restart docker
docker pull mysql:5.7
sysctl net.ipv6.bindv6only
方法1:编辑/etc/sysctl.conf文件,添加如下两行到文件vi /etc/sysctl.conf
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv4.ip_forward = 1
# 生效配置文件
sysctl -p
重启网络:执行命令:systemctl restart network
route -n
查看监听端口
lsof -OnP | grep LISTEN
netstat -ntple