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

相關文章
相關標籤/搜索