在Centos7上配置docker运行DotNetCore项目

流程:

1.在vmware上安装centos操作系统

2.将centos的网络设置为桥接模式,固定IP

3.在vs上创建一个简单的asp .net core项目,编译后发布

4.在centos上面安装docker

5.在centos上安装ftp并配置firewall(防火墙)和selinux

6.将发布文件夹通过ftp发布到centos上

7.使用docker命令创建镜像和容器并运行

在centos7上配置docker运行DotNetCore项目

1.在vmware上安装centos操作系统(略过)

2.将centos的网络设置为桥接模式,固定IP(桥接模式就是你的虚拟机就像是一台和你在同一局域网的主机一样,有自己独立的局域网ip和本机可以互相ping通)

2.1 首先将虚拟机关闭,然后

2.2 选择需要桥接的网卡(必须是可以上网的网卡)

 2.3 经过上述设置vm上的设置完成了,接下来是配置centos的网络

首先查询本机的ip,子网掩码,网关,dns服务器信息,然后再centos上

sudo vi /etc/sysconfig/network-script/ifcfg-ens33

修改该配置文件,添加并修改(第一项和最后一项是修改)

BOOTPROTO=static
IPADDR=192.198.3.110
NETMASK=255.255.255.0
GATEWAY=192.168.3.1
ONBOOT=yes

 修改完后,设置DNS服务器

sudo vi /etc/resolv.conf

添加

nameserver 192.168.3.1

修改完成后,重启服务即可

sudo systemctl restart network

网络配置完毕,如果你本机可以上网的话,可以在centos上ping一个外网地址,如果能够ping通,即配置成功。

3.在vs上创建一个简单的asp .net core项目,在项目路径下添加  Dockerfile   编写如下代码:

# 添加基础镜像
FROM microsoft/dotnet:2.1-aspnetcore-runtime
# 容器中系统的工作空间
WORKDIR /app
# 拷贝当前文件夹下的文件到容器中系统的工作空间
COPY . /app
 
# 设置Docker容器对外暴露的端口
EXPOSE 80
# 容器中使用 ["dotnet","系统启动的dll"] 来运行应用程序
# 使用ENTRYPOINT ["dotnet","系统启动的dll"]
# 或使用 CMD ["dotnet","系统启动的dll"]
ENTRYPOINT ["dotnet", "DockerTest.dll"]

 并设置属性使发布时复制到发布文件夹

Dockerfile是在生成镜像时运行的命令文件,提供生成镜像需要的库和操作命令

最后将项目在确认没有错误的情况下,发布到固定路径下

4. 在centos上面安装docker

使用如下命令(因为yum命令是联网下载安装包,因此centos必须在前面将网络配置OK)

yum install -y docker

5. 在centos上安装ftp并配置firewall(防火墙)和selinux

5.1 安装ftp:前者是ftp协议服务,后者是ftp服务器软件(也可以选用其他软件)

yum install -y ftp
yum install -y vsftpd

5.2 配置(vim打开/etc/vsftpd/vsftpd.conf)修改下面两个配置项目

# 禁用匿名用户  12 YES 改为NO
anonymous_enable=NO
# 禁止切换根目录 101 行 删除# chroot_local_user=YES

5.3 添加ftp用户

#创建一个用户 ftpuser
useradd ftpuser
#为用户 ftpuser 设置密码
echo "jingjing" | passwd ftpuser --stdin

5.4 限制用户 ftpuser只能通过 FTP 访问服务器,而不能直接登录服务器:

usermod -s /sbin/nologin ftpuser

5.5 为用户分配主目录

#添加一个欢迎文件
echo "Welcome to use FTP service." > /data/ftp/welcome.txt

#设置访问权限
chmod a-w /var/ftp && chmod 777 -R /var/ftp/pub

#设置为用户的主目录:
usermod -d /var/ftp ftpuser

5.6 防火墙和selinux设置(selinux是一种安全程序,会阻碍ftp)

# 关闭SELinux服务
setenforce 0 

# 允许ftp
firewall-cmd --add-service=ftp

5.7 启动服务

#开机启动
systemctl enable vsftpd.service
#启动服务
systemctl start vsftpd.service

5.8 在电脑上下载一个FileZilla

就可以使用用户ftpuser 和密码 jingjing访问centos了

6.将发布文件夹通过ftp发布到centos上

点击文件夹右键,选择上传即可

7. 使用docker命令创建镜像和容器并运行

7.1 首先使用cd命令跳转到publish文件夹目录下(有dockerfile的目录)

7.1 运行命令,将项目文件(使用dockerfile)生成为镜像Image

# 注意最后有一个点,意识是将当前目录编译为
# 镜像名为school版本号1.0.0的镜像 
docker build
-t school:1.0.0 .

 使用如下命令查询镜像列表

docker images

7.2 使用镜像启动容器

运行名字为school的容器,将本地的/var/ftp/pub/publish路径映射为容器的/app,将本地的8000端口映射为容器的80,使用school:1.0.0镜像产生容器,并返回容器ID

docker run --name=school -d -p 8000:80 -v /var/ftp/pub/publish:/app school:1.0.0 

 使用如下命令查询正在运行的容器

docker ps

7.3 最后就可以使用centos的ip+8000端口去访问asp .net core程序在docker中运行的网站了

猜你喜欢

转载自www.cnblogs.com/gamov/p/10128883.html