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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章