本篇將使用 DaoCloud 源在 Ubuntu 上簡單快速安裝 docker 及 docker-compose 並添加了經過 Dockerfile 及 docker-compose.yml 使用 nginx 的示例 本篇文章所用系統信息以下html
Distributor ID: Ubuntu Description: Ubuntu 16.04.1 LTS Release: 16.04 Codename: xenial
docker 是一個開源的軟件部署解決方案
docker 也是輕量級的應用容器框架
docker 能夠打包、發佈、運行任何的應用vue
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
curl -sSL https://get.daocloud.io/docker | sh
安裝後將會自動重啓nginx
sudo apt-get remove docker docker-engine rm -fr /var/lib/docker/
下面是個人配置,實際使用須要根據本身的帳號去查看本身的地址git
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 version 18.06.0-ce, build 0ffa825docker images
docker ps
sudo service docker start
sudo service docker stop
sudo service docker restart
docker exec -it 容器Id /bin/bash
經過下面的一個腳本能夠簡單快速的建立一個鏡像並運行起來 大概看下應該就能夠大概明白鏡像的基本使用了github
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
下面分步拆解下web
詳細請參考:https://hub.daocloud.io/repos/2b7310fb-1a50-48f2-9586-44622a2d1771docker
html 的簡單部署shell
From daocloud.io/library/nginx:1.13.0-alpine # 將發佈目錄的文件拷貝到鏡像中 COPY dist/ /usr/share/nginx/html/
若要使用本身的配置腳本,好比 vue 的配置,能夠將本身的配置文件複製到容器中json
From daocloud.io/library/nginx:1.13.0-alpine # 刪除鏡像中 nginx 的默認配置 RUN rm /etc/nginx/conf.d/default.conf # 複製 default.conf 到鏡像中 ADD default.conf /etc/nginx/conf.d/ # 將發佈目錄的文件拷貝到鏡像中 COPY dist/ /usr/share/nginx/html/
nginx 中 vue history 模式的配置 以下,可參考ubuntu
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 了(未實踐過)
構建參數說明參考:http://www.runoob.com/docker/docker-build-command.html
docker build -t docker-nginx-test .
--name 服務名 -d 後臺運行 -p 暴露端口:nginx 端口 docker-nginx-test 鏡像名/IMAGE ID
docker run --name dockertest -d -p 4455:80 docker-nginx-test
root@ubuntu:~# curl http://localhost:4455 hello world
如今,能夠經過 IP+端口的形式在外網訪問站點了,但在實際使用確定還須要綁定域名等一些操做
最簡單的是我認爲是使用 nginx 去作代理
目前咱們公司使用的 traefik ,最爽的莫過於 https 的支持,能夠了解一下
Docker Compose 是一個用來定義和運行復雜應用的 Docker 工具。 使用 Docker Compose 再也不須要使用 shell 腳原本啓動容器。(經過 docker-compose.yml 配置)
能夠經過修改 URL 中的版本,自定義您須要的版本。
sudo curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose
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
我將上面所建立的鏡像推送到了阿里雲,在此使用它
經過如下配置,在運行後能夠建立兩個站點(只爲演示)
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 的方便
docker-compose up -d
運行後就可使用 ip+port 訪問這兩個站點了
docker-compose down docker-compose pull docker-compose up -d