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

 

 

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