一、Docker的安装和配置
1.1 去docker官网,选择Developers–—》Docs
1.2 选择Download and Install
1.3 选择 Linux
1.4 选择centos
1.5 依次根据里面提示的内容进行安装和启动
1.5.1 先卸载安装过的旧版本
sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine
1.5.2 安装一些依赖的包
sudo yum install -y yum-utils
sudo yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo
1.5.3 安装docker引擎
sudo yum install docker-ce docker-ce-cli containerd.io
1.5.4 启动docker
sudo systemctl start docker
1.5.5 设置docker开机自启动
sudo systemctl enable docker
1.5.6 配置docker的阿里云加速启动
sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://xp4abd48.mirror.aliyuncs.com"] } EOF sudo systemctl daemon-reload sudo systemctl restart docker
把上述的复制粘贴到自己的服务器上,就可以让自己的docker拥有阿里云的加速镜像服务了。
二、Docker拉取镜像和启动容器
2.1 拉取mysql5.7和启动mysql5.7容器
2.1.1 先拉取,再用docker images检查是否成功
docker pull mysql:5.7
启动mysql
sudo docker run -p 3307:3306 --name mysql \ -v /mydata/mysql/log:/var/log/mysql \ -v /mydata/mysql/data:/var/lib/mysql \ -v /mydata/mysql/conf:/etc/mysql \ -e MYSQL_ROOT_PASSWORD=root \ -d mysql:5.7
第一行命令:把主机的3306端口映射到了容器的3306端口
第二行命令:把容器的log日志目录/var/log/mysql挂载到了主机的/mydata/mysql/log
第三行命令:把容器的mysql存储的数据/var/lib/mysql挂载到了主机的/mydata/mysql/data
第四行命令:把容器的配置文件/etc/mysql 挂载到了主机的/mydata/mysql/conf
第五行命令:更改mysql的密码
第六行命令:选取容器的镜像
阿里云服务器如果上述完成以后使用命令docker ps 看不到 镜像启动 可以参照这篇博文 [https://blog.csdn.net/qq_41999034/article/details/106162366]
这个就是网上解决阿里云服务器使用docker 运行mysql的时候遇到的问题以及解决办法
2.1.2 修改mysql的配置文件
cd /mydata/ ls cd mysql/ cd conf/ sudo vim my.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 skip-name-resolve
然后重新启动mysql
docker restart mysql
在这里一般阿里云服务器会遇到mysql不让远程连接,因此要设置
设置mysql的配置文件,先设置跳过密码登陆
skip-grant-tables
设置完了之后要重启
docker restart mysql
然后以交互式的方式进入
docker exec -it mysql /bin/bash
登陆更改
mysql -u root -p
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION; • 1
FLUSH PRIVILEGES; exit;
2.2 拉取redis镜像和启动redis
docker pull redis
mkdir mkdir -p /mydata/redis/conf touch /mydata/redis/conf/redis.conf 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的配置文件/mydata/redis/conf/redis.conf中去配置数据库持久化,内容为
appendonly yes
操作步骤
cd /mydata/redis cd conf/ vim redis.conf docker restart redis docker exec -it redis redis-cli