本篇將使用 DaoCloud 源在 Ubuntu 上簡單快速安裝 docker 及 docker-compose
並添加了通過 Dockerfile 及 docker-compose.yml 使用 nginx 的示例
本篇文章所用系統信息如下
Distributor ID: Ubuntu
Description: Ubuntu 16.04.1 LTS
Release: 16.04
Codename: xenial
docker 的安裝及使用
簡單介紹
docker 是一個開源的軟件部署解決方案
docker 也是輕量級的應用容器框架
docker 可以打包、發佈、運行任何的應用
安裝
curl -sSL https://get.daocloud.io/docker | sh
安裝後將會自動重啓
卸載
sudo apt-get remove docker docker-engine
rm -fr /var/lib/docker/
配置加速器
下面是我的配置,實際使用需要根據自己的賬號去查看自己的地址
DaoCloud
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://ced808ab.m.daocloud.io
sudo systemctl restart docker.service
阿里雲
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://dist7hw1.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
基礎命令
docker -v
docker images
docker ps
sudo service docker start
sudo service docker stop
sudo service docker restart
通過 Dockerfile 使用 nginx
通過下面的一個腳本可以簡單快速的創建一個鏡像並運行起來
大概看下應該就可以大概明白鏡像的基本使用了
echo '0.創建測試目錄及代碼'
mkdir dockerfiletest
cd dockerfiletest
mkdir dist
echo 'hello world'>./dist/index.html
echo '1.創建Dockerfile'
echo '
From daocloud.io/library/nginx:1.13.0-alpine
COPY dist/ /usr/share/nginx/html/
'>./Dockerfile
echo '2.構建鏡像'
docker build -t dockerfiletest .
echo '3.運行鏡像'
docker run -p 3344:80 dockerfiletest
下面分步拆解下
1.在項目目錄中添加 Dockerfile 文件
詳細請參考:https://hub.daocloud.io/repos/2b7310fb-1a50-48f2-9586-44622a2d1771
html 的簡單部署
From daocloud.io/library/nginx:1.13.0-alpine
COPY dist/ /usr/share/nginx/html/
若要使用自己的配置腳本,比如 vue 的配置,可以將自己的配置文件複製到容器中
From daocloud.io/library/nginx:1.13.0-alpine
RUN rm /etc/nginx/conf.d/default.conf
ADD default.conf /etc/nginx/conf.d/
COPY dist/ /usr/share/nginx/html/
nginx 中 vue history 模式的配置 如下,可參考
server {
listen 80;
location / {
root /usr/share/nginx/html/;
index index.html;
try_files $uri $uri/ /index.html;
}
}
若是將 /usr/share/nginx/html/ 和 /etc/nginx/conf.d/ 掛載到本地,這樣應該能夠靈活使用 docker 安裝的 nginx 了(未實踐過)
2.構建鏡像
構建參數說明參考:http://www.runoob.com/docker/docker-build-command.html
docker build -t docker-nginx-test .
3.運行鏡像
--name 服務名
-d 後臺運行
-p 暴露端口:nginx 端口
docker-nginx-test 鏡像名/IMAGE ID
docker run --name dockertest -d -p 4455:80 docker-nginx-test
4.測試訪問
root@ubuntu:~# curl http://localhost:4455
hello world
現在,可以通過 IP+端口的形式在外網訪問站點了,但在實際使用肯定還需要綁定域名等一些操作
最簡單的是我認爲是使用 nginx 去做代理
目前我們公司使用的 traefik ,最爽的莫過於 https 的支持,可以瞭解一下
docker-compose 的安裝及使用
簡單介紹
Docker Compose 是一個用來定義和運行復雜應用的 Docker 工具。
使用 Docker Compose 不再需要使用 shell 腳本來啓動容器。(通過 docker-compose.yml 配置)
安裝
可以通過修改 URL 中的版本,自定義您需要的版本。
curl -L https://get.daocloud.io/docker/compose/releases/download/1.22.0/docker-compose-`uname -s-
uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
卸載
sudo rm /usr/local/bin/docker-compose
基礎命令
需要在 docker-compose.yml 所在文件夾中執行命令
使用 docker-compose 部署項目的簡單步驟
docker-compose down
docker-compose pull
docker-compose up -d
通過 docker-compose.yml 部署應用
我將上面所創建的鏡像推送到了阿里雲,在此使用它
1.新建 docker-compose.yml 文件
通過以下配置,在運行後可以創建兩個站點(只爲演示)
version: "3"
services:
web1:
image: registry.cn-hangzhou.aliyuncs.com/yimo_public/docker-nginx-test:latest
ports:
- "4466:80"
web2:
image: registry.cn-hangzhou.aliyuncs.com/yimo_public/docker-nginx-test:latest
ports: - "4477:80"
此處只是簡單演示寫法,說明 docker-compose 的方便
2.構建完成,後臺運行鏡像
docker-compose up -d
運行後就可以使用 ip+port 訪問這兩個站點了
3.鏡像更新重新部署
docker-compose down
docker-compose pull
docker-compose up -d
相關文章
docker 文檔:https://docs.docker.com/get-started/
docker-compose 文檔:https://docs.docker.com/compose/install/#uninstallation
docker-compose 倉庫:https://github.com/docker/compose
daocloud 源地址 :https://get.daocloud.io/#install-docker
Docker 通過 Nginx 鏡像部署 Vue 項目:https://blog.csdn.net/jason_jeson/article/details/78200623
DaoClould https://hub.daocloud.io/repos/2b7310fb-1a50-48f2-9586-44622a2d1771