docker容器中佈置靜態網站(基於雲伺服器ubuntu系統)
- 伺服器準備(ubuntu)
- docker
- nginx
- 靜態網頁製作
- 瀏覽器測試
伺服器佈置
這裡推薦使用雲伺服器(阿里雲、華為雲、騰訊雲)可以免費使用幾天。在我們買了伺服器後會遇到如下問題:
本地電腦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容器的映象就可以了,如下
最後就是檢視效果了,瀏覽器輸入地址和埠號就可以了