docker 及 docker-compose 的快速安裝和簡單使用

本篇將使用 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

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