在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(橋接模式
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中執行的網站了