docker 创建虚拟机并且远程链接 shell脚本-修正版

简介: 再执行完成脚本后,需要仅需虚拟机执行安装时间和ssh工具进行远程连接

#!/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 --name eisc  --privileged=true -dit -p 10022:22 -p 10080:80 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 && \
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
}

# docker commit c5d63d185542 centos7-csh    # 保存 docker ps -a 运行中的镜像,名字为:centos7-csh
# wget eisc.cn/file/shell/docker-xnj.sh ; sh docker-xnj.sh
目录
相关文章
|
2月前
|
Shell
一个用于添加/删除定时任务的shell脚本
一个用于添加/删除定时任务的shell脚本
86 1
|
26天前
|
Shell Linux 测试技术
6种方法打造出色的Shell脚本
6种方法打造出色的Shell脚本
49 2
6种方法打造出色的Shell脚本
|
12天前
|
XML JSON 监控
Shell脚本要点和难点以及具体应用和优缺点介绍
Shell脚本在系统管理和自动化任务中扮演着重要角色。尽管存在调试困难、可读性差等问题,但其简洁高效、易于学习和强大的功能使其在许多场景中不可或缺。通过掌握Shell脚本的基本语法、常用命令和函数,并了解其优缺点,开发者可以编写出高效的脚本来完成各种任务,提高工作效率。希望本文能为您在Shell脚本编写和应用中提供有价值的参考和指导。
34 1
|
17天前
|
Ubuntu Shell 开发工具
ubuntu/debian shell 脚本自动配置 gitea git 仓库
这是一个自动配置 Gitea Git 仓库的 Shell 脚本,支持 Ubuntu 20+ 和 Debian 12+ 系统。脚本会创建必要的目录、下载并安装 Gitea,创建 Gitea 用户和服务,确保 Gitea 在系统启动时自动运行。用户可以选择从官方或小绿叶技术博客下载安装包。
38 2
|
2月前
|
监控 网络协议 Shell
ip和ip网段攻击拦截系统-绿叶结界防火墙系统shell脚本
这是一个名为“小绿叶技术博客扫段攻击拦截系统”的Bash脚本,用于监控和拦截TCP攻击。通过抓取网络数据包监控可疑IP,并利用iptables和firewalld防火墙规则对这些IP进行拦截。同时,该系统能够查询数据库中的白名单,确保合法IP不受影响。此外,它还具备日志记录功能,以便于后续分析和审计。
49 6
|
27天前
|
运维 监控 Shell
深入理解Linux系统下的Shell脚本编程
【10月更文挑战第24天】本文将深入浅出地介绍Linux系统中Shell脚本的基础知识和实用技巧,帮助读者从零开始学习编写Shell脚本。通过本文的学习,你将能够掌握Shell脚本的基本语法、变量使用、流程控制以及函数定义等核心概念,并学会如何将这些知识应用于实际问题解决中。文章还将展示几个实用的Shell脚本例子,以加深对知识点的理解和应用。无论你是运维人员还是软件开发者,这篇文章都将为你提供强大的Linux自动化工具。
|
2月前
|
网络安全 虚拟化 Docker
SSH后判断当前服务器是云主机、物理机、虚拟机、docker环境
结合上述方法,您可以对当前环境进行较为准确的判断。重要的是理解每种环境的特征,并通过系统的响应进行综合分析。如果在Docker容器内,通常会有明显的环境标志和受限的资源视图;而在云主机或虚拟机上,虽然它们也可能是虚拟化的,但通常提供更接近物理机的体验,且可通过硬件标识来识别虚拟化平台。物理机则直接反映硬件真实信息,较少有虚拟化痕迹。通过这些线索,您应该能够定位到您所处的环境类型。
36 2
|
2月前
|
监控 Unix Shell
shell脚本编程学习
【10月更文挑战第1天】shell脚本编程
71 12
|
2月前
|
存储 运维 监控
自动化运维:使用Shell脚本简化日常任务
【9月更文挑战第35天】在IT运维的日常工作中,重复性的任务往往消耗大量的时间。本文将介绍如何通过编写简单的Shell脚本来自动化这些日常任务,从而提升效率。我们将一起探索Shell脚本的基础语法,并通过实际案例展示如何应用这些知识来创建有用的自动化工具。无论你是新手还是有一定经验的运维人员,这篇文章都会为你提供新的视角和技巧,让你的工作更加轻松。
63 2
|
2月前
|
存储 Linux 开发者
虚拟机centos7.9一键部署docker
本文介绍了如何在 CentOS 7.9 虚拟机上安装 Docker 社区版 (Docker-ce-20.10.20)。通过使用阿里云镜像源,利用 `wget` 下载并配置 Docker-ce 的 YUM 仓库文件,然后通过 `yum` 命令完成安装。安装后,通过 `systemctl` 设置 Docker 开机自启并启动 Docker 服务。最后,使用 `docker version` 验证安装成功,并展示了客户端与服务器的版本信息。文中还提供了列出所有可用 Docker-ce 版本的命令。
195 0
虚拟机centos7.9一键部署docker

热门文章

最新文章

下一篇
无影云桌面