91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么使用docker打包部署鏡像

發布時間:2020-12-15 15:34:37 來源:億速云 閱讀:729 作者:Leah 欄目:開發技術

這篇文章給大家介紹怎么使用docker打包部署鏡像,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

一、項目結構如下:

這是一個react項目,打包后的靜態資源路徑是dist目錄。

怎么使用docker打包部署鏡像

二、重點看Dockerfile文件和docker/nginx.conf文件

 1. Dockerfile是一個用來構建鏡像的文本文件,詳細介紹可以參考鏈接:Docker Dockerfile

我的Dockerfile內容如下:

FROM nginx
WORKDIR /usr/src/app/
COPY ./docker/nginx.conf /etc/nginx/conf.d/default.conf
COPY ./dist /usr/share/nginx/html/
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]

Dockerfile中的大寫單詞是命令,各個命令的含義解釋:

  • FROM:定制的鏡像都是基于 FROM 的鏡像,這里的 nginx 就是定制需要的基礎鏡像。后續的操作都是基于 nginx。

  • RUN:用于執行后面跟著的命令行命令。有以下倆種格式:

  • WORKDIR:指定工作目錄。用 WORKDIR 指定的工作目錄,會在構建鏡像的每一層中都存在。WORKDIR 指定的工作目錄,必須是提前創建好的。docker build 構建鏡像過程中的,每一個 RUN 命令都是新建的一層。只有通過 WORKDIR 創建的目錄才會一直存在。

  • COPY:復制指令,從上下文目錄中復制文件或者目錄到容器里指定路徑。

  • EXPOSE:僅僅只是聲明端口。作用:幫助鏡像使用者理解這個鏡像服務的守護端口,以方便配置映射。在運行時使用隨機端口映射時,也就是 docker run -P 時,會自動隨機映射 EXPOSE 的端口。

  • CMD:類似于 RUN 指令,用于運行程序,但二者運行的時間點不同:CMD 在docker run 時運行。RUN 是在 docker build。作用:為啟動的容器指定默認要運行的程序,程序運行結束,容器也就結束。CMD 指令指定的程序可被 docker run 命令行參數中指定要運行的程序所覆蓋。注意:如果 Dockerfile 中如果存在多個 CMD 指令,僅最后一個生效。

2. docker/nginx.conf

server {
  listen 80;
  # gzip config
  gzip on;
  gzip_min_length 1k;
  gzip_comp_level 9;
  gzip_types text/plain text/css text/javascript application/json application/javascript application/x-javascript application/xml;
  gzip_vary on;
  gzip_disable "MSIE [1-6]\.";
  client_max_body_size 100m;

  root /usr/share/nginx/html;

  location / {
    try_files $uri $uri/ /index.html;
  }
  location /api/ {
  	# 此處為后端地址
    proxy_pass http://www.XXX.com/;
  }
}

三、執行docker build命令制作鏡像

我執行的命令是:docker build -t mydocker .
-t : 為鏡像打一個tag,tag名稱為mydocker
不要忘了后面有個點,表示在當前路徑下制作鏡像

四、執行docker run部署鏡像

我執行的命令是:docker run -p 80:80 mydocker
-p 是指定映射到本機的端口
docker run -p 本機端口:鏡像端口 鏡像名

五、打開localhost:80就可以看到項目啦

初次體驗docker本地部署,很多原理和docker命令還不太清楚,以后還會進一步學習~

補充一個小問題,我今天突然無法將鏡像推到公司的私有云了,是網絡環境有問題,就讓同事幫忙推一下。
我先將打包好的鏡像保存到本地:

docker save 10.10.10.52:5000/zhanwu-study/prod:4.1.2 > study.tar

然后將生成到當前目錄下的study.tar通過釘釘發給同事,他下來study.tar到本地,然后執行:

docker load < study.tar

更新一下版本(沒有生成新的鏡像,兩個版本是同一個鏡像):

docker tag 10.10.10.52:5000/zhanwu-study/prod:4.1.2 10.10.10.52:5000/zhanwu-study/prod:4.1.3

然后推到私有云:

docker push 10.10.10.52:5000/zhanwu-study/prod:4.1.3

關于怎么使用docker打包部署鏡像就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

驻马店市| 永泰县| 论坛| 两当县| 定边县| 兰州市| 永福县| 阿勒泰市| 武邑县| 贵定县| 蒲江县| 金堂县| 丹凤县| 合山市| 吉安市| 丰台区| 湘阴县| 阿合奇县| 南投县| 长沙县| 曲麻莱县| 五大连池市| 陆丰市| 收藏| 保德县| 息烽县| 清镇市| 乐东| 星座| 贡觉县| 三台县| 秭归县| 固始县| 安国市| 新丰县| 北安市| 柘荣县| 汶上县| 资溪县| 石台县| 临朐县|