前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >docker 创建虚拟机并且远程链接 shell脚本

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

原创
作者头像
eisc
修改2021-05-11 14:34:04
6370
修改2021-05-11 14:34:04
举报
文章被收录于专栏:linux 自动化运维
代码语言:javascript
复制
#!/bin/bash
update(){
# 更新时间
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
}
update
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
        docker run --name centos1 --privileged=true -dit -p 10022:22 -p 10080:80 centos:7 /usr/sbin/init
                                                                                       # 符号  \ 将长命令换行编写;   运行centos7 版本  名字为centos1
                                                                                       # 注意:一个单词不能换行后还有空格存在,例如: 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 centos1 /bin/bash
                                                                                        # 进入启动的容器 centos1
                                                                                        # -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        启动方式
      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="/etc/yum.repos.d/epel-7.repo"
      if [ ! -e $repo ]; then                                                  # -e 判断文件存在;参考:Shell if 条件判断文件或目录
            yum install -y wget
            cd /etc/yum.repos.d/
            mkdir bak
            mv * bak
            wget http://mirrors.aliyun.com/repo/Centos-7.repo
            wget http://mirrors.aliyun.com/repo/epel-7.repo
                                                       # 移动两个文件到 目录
            #wget http://mirrors.163.com/.help/CentOS7-Base-163.repo
            #sed -i  's/$releasever/7/g' /etc/yum.repos.d/CentOS-Base.repo
                                                     # yum源没有对应版本包匹配;修改yum为centos7
            yum clean all                                # 清除原有缓存
            yum makecache                           # 生成新的缓存
                                                     # make cache [meɪk]  [kaʃ]  制作 缓存{ka xi}
            yum  list                                       # 校验yum
            cd
      else
            echo "yum已经切换"
      fi
yum -y install systemd && \
yum -y install firewalld && \
yum -y install openssh openssh-server openssh-clients && \
systemctl start sshd
# ssh-keygen -t rsa                                # 配置免密登陆密钥
echo "eisc.cn" | passwd --stdin root
}
unjdemo

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器镜像服务
容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档