首页 > 数据库技术 > 详细

专职DBA-基于Dcoker环境初始化三台虚拟机

时间:2021-02-14 09:57:23      阅读:53      评论:0      收藏:0      [点我收藏+]
-- 专职DBA-基于Dcoker环境初始化三台虚拟机
-- 请提前安装好Docker环境。
作者:周万春
微信:lovemysql3306


-- 构建CentOS-SSH系统镜像
[root@mysql-host1 ~]# cd ./docker_images/Dockerfile/system/zhouwanchun-centos-ssh/


[root@mysql-host1 ~/docker_images/Dockerfile/system/zhouwanchun-centos-ssh]# cat Dockerfile
# Docker for CentOS
# Base image
FROM centos:7.9.2009
# Who
MAINTAINER zhouwanchun zhou_wanchun@163.com
# EPEL
RUN rpm -ivh http://mirrors.aliyun.com/epel/epel-release-latest-7.noarch.rpm
# Base pkg
RUN yum install -y openssl openssh-clients openssh-server openssl-devel supervisor sudo
RUN yum -y install bash-completion bash-completion-extras                    vim vim-enhanced sudo                    iproute net-tools traceroute wget git lrzsz bind-utils                    screen tmux tree lsof telnet dos2unix                    mtr nc nmap tcpdump                    ntp ntpdate                    gcc gcc-c++ glibc make zlib-devel ncurses-devel libaio-devel                    tar zip unzip pigz gzip                    sysstat perf htop iftop iotop nethogs ps_mem psmisc iptraf dstat numactl bc                    OpenIPMI-tools openssl-devel                    xorg-x11-server-utils xorg-x11-utils xorg-x11-xauth                    httpd-tools sshpass     && yum clean all

# For sshd
RUN ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
RUN ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key
RUN ssh-keygen -A -t dsa -f /etc/ssh/ssh_host_dsa_key
# Set root password
RUN echo "root:mysql" | chpasswd
# Supervisord config
ADD supervisord.conf /etc/supervisord.conf
ADD sshd.ini /etc/supervisord.d/sshd.ini
# Outside port
EXPOSE 22
# Supervisord start
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisord.conf"]


-- supervisor主配置文件的变更只需要修改nodaemon=true
[root@mysql-host1 ~/docker_images/Dockerfile/system/zhouwanchun-centos-ssh]# cat supervisord.conf | egrep -v "^;|^$"
[unix_http_server]
file=/var/run/supervisor/supervisor.sock   ; (the path to the socket file)
[supervisord]
logfile=/var/log/supervisor/supervisord.log  ; (main log file;default $CWD/supervisord.log)
logfile_maxbytes=50MB       ; (max main logfile bytes b4 rotation;default 50MB)
logfile_backups=10          ; (num of main logfile rotation backups;default 10)
loglevel=info               ; (log level;default info; others: debug,warn,trace)
pidfile=/var/run/supervisord.pid ; (supervisord pidfile;default supervisord.pid)
nodaemon=true              ; (start in foreground if true;default false)
minfds=1024                 ; (min. avail startup file descriptors;default 1024)
minprocs=200                ; (min. avail process descriptors;default 200)
[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
[supervisorctl]
serverurl=unix:///var/run/supervisor/supervisor.sock ; use a unix:// URL  for a unix socket
[include]
files = supervisord.d/*.ini
*/


[root@mysql-host1 ~/docker_images/Dockerfile/system/zhouwanchun-centos-ssh]# cat sshd.ini
[program:sshd]
command=/usr/sbin/sshd -D
process_name=%(program_name)s
autostart=true
stdout_logfile_maxbytes=100MB
stdout_logfile_backups=10


[root@mysql-host1 ~/docker_images/Dockerfile/system/zhouwanchun-centos-ssh]# docker build -t zhouwanchun/centos-ssh:7.9.2009 .


-- 创建网络
[root@mysql-host1 ~]# docker network create --subnet=192.168.56.0/16 dbnet

[root@mysql-host1 ~]# docker network ls
NETWORK ID     NAME      DRIVER    SCOPE
a216a032d7a3   bridge    bridge    local
6a2ce16fc8a0   dbnet     bridge    local
14004f866602   host      host      local
d32520d61cf0   none      null      local

[root@mysql-host1 ~]# docker network inspect dbnet
[
    {
        "Name": "dbnet",
        "Id": "6a2ce16fc8a082aa66cd9fc42956efab1b2f7a41c3dd9c619813083bde0ca587",
        "Created": "2021-02-13T04:33:46.907260473+08:00",
        "Scope": "local",
        "Driver": "bridge",
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": {},
            "Config": [
                {
                    "Subnet": "192.168.56.0/16",
                    "Gateway": "192.168.0.1"
                }
            ]
        },
        "Internal": false,
        "Attachable": false,
        "Ingress": false,
        "ConfigFrom": {
            "Network": ""
        },
        "ConfigOnly": false,
        "Containers": {},
        "Options": {},
        "Labels": {}
    }
]


