收藏文章 楼主

docker 创建虚拟机并且远程链接 shell脚本

版块:docker   类型:精华/置顶   作者:小绿叶技术博客   查看:2624   回复:4   获赞:17   时间:2020-08-23 10:30:01

1.了解docker ;  2.docker 安装脚本:安装,私有仓库,创建虚拟机


1. 脚本安装 docker



#!/bin/bash

updatesj(){

# 更新时间

rpmntpdate=`rpm -qa | grep ntpdate | wc -l`

if [ $rpmntpdate -gt 0 ]

                                                                                        # 相等 -eq    不相等 -ne     大于  -gt     大等于  -ge     小于  -lt       小等于  -le

   then

       echo "已经安装时间更新 ntpdate"

    else

           yum install -y ntpdate                                               # 安装工具

           ntpdate -u cn.pool.ntp.org                                   # 同步时间

           timedatectl set-timezone Asia/Shanghai               # 设置区域

           systemctl start ntpd                                         # 启动时间

           systemctl enable ntpd                                                # 开机启动:自动同步

fi

}

updatesj

installDocker(){

# 安装 docker

docker --version

if [ $? -eq 0 ]                                                                        # $? 判断上一条命令是否执行成功, -eq 等于  0

  then

       echo "已经安装docker"

       docker pull centos:7                                                  # 拉取镜像centos7

       tagc=$(docker images | grep centos | awk -F" " '{print $3}') ; echo $tagc

       tagd="127.0.0.1:5000/rancher/centos:7"

       docker tag $tagc $tagd                                             # 打标签

       docker rmi $tagd                                                       # 删除标签

  else

       echo "正在安装docker 中。。。"

       wget eisc.cn/file/shell/dockerinstall.sh ; sh dockerinstall.sh

fi


}

installDocker


xnjdemo(){

       useradd demo                                                      # 创建用户  demo

       echo "eisc.cn" | passwd --stdin demo                  # 为用户 demo 设置密码为: eisc.cn

       chmod u+w /etc/sudoers                                     # 用户写 权限 这个文件

       cp /etc/sudoers /etc/sudoers.back

       sed -i "/^#/d" /etc/sudoers                                  # 删除开头#号的行

       sed -i "/^$/d" /etc/sudoers                                   # 删除空行

       echo "domo    ALL=(ALL)       ALL" >> /etc/sudoers

                                                                                     # 添加用户权限 所有权限

        sudo docker pull centos:7                                    # 拉群centos7 镜像,因为使用的 demo 用户,修改系统需要加上 sudo

        sudo docker images                                             # 列出镜像列表

        sudo systemctl start firewalld                               # 启动防火墙; stop 关闭

        sudo firewall-cmd --permanent --zone=public --add-port=10022/tcp

        sudo firewall-cmd --permanent --zone=public --add-port=10080/tcp

        firewall-cmd --reload                                            # 开放端口,和重载防火墙配置

        firewall-cmd --list-all                                             # 列出防火墙所有规则

        # sudo docker run -d --name c7-d1 --privileged=true -p 10022:22 -p 10080:80 \

        # -h c7-docker-1 -v /home/fd/container/c7-d-1:/home/c7-d1-ys centos:7 /usr/sbin/init


        systemctl restart docker     # docker 无法创建端口映射

        docker run --privileged=true -dit -p 10022:22 -p 10080:80 --name eisc centos:7 /usr/sbin/init

                                                                                       # 符号  \ 将长命令换行编写;   运行centos7 版本  名字为eisc

                                                                                       # 注意:一个单词不能换行后还有空格存在,例如: date  变成:dat  e

                                                                                       # -d 后台运行方式

                                                                                       # name 创建的容器名,方便启动、关闭、重启、删除容器等操作

                                                                                       # privileged=true        加上之后容器内部权限更多,不会出现权限问题

                                                                                       # -p 10022:22 -p 10080:80       指定端口映射,可同时放通多个端口

                                                                                       # -h c7-docker-1 指定容器主机名

                                                                                       # -v /home/fd/container/c7-d-1:/home/c7-d1-ys                                                         宿主机目录映射到容器内部目录

                                                                                       # centos:7       本地centos镜像版本

                                                                                       # /usr/sbin/init 启动方式

       docker exec -it eisc /bin/bash

                                                                                        # 进入启动的容器 eisc

                                                                                        # -d    后台运行方式

                                                                                        # name  创建的容器名,方便启动、关闭、重启、删除容器等操作

                                                                                        # privileged=true       加上之后容器内部权限更多,不会出现权限问题

                                                                                        # -p 10022:22 -p 10080:80      指定端口映射,可同时放通多个端口

                                                                                        # -h c7-docker-1        指定容器主机名

                                                                                        # -v /home/fd/container/c7-d-1:/home/c7-d1-ys                                                        宿主机目录映射到容器内部目录

                                                                                        # centos:7      本地centos镜像版本


                                                                                       # /usr/sbin/init        启动方式

}

xnjdemo

centosxuniji(){

# 启动的虚拟机需要执行下面命令 否则无法通过端口映射远程连接docker虚拟机


      yum install -y ntpdate                                              # 安装工具

      ntpdate -u cn.pool.ntp.org                                       # 同步时间

      timedatectl set-timezone Asia/Shanghai                  # 设置区域

      systemctl start ntpd                                                  # 启动时间

      systemctl enable ntpd                                              # 开机启动:自动同步

      yum install -y wget



repo="centos-yum.sh"

if [ ! -e $repo ]; then                 # -e 判断文件存在;参考:Shell if 条件判断文件或目录

yum install -y wget

wget www.eisc.cn/file/shell/centos-yum.sh ; sh centos-yum.sh

else

echo "yum已经切换"

fi




yum -y install systemd firewalld net-tools ; yum -y install openssh openssh-server openssh-clients 

systemctl start sshd

# ssh-keygen -t rsa                                # 配置免密登陆密钥

echo "eisc.cn" | passwd --stdin root

}


# docker commit c5d63d185542 centos7-csh    # 保存 docker ps -a 运行中的镜像,名字为:centos7-csh

# wget eisc.cn/file/shell/docker-xnj.sh ; sh docker-xnj.sh


相关链接:
  上传运行镜像 docker基础 docker创建虚拟机 KVM复习题


安装docker:  https://eisc.cn/index.php?c=read&id=475&page=1



有些梦虽然遥不可及,但并不是不可能实现。 
回复列表
默认   热门   正序   倒序

回复:docker 创建虚拟机并且远程链接 shell脚本

Powered by ddoss.cn 12.0

©2015 - 2024 ddoss

头像

用户名:

粉丝数:

签名:

资料 关注 好友 消息