1. 程式人生 > >在Centos7上配置docker執行DotNetCore專案

在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中執行的網站了