-- /disk 软件工具共享存放
-- /u01  数据库程序共享存放
-- db01  计划放置不同的MySQL的data相关数据,需要持久化的数据都放在这里。
[root@mysql-host1 ~]# mkdir -p /disk
[root@mysql-host1 ~]# mkdir -p /u01
[root@mysql-host1 ~]# mkdir -p /data/vm/{db01,db02,db03,mgr01,mgr02,mgr03,pxc01,pxc02,pxc03}


-- 启动容器
[root@mysql-host1 ~]# docker run -d --privileged -v /disk:/disk -v /u01:/u01 -v /data/vm/db01:/data -v /backup:/backup -p5611:22 --net dbnet --ip 192.168.56.11 --cap-add=NET_ADMIN --name=db01 --hostname=db01 zhouwanchun/centos-ssh:7.9.2009
[root@mysql-host1 ~]# docker run -d --privileged -v /disk:/disk -v /u01:/u01 -v /data/vm/db02:/data -v /backup:/backup -p5612:22 --net dbnet --ip 192.168.56.12 --cap-add=NET_ADMIN --name=db02 --hostname=db02 zhouwanchun/centos-ssh:7.9.2009
[root@mysql-host1 ~]# docker run -d --privileged -v /disk:/disk -v /u01:/u01 -v /data/vm/db03:/data -v /backup:/backup -p5613:22 --net dbnet --ip 192.168.56.13 --cap-add=NET_ADMIN --name=db03 --hostname=db03 zhouwanchun/centos-ssh:7.9.2009


[root@mysql-host1 ~]# docker ps
CONTAINER ID   IMAGE                             COMMAND                  CREATED          STATUS          PORTS                  NAMES
82992f77595e   zhouwanchun/centos-ssh:7.9.2009   "/usr/bin/supervisor…"   8 seconds ago    Up 7 seconds    0.0.0.0:5613->22/tcp   db03
09060282cf3d   zhouwanchun/centos-ssh:7.9.2009   "/usr/bin/supervisor…"   16 seconds ago   Up 15 seconds   0.0.0.0:5612->22/tcp   db02
de2420658bd0   zhouwanchun/centos-ssh:7.9.2009   "/usr/bin/supervisor…"   25 seconds ago   Up 24 seconds   0.0.0.0:5611->22/tcp   db01


-- 连接容器
[root@mysql-host1 ~]# ssh root@192.168.56.11
[root@mysql-host1 ~]# ssh root@192.168.56.12
[root@mysql-host1 ~]# ssh root@192.168.56.13


-- 宿主机ssh秘钥拷贝到容器虚拟机里面
[root@mysql-host1 ~]# scp -rp ~/.ssh root@192.168.56.11:~/
[root@mysql-host1 ~]# scp -rp ~/.ssh root@192.168.56.12:~/
[root@mysql-host1 ~]# scp -rp ~/.ssh root@192.168.56.13:~/


[root@mysql-host1 ~]# vim .bash_profile
# ssh in docker.
alias ssh1=/usr/bin/ssh db01
alias ssh2=/usr/bin/ssh db02
alias ssh3=/usr/bin/ssh db03


[root@mysql-host1 ~]# vim /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

# vmware.
10.0.0.11   mysql-host1
10.0.0.12   mysql-host2
10.0.0.13   mysql-host3
10.0.0.1    zhouwanchun

# docker vm.
192.168.56.11   db01 mgr01 pxc01
192.168.56.12   db02 mgr02 pxc02
192.168.56.13   db03 mgr03 pxc03


[root@mysql-host1 ~]# ssh db01
[root@mysql-host1 ~]# ssh db02
[root@mysql-host1 ~]# ssh db03


[root@mysql-host1 ~]# ssh1
[root@mysql-host1 ~]# ssh2
[root@mysql-host1 ~]# ssh3


[root@mysql-host1 ~]# ./docker_in.sh db01
[root@mysql-host1 ~]# ./docker_in.sh db02
[root@mysql-host1 ~]# ./docker_in.sh db03

 

专职DBA-基于Dcoker环境初始化三台虚拟机

原文:https://www.cnblogs.com/zhouwanchun/p/14401272.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!