准備工作
windows Mac:直接去下載可視化工具 https://www.docker.com/products/docker-desktop
centos7 yum install docker-io -y
騰訊雲 https://cloud.tencent.com/document/product/1207/45596
使用docker下載nginx鏡像
docker pull nginx
如果網速慢的話 注意更換 docker源
依次執行以下命令
echo "OPTIONS='--registry-mirror=https://mirror.ccs.tencentyun.com'" >> /etc/sysconfig/docker
systemctl daemon-reload
service docker restart
啟動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
解釋下上面的命令:
--rm
容器終止運行后,自動刪除容器文件
--name
給你啟動的容器起個名字,以后可以使用這個名字啟動或者停止容器
-p
映射端口,將docker宿主機的80端口和容器的80端口進行綁定
-v
掛載文件用的,第一個-v 表示將你本地的nginx.conf覆蓋你要起啟動的容器的nginx.conf文件,第二個表示將日志文件進行掛載,就是把nginx服務器的日志寫到你docker宿主機的/home/docker-nginx/log/下面第三個-v 表示的和第一個-v意思一樣的。
-d
表示啟動的是哪個鏡像
我個人更喜歡第二種映射的方式,麻煩的是需要自己准備好nginx.conf 和default.conf文件,我是直接從容器里面復制的,然后根據自己的需要改的
前端該如何用docker做什么
通常前端 npm run build
之后生成dist文件 會把文件上傳通過ftp或者后台人員上傳到服務器 但如果服務器支持docker部署的話 就能非常方便的部署應用了
dockFile 是類似shell腳本的 docker構建文件
# 設置基礎鏡像
FROM nginx
# 定義作者
MAINTAINER lanbo
# 將dist文件中的內容復制到 /usr/share/nginx/html/ 這個目錄下面
COPY dist/ /usr/share/nginx/html/
COPY nginx.conf /etc/nginx/nginx.conf
RUN echo 'echo init ok!!'
nginx.conf 如果根據實際情況配置
打包鏡像
當前目錄下運行:docker build -t nginx-test .
后面的 . 不能省
運行容器
docker run --name nginx-docker -p 80:80 -d nginx-test
瀏覽器輸入localhost就可以訪問了前端頁面了
以上操作是服務器完成 或者本地制作好的鏡像上傳到服務器啟動也行
當然更高級是使用 jekins 集成自動獲取代碼 自動打包 自動上傳
參考 jekins部署docker