背景
本地多机重复操作某些shell指令,分步执行,很耗费时间,
 需要远程一键部署,傻瓜化运维,更为通用安装。
 即参考docker通用安装
sudo curl https://get.docker.com | sh -
# sudo python3 -m pip install docker-compose
具体执行
总体思路:
 1、容器化nginx部署;
 2、准备好要访问的目录,这里是一个文件夹,映射到nginx里面;
 3、修改nginx配置,默认映射到2中的目录;
 4、访问nginx指定的路径,如下图即可。这里先上效果图
 
 具体配置为:
version: "3"
services:
 nginx_sh:
    image: nginx
    container_name: nginx_sh
    restart: always
      #network_mode: host
    ports:
     - "82:80"
    volumes:
     - /etc/localtime:/etc/localtime:ro
     #- /var/docker/nginx-sh/nginx.conf:/etc/nginx/nginx.conf
     - /var/docker/nginx-sh/conf.d:/etc/nginx/conf.d
     #- /var/docker/nginx-sh/html:/usr/share/nginx/html
     - /var/docker/nginx-sh/curl-sh:/var/docker/nginx-sh/curl-sh
    logging:
      options:
        max-size: "1g"
        max-file: "1"
    environment:
     VERSION: 4
其中/var/docker/nginx-sh/curl-sh目录下放置要访问的脚本
 
 其中hello.sh脚本内容如下
echo "Hello World!"
nginx的配置文件/var/docker/nginx-sh/conf.d/install-sh.conf
server {
    listen       80;
    listen  [::]:80;
    server_name  localhost;
    #access_log  /var/log/nginx/host.access.log  main;
    location / {
        root /var/docker/nginx-sh/curl-sh;
        # 这一步是关键,打开目录浏览功能
        autoindex on;
#       index  index.html index.htm;
    }
}
docker-compose up -d 启动容器,确保容器正常起来后。
 去访问网址的ip:82,就可以看到开头如图所示效果。
当网址ip可以被本地机器ip访问,则本地执行如下指令一键安装
curl www.###.com:82/hello.sh | sh -
效果如图
###@ubuntu:/var/docker/nginx/html$ curl www.###.com:82/hello.sh | sh -
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100    20  100    20    0     0    145      0 --:--:-- --:--:-- --:--:--   145
Hello World!
然后可以调整hello.sh指令,写入更复杂的shell脚本去一键安装。
注意事项
1、确保网址ip能被访问到;
 2、shell脚本本地是能正常运行,可以使用
cat hello.sh | sh -
验证正常执行后再发上去



















