zoukankan      html  css  js  c++  java
  • centos7 使用docker 一键部署服务器

    docker 真香

    使用docker前先检查你的系统版本
    cat /etc/redhat-release
    下面的表格就直接展示了 Docker 对主流几款 Linux 系统版本的要求

    操作系统 支持的系统版本
    CentOS CentOS 7
    Debian Debian Wheezy 7.7 (LTS)
    Debian Jessie 8 (LTS)
    Debian Stretch 9
    Debian Buster 10
    Fedora Fedora 26
    Fedora 27
    Ubuntu Ubuntu Trusty 14.04 (LTS)
    Ubuntu Xenial 16.04 (LTS)
    Ubuntu Artful 17.10

    当然,在较低版本的 Linux 系统中也能安装 Docker,不过只能是版本较低的 Docker,其功能存在一些缺失,或者与最新版本有所区别, 所以如果条件允许,建议将系统升级到支持最新版本 Docker 的系统版本

    安装docker

    下载脚本

    curl -fsSL https://get.docker.com -o get-docker.sh

    执行脚本

    sh get-docker.sh

    使用镜像

    因为不加的话docker pull 是龟速。。。
    有文件夹省略这步
    mkdir -p /etc/docker

    tee /etc/docker/daemon.json <<-'EOF'

    { "registry-mirrors": ["https://9cpn8tt6.mirror.aliyuncs.com"]}

    EOF

    systemctl daemon-reload

    systemctl restart docker
    可以使用docker -v 看看docker是否安装成功

    安装nginx

    使用docker 跑一个nginx的容器, docker容器可以做到秒级启动,用完即删,所以我们要做文件持久化存储要把容器内的需要持久化的目录和配置挂载出来
    nginx 需要持久化的目录就是我们部署前端的位置 /usr/share/nginx/html ,
    nginx 配置也挂载出来方便修改 /etc/nginx/nginx.conf ,
    这样我们在容器外就可以部署前端静态资源和修改nginx配置, 修改完重启下容器就OK了。

    随便找个位置比如/home/nginx, 先临时创建个容器把配置拷贝出来
    docker run --name nginx --rm -d nginx
    --rm 表示容器停止后就删除该容器
    -d 表示后台运行容器
    --name 给容器起名字
    使用docker ps你可以看到nginx 容器 正在运行中,
    把容器内的默认配置给拷贝到/home/nginx目录下
    docker cp nginx:/etc/nginx/nginx.conf /home/nginx

    拷贝完停止容器
    docker stop nginx
    再使用docker ps -a 查看容器 你就看不到了
    -a 表示查看所有容器, 不加查看正在运行的容器

    现在可以正式创建nginx容器了
    docker run --restart-always --name nginx -d -p 80:80 -p 443:443 -v /home/nginx/html: /usr/share/nginx/html -v /home/nginx/nginx.conf:/etc/nginx/nginx.conf nginx
    --restart-always 保证特殊情况重启容器
    -p 把容器内的端口映射到宿主机, -p [宿主机端口]:[容器内端口]
    这样我们直接在浏览器输入你的服务器ip就可以看到nginx的欢迎页了,阿里云服务器还要在安全组内开放80端口
    -v 就是把容器内的目录映射到宿主机的目录 这样就算容器删除了我们的数据还在

    以后部署的时候就可以把前端打包后的静态资源放在/home/nginx/html路径下,然后docker restart nginx就ok啦,

    拓展

    甚至前端每次打包后的静态资源也可以docker build 出一个镜像,根据版本号打上tag , push 到docker hub, 使用该镜像run一个volumn container
    配合jenkins可以实现前端全自动打包部署,只要你提交代码到仓库, jenkins可以帮你实现前端 测试 =》 打包 =》 部署 一整个流水线

    本人也是刚学docker, 欢迎指出不足之处。

  • 相关阅读:
    NYOJ:喷水装置(一)
    NYOJ:QQ农场
    NYOJ:死神来了(鸽巢定理)
    NYOJ:星际之门(一)(cayley定理)
    计蒜客: 法师康的工人 (贪心)
    '-[UIViewController _loadViewFromNibNamed:bundle:] loaded the "AttentionController" nib but the view outlet was not set.'
    UITabBar 蓝色
    App installation failed There was an internal API error.
    UIImage将图片写入本地相册
    UINavigationItem不显示
  • 原文地址:https://www.cnblogs.com/LHLVS/p/12762688.html
Copyright © 2011-2022 走看看