Docker 這個東西 在3年前都聽說過, 一直沒有當回事兒,事實上是無需求。最近花了點時間 學習了一下。 感覺還挺好用的。
此處做一個備份, 以證明自己曾經瞭解過他。
1.什麼是Docker ?
我是花了一上午的時間,瞭解了它,網上有很多相關的資料,看一下你就懂了。 在此就贅述了。幾個重要的概念
Docker的第一句,是“Build, Ship and Run”。
Docker的第二句口號就是:“Build?once,Run?anywhere(搭建一次,到處能用)”。
Docker技術的三大核心概念,分別是:
- 鏡像(Image)
- 容器(Container)
- 倉庫(Repository)
這個圖很重要
2.在CentOS上如何安裝Docker
3.安裝Docker以後如何安裝NGINX
1.使用docker 下載nginx 鏡像 docker pull nginx
2.啓動nginx
docker run --name nginx -p 80:80 -d nginx
這樣就簡單的把nginx啓動了,但是我們想要改變配置文件nginx.conf ,進入容器,命令:
docker exec -it nginx bash
nginx.conf配置文件在 /etc/nginx/ 下面,但是你使用vim nginx.conf 或者vi nginx.conf
會發現vi或者vim命令沒有用,解決辦法:apt-get update 完成之後 apt-get install vim
此時你就可以自己定製nginx.con文件了,改好配置文件之後重啓容器,步驟,先把容器停了
docker stop nginx 然後重啓 docker start nginx
這樣不是很方便,還有第二種方式,掛載配置文件,就是把裝有docker宿主機上面的nginx.conf配置文件映射到啓動的nginx容器裏面,這需要你首先準備好nginx.con配置文件,如果你應經準備好了,下一步是啓動nginx
命令:docker run --name nginx -p 80:80 -v /home/docker-nginx/nginx.conf:/etc/nginx/nginx.conf -v /home/docker-nginx/log:/var/log/nginx -v /home/docker-nginx/conf.d/default.conf:/etc/nginx/conf.d/default.conf -d nginx
解釋下上面的命令:
--name 給你啓動的容器起個名字,以後可以使用這個名字啓動或者停止容器
-p 映射端口,將docker宿主機的80端口和容器的80端口進行綁定
-v 掛載文件用的,第一個-v 表示將你本地的nginx.conf覆蓋你要起啓動的容器的nginx.conf文件,第二個表示將日誌文件進行掛載,就是把nginx服務器的日誌寫到你docker宿主機的/home/docker-nginx/log/下面
第三個-v 表示的和第一個-v意思一樣的。
-d 表示啓動的是哪個鏡像
4.docker+nginx部署項目
1.docker search nginx先搜索一下nginx
2.docker pull nginx直接拉取nginx
3.創建守護式容器docker run -di --name=mynginx -p 80:80 nginx 這裏部署的話我就不使用-v掛載目錄了
4.登錄容器docker exec -it mynginx /bin/bash
5.把我們需要的資源使用docker cp 資源 mynginx:usr/share/nginx傳到docker中
6.進入docker的etc/nginx目錄的nginx.conf修改配置文件,把http中的include /etc/nginx/conf.d/*.conf;刪除,添加server標籤具體代碼
server {
listen 80;
server_name _; # _ 並不是重點 __ 也可以 ___也可以
return 403; # 403 forbidden
}
server {
listen 80;
server_name www.yzh1989.com;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root /usr/share/nginx/yzh1989;
index index.html;
}
}
注意因爲之前我們上傳的目錄是usr/share/nginx目錄,所以這裏也要寫,而且要加/覺得路徑,爲啥上傳到usr/share/nginx呢,因爲
nginx的默認頁面在那,當然我們也可以上傳到和配置文件相同的目錄etc/nginx,這樣root的內容直接寫yzh1989就行
7.編輯完配置後,我們直接在docker容器內輸入nginx -s reload重啓配置文件即可
參考:部署可以參考這篇文章