九.安装Docker及部署
1.1 使用yum源安装
wget -P /etc/yum.repos.d/ http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo yum install -y docker-ce
1.2 启动Docker
//启动 Docker CE systemctl start docker systemctl enable docker //查看Docker状态 systemctl status docker //查看docker版本 docker –v
1.3 测试Docker是否安装正确
docker run hello-world
1.4 .netcore项目在Docker中运行
1.4.1 获取microsoft/dotnet镜像,执行docker images可以看到本地已经包含microsoft/dotnet镜像。
docker pull microsoft/dotnet //安装dotnet,包含:编译器、Runtime及控制台、aspnetcore的所有 docket pull microsoft/aspnetcore //安装asp.net core,只包含RunTime和运行环境,不能进行编译,只能将项目编译完后发布至此容器后再运行
1.4.2 运行microsoft/dotnet镜像,使用docker run <image>可以启动镜像,通过指定参数-it可以交互模式(进入容器内部)启动。依次执行以下命令:
docker run –it microsoft/dotnet //启动一个dotnet镜像 dotnet new mvc –n mvctest //在容器中创建一个dotnet项目 cd mvctest dotnet run
1.4.3 将宿主机.netcore项目(testweb) 挂载至容器
在启动Docker镜像时,Docker允许我们通过使用参数-v参数将宿主的文件挂载到容器的指定目录下。换句话说,就是相当于宿主机共享指定文件供容器去访问
//命令中的’\’结合‘Enter’键构成换行符,允许我们换行输入一个长命令 docker run –it / -v /data/web/testweb/:/app / microsfot/dotnet:latest
上面的命令就是把/data/web/testweb/文件夹下的文件挂载到容器的\app目录下,然后编译及运行项目
cd /app
dotnet restore
dotnet run
1.4.4 使用Dockerfile部署.netcore项目(testweb)
1.4.4.1 在项目下创建一个Dockerfile文件
cd /data/web/testweb/ //确保进入我们创建的MVC项目目录中去 touch Dockerfile //使用touch命令创建Dockerfile vi Dockerfile //使用vi命令编辑Dockerfile
1.4.4.2 文件内容如下:
#基于 `microsoft/dotnet:2.1.5-core` 来构建我们的镜像 FROM microsoft/dotnet:2.1.5-core #拷贝项目testweb文件夹中的所有文件到 docker容器中的app文件夹中 COPY . /app #设置工作目录为 `/app` 文件夹,即容器启动默认的文件夹 WORKDIR /app Run dotnet restore #设置Docker容器对外暴露5000端口 EXPOSE 5000 #使用`dotnet test.dll`来运行应用程序 CMD ["dotnet", "testweb.dll", "--server.urls", "http://*:5000"]
1.4.4.3 使用命令来生成一个镜像,并使用生成的镜像启动一个容器
docker build –t testweb.docker .
备注:以上命令就是告诉docker将当前目录打包成镜像,并命名为testweb.docker,使用命令的路径需和Dockerfile文件在相同
1.4.4.4 运行相关镜像
docker run –d –p 80:5000 testweb.docker
备注:-p:将容器的5000端口映射至宿主机的80端口;-d:以后台任务方式运行镜像