centos7 使用docker 一键部署服务器

docker 真香

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

操做系统 支持的系统版本
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.shnginx

执行脚本

sh get-docker.shdocker

使用镜像

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

tee /etc/docker/daemon.json <<-'EOF'浏览器

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

EOF服务器

systemctl daemon-reloadcurl

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, 欢迎指出不足之处。

相关文章
相关标签/搜索