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

 

 

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