1. 程式人生 > >docker容器中佈置靜態網站

docker容器中佈置靜態網站

# 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