1. 程式人生 > 其它 >Docker容器部署Web應用

Docker容器部署Web應用

1.Docker是什麼?

 docker是一個開源的應用容器引擎,基於go語言並遵循apache2.0協議開源

2.Docker可以做什麼?

    Docker可以讓開發者打包他們的應用以及依賴包到一個輕量級,可移植的容器中,然後釋出到任務流行linux機器;容器是完全使用沙箱機制,相互間不會有任何介面,且容器效能開銷低。Docker容器實際上是docker映象的執行例項

3.Docker安裝

  3.1安裝軟體包(為方便新增軟體源,支援devicemapper型別儲存)

  yum install -y yum-utils \

      device-mapper-persistent-data \

      lvm2

  3.2更換阿里雲映象(https://www.ngui.cc/51cto/show-530173.html

  yum-config-manager --add-repo   http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

  3.3新增 yum 軟體源,新增 Docker 穩定版本的 yum 軟體源

  yum-config-manager \

        --add-repo \

        https://download.docker.com/linux/centos/docker-ce.repo

4.docker

基本命令:

  • 安裝docker-ce:yum install docker-ce
  • 設定開機啟動docker:systemctl enable docker
  • 啟動docker:systemctl start docker
  • 更新docker:yum update docker-ce
  • 檢視docker資訊:docker info
  • 解除安裝docker:yum remove docker-ce
  • 刪除docker本地檔案(映象,容器,儲存卷等 目錄/var/lib/docker):rm -rf /var/lib/docker
  • 檢查docker是否可以正常執行(執行hello-world映象):docker run hello-world
  • 下載.netcore5映象:docker pull mcr.microsoft.com/dotnet/core/aspnet:5
  • 檢視本地映象:docker images
  • 檢視所有容器docker ps -a

5.Docker中部署web應用

  5.1.vs建立.net core webmvc或者api專案[Order.API]並修改dockerfile檔案內容如下

FROM mcr.microsoft.com/dotnet/core/aspnet:3.1

MAINTAINER PDF

LABEL description="orderservice webapi"

LABEL version="1.0"

WORKDIR /app

COPY . .

EXPOSE 5000

ENV ASPNETCORE_ENVIRONMENT Production

ENTRYPOINT ["dotnet", "Order.API.dll"]

5.2.釋出web應用上傳至linux伺服器,並開啟5000埠,預設5000埠,可以在appsetting中修改,注意:埠執行開啟命令後需重啟防火牆後生效

5.3.構建映象

進入專案目錄執行(注意後面有空格和.):docker build -t orderapp .

5.4.建立並執行容器

  docker run --name orderapp -d -p 5000:5000 orderapp

    5.5.訪問

  

6.Docker視覺化-Portainer:

  隨著映象的增加,依靠輸入命令方式運維無疑加大了工作量和複雜性,可以安裝Portainer來進行介面視覺化操作容器和映象,安裝步驟如下

# 拉取映象

docker pull portainer/portainer-ce

# 執行映象

docker run -d -it --name portainer -p 8000:8000 -p 9000:9000 -v -v /var/run/docker.sock:/var/run/docker.sock --restart=always portainer/portainer-ce

# 瀏覽器輸入主機加埠9000即可進入,然後設定密碼,選擇本地模式。可以進行映象、容器、登入等管理

7.拓展:防火牆相關命令

  • 安裝:yum install firewalld
  • 啟動:systemctl start firewalld
  • 關閉:systemctl stop firewalld
  • 檢視狀態:systemctl status firewalld
  • 開機禁用:systemctl disable firewalld
  • 開機啟動:systemctl enable firewalld
  • 開放埠:firewall-cmd --add-port=5000/tcp --zone=public --permanent
  • 重啟防火牆:firewall-cmd --reload
  • 檢視已開放埠:firewall-cmd --list-all
  • 停止容器:docker kill 容器id或者name
  • 刪除容器:docker rm 容器id或者name