-- Docker的基礎知識(鏡像,容器,倉庫等概念,還有基本命令)就再也不提了,能夠從github查看相關中文文檔(https://github.com/yeasy/docker_practice/blob/master/SUMMARY.md)。mysql
1 FROM mcr.microsoft.com/dotnet/core/sdk:2.2 as build-env 2 # code目錄 3 WORKDIR /code 4 5 #項目拷貝至code 6 COPY *.csproj ./ 7 RUN dotnet restore 8 9 # #代碼拷貝至code 10 COPY . ./ 11 # #發佈文件在code/out文件夾 12 RUN dotnet publish -c Release -o out 13 # #找到runtime 14 FROM mcr.microsoft.com/dotnet/core/aspnet:2.2 15 # #新建一個目錄app 16 WORKDIR /app 17 # #code目錄發佈的代碼文件放到app 18 COPY --from=build-env /code/out ./ 19 # 輸出到80端口 20 EXPOSE 80 21 ENTRYPOINT [ "dotnet","UserApi.dll" ]
docker compose 編排啓動多個容器git
service
):一個應用的容器,實際上能夠包括若干運行相同鏡像的容器實例(例如咱們的demo中userapi 和 db)。project
):由一組關聯的應用容器組成的一個完整業務單元,在 docker-compose.yml
文件中定義 (userapi和db加起來爲一個項目)。1 version: '3' 2 services: 3 db: 4 image: mysql/mysql-server:5.7.26 #鏡像 5 container_name: db #容器名稱 6 command: mysqld --character-set-server=utf8 --collation-server=utf8_general_ci #運行命令,把mysql容器字符集修改成utf8 7 restart: always 8 ports: 9 - '3308:3306' #端口映射 10 environment: 11 MYSQL_ROOT_PASSWORD: pwd123456 12 MYSQL_USER: lmc 13 MYSQL_PASSWORD: pwd123456 14 volumes: 15 - /d/docker/beta/mysqlcompose-init:/docker-entrypoint-initdb.d #資料卷掛載,mysql容器執行時候會執行絕對路徑/d/docker/beta/mysqlcompose-init下的sql文件 16 web: 17 build: . 18 container_name: 'aspnetcore' 19 ports: 20 - '8003:80' 21 depends_on: #啓動web以前,檢查依賴項,先啓動db 22 - db
咱們來看一下生成的networkgithub