系统环境:CentOS7(Virtualbox虚拟机)

Docker环境安装

1、Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker 。

通过 uname -r 命令查看你当前的内核版本

2、执行命令sudo yum update,更新yum包,确保yum包是最新的(该步骤可跳过,建议更新)

3、执行命令 sudo yum remove docker  docker-common docker-selinux docker-engine 卸载旧版本docker(如果安装过旧版本,执行该操作)

4、执行命令 sudo yum install –y yum-utils device-mapper-persistent-data lvm2安装所需的软件包。yum-utils 提供了 yum-config-manager ,并且 device mapper 存储驱动程序需要 device-mapper-persistent-data lvm2

 

5、执行命令 sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo 设置yum源

 yum可用源:

 https://download.docker.com/linux/centos/docker-ce.repo  //官方源地址(比较慢)

 http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo  //阿里云

 https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo //清华大学原

 

6、执行命令sudo yum install docker-ce docker-ce-cli containerd.io 安装最新版本的 Docker Engine-Community containerd,或者转到下一步安装特定版本的docker

  安装特定版本的docker

 1)执行命令yum list docker-ce --showduplicates | sort -r 查看所有仓库中所有的docker版本

 

    2)安装特定版本docker命令

    sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io

7、执行命令 sudo systemctl start docker 启动docker

8、执行命令 sudo systemctl enable docker 设置开机启动docker

9、执行命令docker version验证docker是否安装成功(clientservice两部分表示docker安装启动都成功了

 

Docker 部署.netcore项目 

创建.netcore项目

环境:VS2017;.Net Core 2.2

1、创建项目

以webapi为例

 

 

注:如果创建项目时,没有勾选“启用Docker支持”选项,可以在项目上 右击—添加—Docker支持 同样可以生成Dockerfile文件 

2、编写Dockerfile文件 

 首先看一下自动生成的Dcokerfile文件内容

自动生成的Dockerfile内容可能会有一些错误,所以自己编写一份Dockerfile文件,修改后的Dockerfile内容为

# 使用运行时镜像
FROM microsoft/dotnet:2.2-aspnetcore-runtime AS base
# 设置工作目录
WORKDIR /app
# 把目录下的内容都复制到当前目录下
COPY . .
ENV ASPNETCORE_URLS http://+:1902
# 暴露1902端口
EXPOSE 1902
# 运行镜像入口命令和可执行文件名称
ENTRYPOINT ["dotnet", "DockerDemo.dll"]

修改Dockerfile文件的属性,修改为始终复制

 

部署.netcore项目 

1、传输发布文件

执行命令mkdir netcore创建文件夹,用于存放.netcore项目发布文件

 

然后使用rz命令将程序发布从windows传输到centos中(rz命令是主机与centos虚拟机传输文件的的命令,文件传输的实现参见https://blog.csdn.net/liwan09/article/details/108022970

2、创建镜像 

 执行 sudo docker build –t netcoredocker .命令,创建镜像(注意:镜像名称 netcoredocker是空格+英文的点,.表示Dockerfile相对打开目录的路径

执行 docker images 查看创建的镜像

 

3、运行镜像

执行命令 docker run --name=netcoredocker -p 1804:1902 -d netcoredocker

--name:指定容器名称

-p:指定端口映射,格式为:主机(宿主)端口:容器端口

-d:后台运行容器,并返回容器ID

 

执行命令docker ps 查看运行的容器

 

执行命令docker inspect netcoredocker 查看netcoredocker镜像的信息,从镜像信息NetworkSettings中查看运行容器ip地址

 

4、api接口运行验证

1、在浏览器中输入http://运行容器ip:容器暴露端口/api/values查看webapi

该示例中的为http://172.17.0.2:1902/api/values

2、使用http://主机ip:映射的主机端口/api/values查看webapi

该示例中的为http://192.168.1.61:1804/api/values

注:因为我是在CentOS虚拟机中部署的netcore项目,需要在windows主机中访问虚拟机中的api,在访问之前,需要设置虚拟机的防火墙,确保windows主机中可以访问虚拟机中的api接口服务

 虚拟机中:

  执行命令 firewall-cmd --permanent --add-port=1804/tcp 设置需要访问的服务端口号(此处端口号是1804)

  执行命令firewall-cmd –reload

  执行命令systemctl stop firewalld.service    来关闭防火墙

 

 

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