docker容器中佈置靜態網站
阿新 • • 發佈:2021-01-04
# docker容器中佈置靜態網站(基於雲伺服器ubuntu系統)
1. 伺服器準備(ubuntu)
2. docker
3. nginx
4. 靜態網頁製作
5. 瀏覽器測試
## 伺服器佈置
這裡推薦使用雲伺服器(阿里雲、華為雲、騰訊雲)可以免費使用幾天。在我們買了伺服器後會遇到如下問題:
### 本地電腦ping伺服器主機發現ping不通,請求超時
我們需要在管理伺服器的介面找到安全組那一欄,然後在安全組出入都要加入icmp這個,建議直接一鍵新增所有。
![](https://img2020.cnblogs.com/blog/2061063/202101/2061063-20210103214129414-171238909.png)
然後我們在本地電腦就可以ping通伺服器了。
## docker安裝
在佈置好雲伺服器後,我們使用`apt-get update, apt-get upgrade `更新資訊。
![](https://img2020.cnblogs.com/blog/2061063/202101/2061063-20210103215606827-1456842854.png)
![](https://img2020.cnblogs.com/blog/2061063/202101/2061063-20210103215825928-973262730.png)
然後,我們輸入`docker`,出現如下錯誤:
![](https://img2020.cnblogs.com/blog/2061063/202101/2061063-20210103215905266-1896843924.png)
接著,我們按照通常的按照軟體的方法`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"
```
然後我們再執行就可以得到下面的結果了
![](https://img2020.cnblogs.com/blog/2061063/202101/2061063-20210103221236534-545397533.png)
接著就是驗證安裝結果了,輸入`docker run hello-world`
![](https://img2020.cnblogs.com/blog/2061063/202101/2061063-20210103222047438-1360831762.png)
## nginx安裝
接下來就是安裝nginx了,常規操作`apt-get install nginx`
![](https://img2020.cnblogs.com/blog/2061063/202101/2061063-20210103222530439-2077069368.png)
接下來就是檢視安裝效果了,輸入命令`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`檢視
![](https://img2020.cnblogs.com/blog/2061063/202101/2061063-20210103224114154-868309232.png)
然後輸入`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路徑,如下
![](https://img2020.cnblogs.com/blog/2061063/202101/2061063-20210103225041389-1031126737.png)
![](https://img2020.cnblogs.com/blog/2061063/202101/2061063-20210103225107688-1334331345.png)
然後重啟nginx,`service nginx restart`
## 瀏覽器測試
最後,我們啟動docker容器的映象就可以了,如下
![](https://img2020.cnblogs.com/blog/2061063/202101/2061063-20210103225406541-1527464256.png)
最後就是檢視效果了,瀏覽器輸入地址和埠號就可以了
![](https://img2020.cnblogs.com/blog/2061063/202101/2061063-20210103225431144-15918013