docker容器中佈置靜態網站

zh發表於2021-01-03

docker容器中佈置靜態網站(基於雲伺服器ubuntu系統)

  1. 伺服器準備(ubuntu)
  2. docker
  3. nginx
  4. 靜態網頁製作
  5. 瀏覽器測試

伺服器佈置

這裡推薦使用雲伺服器(阿里雲、華為雲、騰訊雲)可以免費使用幾天。在我們買了伺服器後會遇到如下問題:

本地電腦ping伺服器主機發現ping不通,請求超時

我們需要在管理伺服器的介面找到安全組那一欄,然後在安全組出入都要加入icmp這個,建議直接一鍵新增所有。

然後我們在本地電腦就可以ping通伺服器了。

docker安裝

在佈置好雲伺服器後,我們使用apt-get update, apt-get upgrade 更新資訊。


然後,我們輸入docker,出現如下錯誤:

接著,我們按照通常的按照軟體的方法apt-get install docker.io, apt-get install docker.ce,發現出現以下問題

Package 'docker-ce' has no installation candidate

處理辦法如下:

#新增docker源
sudo echo "deb https://download.docker.com/linux/ubuntu zesty edge" > /etc/apt/sources.list.d/docker.list

#支援解析https
apt-get install -y apt-transport-https ca-certificates curl software-properties-common

#新增GPG金鑰
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

#設定儲存庫位置
add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

然後我們再執行就可以得到下面的結果了

接著就是驗證安裝結果了,輸入docker run hello-world

nginx安裝

接下來就是安裝nginx了,常規操作apt-get install nginx

接下來就是檢視安裝效果了,輸入命令service start nginx,然後瀏覽器輸入伺服器外網ip地址就可以看到nginx預設的介面了。這裡會出現一些問題:

1.

問題:nginx: [emerg] bind() to [::]:80 failed (98: Address already in use)

nginx: [emerg] still could not bind()

解決辦法:netstat -ntlp | grep 80檢視

然後輸入service nginx stop,再次檢視就沒有了

問題:nginx: [emerg] "server" directive is not allowed here in /etc/nginx/nginx.conf:86

解決辦法

vim /etc/nginx/nginx.conf
將新增的
server {
....
}
放到 
http {
...
}
就可以解決了

靜態網頁製作

首先:mkdir -p /var/www/html
然後 cd到目錄,接著執行vim index.html
html中的內容自己定義
然後儲存退出,然後修改配置檔案中預設的index.html路徑,如下

然後重啟nginx,service nginx restart

瀏覽器測試

最後,我們啟動docker容器的映象就可以了,如下

最後就是檢視效果了,瀏覽器輸入地址和埠號就可以了

相關文章