docker 真香 使用docker前先檢查你的系統版本 下麵的表格就直接展示了 Docker 對主流幾款 Linux 系統版本的要求 |操作系統|支持的系統版本| | | | |CentOS |CentOS 7| |Debian |Debian Wheezy 7.7 (LTS)| |Debian ...
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, 歡迎指出不足之處。