选择基镜像
基镜像使用dokcer hub官方提供的redis,https://hub.docker.com/_/mysql/docker pull mysql:5.7.23
docker tag mysql:5.7.23 10.240.4.159/app/mysql:5.7.23
docker push 10.240.4.159/app/mysql:5.7.23
在RANCHER中启用密文支持
为了在容器中使用密文,你要先部署Rancher Secrets
服务。你可以把这个服务加到环境模版中,在添加该服务之后部署的新环境里都会含有Rancher Secrets服务。你也可以直接通过应用商店部署该服务。如果你想在现有的环境中部署Rancher Secrets服务,你可以通过应用商店 -> 官方认证,然后搜索Rancher Secrets找到Rancher Secrets服务。如果不部署Rancher Secrets服务的话,你仅仅可以创建密文,但是不能在你的容器里使用这些密文。
在使用该密文的容器中:这个卷被挂载在/run/secrets/.
在运行使用该密文的容器所在的主机上:这个卷被挂载在/var/lib/rancher/volumes/rancher-secrets/.
官方文档:https://rancher.com/docs/rancher/v1.6/zh/cattle/secrets/
制作带SSH镜像
mkdir -p /root/docker_build/mysql-ssh mkdir -p /docker_mnt/mysql/data mkdir -p /docker_mnt/mysql/conf.d mkdir -p /docker_mnt/mysql//mysql.conf.d cd /root/docker_build/mysql-ssh cp /usr/share/zoneinfo/Asia/Shanghai . # docker-entrypoint.sh这个文件需要先用基镜像启动容器,然后拷贝出来 docker cp ff1fcc4284a5:/usr/local/bin/docker-entrypoint.sh . # docker-entrypoint.sh 是原mysql镜像内文件,添加ssh运行命令 vi docker-entrypoint.sh #------------------------------------------------------------------------ /usr/sbin/sshd -D & #------------------------------------------------------------------------ # debian 9.x (stretch) 阿里云源 vi sources.list #------------------------------------------------------------------------ deb http://mirrors.aliyun.com/debian/ stretch main non-free contrib deb-src http://mirrors.aliyun.com/debian/ stretch main non-free contrib deb http://mirrors.aliyun.com/debian-security stretch/updates main deb-src http://mirrors.aliyun.com/debian-security stretch/updates main deb http://mirrors.aliyun.com/debian/ stretch-updates main non-free contrib deb-src http://mirrors.aliyun.com/debian/ stretch-updates main non-free contrib deb http://mirrors.aliyun.com/debian/ stretch-backports main non-free contrib deb-src http://mirrors.aliyun.com/debian/ stretch-backports main non-free contrib #------------------------------------------------------------------------ vi Dockerfile #------------------------------------------------------------------------ FROM 10.240.4.159/app/mysql:5.7.23 ADD Shanghai /etc/localtime ADD sources.list /etc/apt/sources.list RUN apt update \ && apt -y upgrade \ && apt -y install vim \ && apt -y install openssh-server \ && mkdir /run/sshd \ && sed -i "s/#PermitRootLogin.*/PermitRootLogin yes/g" /etc/ssh/sshd_config \ && echo 'root:ydgw.cn' | chpasswd \ && echo "export LANG=C.UTF-8" >> /etc/profile \ && echo "alias ll='ls -l'" >> /etc/profile \ && rm -rf /var/lib/apt/lists/* ADD docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"] CMD ["mysqld"] #------------------------------------------------------------------------ docker build -t 10.240.4.159/app/mysql:5.7.23-ssh . docker push 10.240.4.159/app/mysql:5.7.23-ssh |
配置文件持久化
# 在宿主机上执行 cd /docker_mnt/mysql/conf.d docker cp d7ecc1c9a545:/etc/mysql/conf.d/docker.cnf . docker cp d7ecc1c9a545:/etc/mysql/conf.d/mysql.cnf . docker cp d7ecc1c9a545:/etc/mysql/conf.d/mysqldump.cnf . cd /docker_mnt/mysql/mysql.conf.d docker cp d7ecc1c9a545:/etc/mysql/mysql.conf.d/mysqld.cnf . |
部署REDIS服务
- 登陆Rancher(1.6.18),编排工具用的是默认的Cattle
- 应用 - 用户 - 添加应用 - 名称:[Mysql] - 创建
- 添加服务 - 在添加服务页面添写配置如下信息 - 创建
名称: mysql 选择镜像: 10.240.4.159/app/mysql:5.7.23-ssh 端口映射: 3306:3306/tcp 160020:22/tcp 环境变量:MYSQL_ROOT_PASSWORD_FILE=/run/secrets/db_passwd 卷 - 添加卷: /docker_mnt/mysql/data:/var/lib/mysql /docker_mnt/mysql/conf.d:/etc/mysql/conf.d /docker_mnt/mysql/mysql.conf.d:/etc/mysql/mysql.conf.d 网络 - 主机名: mysql 密文:选择上面添加的密码,映射名称: db_passwd 调度 - 在指定主机上运行全部容器: docker160