先用VM安装好Centos8.5,可以选择安装迷你版,我安装的是UI版。
然后用MobaXterm_Portable_v23.0_cn连上去,互访成功就可以往下操作。
1. 修改文件:就是要把之前的mirror替换成现在的vault
cd /etc/yum.repos.d/
sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*
sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*
yum clean all && yum makecache
yum update -y
2、如果以前有docker,可以先移除,
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
3、安装所须依赖
sudo yum install -y yum-utils \device-mapper-persistent-data \lvm2
4、设置稳定的仓库
清华大学源:
yum-config-manager --add-repo https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo
阿里云:
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
5、安装 Docker Engine-Community
yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin
安装过程中会出现两次:Is this ok [y/N]: y ,都输入y,然后按Enter键
如果提示您接受 GPG 密钥,请选是
如果上面报错:说什么runc版本低了就执行它:sudo dnf install runc --allowerasing
再执行yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin,centos7.9没有报错,7.7报的错可就难处理多了。
设置开机启动
systemctl enable docker.service
启动 Docker
systemctl start docker
docker --version查看版本,查看它是否启动了 ps -ef | grep docker
systemctl list-units --type=service
创建目录
mkdir -p /etc/docker
创建文件
touch /etc/docker/daemon.json
直接用m打开,改。
加入,我找的有点多,重复的也有可能。
{
"registry-mirrors": [
"http://www.docker-cn.com/registry-mirror",
"https://docker.unsee.tech",
"https://dockerpull.org",
"https://docker.1panel.live",
"https://dockerhub.icu",
"https://hub-mirror.c.163.com",
"https://mirrors.tencent.com",
"https://docker.m.daocloud.io/",
"https://huecker.io/",
"https://dockerhub.timeweb.cloud",
"https://noohub.ru/",
"https://dockerproxy.com",
"https://docker.mirrors.ustc.edu.cn",
"https://docker.nju.edu.cn",
"https://xx4bwyg2.mirror.aliyuncs.com",
"http://f1361db2.m.daocloud.io",
"https://registry.docker-cn.com",
"http://hub-mirror.c.163.com",
"https://docker.mirrors.ustc.edu.cn"
]
}
sudo systemctl daemon-reload && sudo systemctl restart docke
拉报镜像
docker pull redis
查看镜像
docker images
安装redis
mkdir -p /mydata/redis/conf
touch /mydata/redis/conf/redis.conf
在redis.conf中输入内容,直接用打开改。也可以用vi编辑器操作。
添加如下代码,密码是6个1
protected-mode no
appendonly yes
requirepass 111111
启动redis
docker run -p 6379:6379 --name redis -v /mydata/redis/data:/data \
-v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf \
-d redis redis-server /etc/redis/redis.conf
查看redis
docker ps -a
进入redis客户端
docker exec -it redis redis-cli
执行set test redis,遇到了如下提示不用慌,密码就是上面配置的6个1
测试,没有问题
接下来,我们用windows下的redis客户工具连接,用M或者R都可以。
,我这次用的是R。
连接成功是这样的
此时,总算完成了。
接下来,我们安装JDK及MYSQL还有NGINX.
把它们拉取下来:以下命令今天用起来挝快哦~~~
docker pull kdvolder/jdk8
docker pull mysql:8
docker pull nginx
查看镜像
接下来,我们创建容器id,上面的用了宝塔安装,太慢了?用了手动处理。
安装JDK
docker run -di --name=jdk1.8 kdvolder/jdk8
查看是否启动
进入容器查看版本
docker exec -it jdk1.8 /bin/bash
java -version
发现已经安装好了。
安装MySQL。
先做准备工作:
mkdir -p /mydata/mysql/data/
mkdir -p /mydata/mysql/config/
mkdir -p /mydata/mysql/logs/error.log
touch /mydata/mysql/config/my.cnf
my.cnf文件内容
[mysqld]
basedir=/mydata/mysql/
port=3306
# MySQL 数据存储路径
datadir=/mydata/mysql/data/
# MySQL 错误日志路径
log-error=/mydata/mysql/logs/error.log
# 启用远程连接
bind-address=0.0.0.0
# 设置字符集为 utf8mb4
character-set-server=utf8mb4
# 默认排序规则为 utf8mb4_0900_ai_ci,若需兼容 MySQL 5.7 可使用 utf8mb4_unicode_ci
collation-server=utf8mb4_0900_ai_ci
编写可执行的脚本(好玩)
touch /mydata/mysql/startMysql.sh
此命令必须是一行
docker run -d \--privileged=true \--name mysql8 \-p 3306:3306 \--restart=always \-v /mydata/mysql/data:/var/lib/mysql \-v /mydata/mysql/config/my.cnf:/etc/mysql/my.cnf \-e MYSQL_ROOT_PASSWORD=111111 mysql:8 \
-p 3306:3306:将容器的 3306 端口映射到主机的 3306 端口。
-v -v $PWD/conf:/etc/mysql/conf.d:将主机当前目录下的 conf/my.cnf 挂载到容器的 /etc/mysql/my.cnf。
-v $PWD/logs:/logs:将主机当前目录下的 logs 目录挂载到容器的 /logs。
-v $PWD/data:/var/lib/mysql :将主机当前目录下的data目录挂载到容器的 /var/lib/mysql 。
-e MYSQL_ROOT_PASSWORD=111111:初始化 root 用户的密码。
授权
chmod -R 777 /mydata/mysql/startMysql.sh
chmod -R 777 /mydata/mysql/data
chmod -R 777 /mydata/mysql/logs
chmod -R 777 /mydata/mysql/config
chmod -R 777 /mydata/mysql/logs/error.log
执行sh文件
cd /mydata/mysql
./startMysql.sh
查看日志
docker logs mysql的容器id
查看docker中的容器
发现mysql启动了,期间报了好多错,通过查看日志解决了。不要慌。
假如此时我们利用远程连接,居然成功了。怎么不要我配置权限?因为
mysql8安装后 默认密码加密的插件不是mysql_native_password,所以之前老版本的mysql客户端工具不能直接使用密码连接必须升级到最新版本,或者修改mysql8密码加密的插件为mysql_native_password,我的比较新
还不如升级,不然还有下面操作:
#进入容器:env LANG=C.UTF-8 避免容器中显示中文乱码
docker exec -it mysql-8 env LANG=C.UTF-8 /bin/bash
#进入容器内的mysql命令行
mysql -uroot -p
#使用mysql_native_password密码插件创建新的账户root % 并使用它加密密码
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';