docker指令碼自動化安裝
阿新 • • 發佈:2020-08-27
1、安裝docker和docker-compose
installdocker.sh shell指令碼安裝docker和docker-compose install-docker.sh內容見附件
1、編譯構建映象
編寫一個.sh的指令碼,用於在linux中構建已釋出專案的映象,構建成功之後再匯出映象------該映象是docker-compose.yml中需要用到的映象檔案 功能:使用docker根據Dockerfile編譯構建已釋出的應用程的映象,並匯出該映象
build.sh內容如下
#!/bin/bash
echo "1.使用build指令碼自動構建專案映象"
echo -e "\n\033[32m --------開始構建專案映象-------- \033[0m"
sudo docker build -t mywebcore -f Dockerfile . #根據Dockerfile檔案構建專案映象,注意Dockerfile檔案後面的 點,表示當前目錄
echo -e "\n\033[32m --------構建專案映象完成-------- \033[0m"
#匯出映象檔案
echo "2.匯出映象檔案"
echo -e "\n\033[32m --------匯出映象檔案-------- \033[0m"
sudo docker save mywebcore > mywebcore.tar # 匯出映象檔案,mywebcore 映象,mywebcore.tar 匯出的映象檔名稱
#sudo docker save -o mywebcore.tar mywebcore # 匯出映象檔案,mywebcore 映象,mywebcore.tar 匯出的映象檔名稱
echo -e "\n\033[32m --------匯出映象檔案成功-------- \033[0m"
根據專案的Dockerfile檔案構建專案映象成功之後,從linux中把匯出的映象檔案,複製到本地,以供deploy.sh使用
匯出映象:
sudo docker save mywebcore > mywebcore.tar # 匯出映象檔案,mywebcore 映象,mywebcore.tar 匯出的映象檔名稱
sudo docker save -o mywebcore.tar mywebcore # 匯出映象檔案,mywebcore 映象,mywebcore.tar 匯出的映象檔名稱
匯入映象:
sudo docker load < mywebcore.tar # 匯入映象,mywebcore.tar 映象檔案,mywebcore 為預設匯入的新映象名稱
sudo docker load -i mywebcore.tar # 匯入映象,mywebcore.tar 映象檔案,mywebcore 為預設匯入的新映象名稱
容器
從容器匯出映象:
sudo docker export nginx_test > mynginx.tar # 容器匯出映象檔案,mynginx.tar 容器快照檔案,nginxtest 匯出的容器名稱
sudo docker export -o mynginx.tar nginx_test # 容器匯出映象檔案,mynginx.tar 容器快照檔案,nginxtest 匯出的容器名稱
從容器快照中匯入映象:
sudo docker import mynginx.tar nginxtest # 匯入映象,mynginx.tar 映象檔案,nginxtest 匯入的新映象名稱
sudo cat mynginx.tar | sudo docker import - nginxtest1 # 匯入映象,mynginx.tar 映象檔案,nginxtest1 匯入的新映象名稱
2、編寫docker-compose.yml檔案
docker-compose一鍵部署的配置檔案:version,services,networks,具體參照docker-compose.yml附件
3、編寫一鍵部署deploy.sh指令碼:
功能:
1、停止docker容器,並刪除容器
2、docker載入需要的映象,nginx,mysql,專案映象等
3、建立需要的指定檔案目錄(該目錄主要用於nginx,mysql,專案與docker容器掛載的資料目錄,主要用於docker資料的持久化), 然後把需要部署的檔案通過SSH客戶端上傳到該檔案目錄下,需要上傳的nginx,mysql以及專案的相關配置和映象檔案 4、處理一些相關的操作,例如防火牆開放埠 firewall,同步時間ntp,ntpdate等 5、執行docker-compose一鍵部署安裝啟動需要的服務
#建立需要的指定檔案目錄
附件:
1、 install-docker.sh 內容如下
2、docker-compose.yml內容如下
version
3、Dockerfile內容如下
#See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging.
FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443
FROM mcr.microsoft.com/dotnet/core/sdk:3.1-buster AS build
WORKDIR /src
COPY
4、build.sh內容如下
#!/bin/bash
echo "1.使用build指令碼自動構建專案映象"
echo -e "\n\033[32m --------開始構建專案映象-------- \033[0m"
sudo docker build -t mywebcore -f Dockerfile . #根據Dockerfile檔案構建專案映象,注意Dockerfile檔案後面的 點,表示當前目錄
echo -e "\n\033[32m --------構建專案映象完成-------- \033[0m"
#匯出映象檔案
echo "2.匯出映象檔案"
echo -e "\n\033[32m --------匯出映象檔案-------- \033[0m"
sudo docker save mywebcore > mywebcore.tar # 匯出映象檔案,mywebcore 映象,mywebcore.tar 匯出的映象檔名稱
#sudo docker save -o mywebcore.tar mywebcore # 匯出映象檔案,mywebcore 映象,mywebcore.tar 匯出的映象檔名稱
echo -e "\n\033[32m --------匯出映象檔案成功-------- \033[0m"
5、deploy.sh內容如下
#建立需要的指定檔案目錄