日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

Docker的基本使用(部署python项目)+两个奇技淫巧,将 Docker 镜像体积减小 99%

發(fā)布時間:2024/7/5 python 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Docker的基本使用(部署python项目)+两个奇技淫巧,将 Docker 镜像体积减小 99% 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

兩個奇技淫巧,將 Docker 鏡像體積減小 99%

使用Docker運行程序

Docker的基本使用(部署python項目)

一、準(zhǔn)備項目

?

我寫的是一個爬取某ppt網(wǎng)站的代碼,就一個ppt1.py是爬蟲,然后,ppts是存放下載的ppt的

?

二、準(zhǔn)備requirement.txt文件

這個是需要哪些python庫支持,寫好

?

?

三、準(zhǔn)備Dockerfile文件

需要一個名為Dockerfile的文件,沒有后綴,這個創(chuàng)建docker鏡像的配置文件

FROM python:3.6 ENV PATH /usr/local/bin:$PATH ADD . /code WORKDIR /code RUN pip install -r requirements.txt CMD python ppt1.py

?

FROM:需要什么環(huán)境

ENV:修改path,即增加/usr/local/bin這個環(huán)境變量

ADD:將本地代碼放到虛擬容器中,它有兩個參數(shù),第一個是 . ,代表本地當(dāng)前路徑;第二個參數(shù)是/code,代表虛擬容器中的路徑,即將本地項目的所有內(nèi)容放到虛擬容器的/code目錄下,以便在虛擬容器中運行代碼

WORKDIR:指定工作目錄,也就是剛才的/code,在虛擬容器中的目錄

RUN:執(zhí)行某些環(huán)境準(zhǔn)備工作,docker容器中只有python3環(huán)境,還需要python的庫,這里安裝那些庫

CMD:運行項目的命令行命令

?

四、開始創(chuàng)建鏡像

docker build -t pptdemo:latest .

?

這樣應(yīng)該就沒錯了,最后報了個警告,有時間去了解了解...

$ docker build -t pptdemo:latest . Sending build context to Docker daemon 23.55kB Step 1/6 : FROM python:3.6---> 55fb8aca33df Step 2/6 : ENV PATH /usr/local/bin:$PATH---> Using cache---> 97e82715b8ee Step 3/6 : ADD . /code---> 9d2d253015ee Step 4/6 : WORKDIR /code Removing intermediate container 25ccdad420a0---> ec462b723417 Step 5/6 : RUN pip install -r requirements.txt---> Running in 83e607d0bc06 Collecting requests (from -r requirements.txt (line 1))Downloading https://files.pythonhosted.org/packages/7d/e3/20f3d364d6c8e5d2353c72a67778eb189176f08e873c9900e10c0287b84b/requests-2.21.0-py2.py3-none-any.whl (57kB) Collecting pyquery (from -r requirements.txt (line 2))Downloading https://files.pythonhosted.org/packages/09/c7/ce8c9c37ab8ff8337faad3335c088d60bed4a35a4bed33a64f0e64fbcf29/pyquery-1.4.0-py2.py3-none-any.whl Collecting idna<2.9,>=2.5 (from requests->-r requirements.txt (line 1))Downloading https://files.pythonhosted.org/packages/14/2c/cd551d81dbe15200be1cf41cd03869a46fe7226e7450af7a6545bfc474c9/idna-2.8-py2.py3-none-any.whl (58kB) Collecting chardet<3.1.0,>=3.0.2 (from requests->-r requirements.txt (line 1))Downloading https://files.pythonhosted.org/packages/bc/a9/01ffebfb562e4274b6487b4bb1ddec7ca55ec7510b22e4c51f14098443b8/chardet-3.0.4-py2.py3-none-any.whl (133kB) Collecting certifi>=2017.4.17 (from requests->-r requirements.txt (line 1))Downloading https://files.pythonhosted.org/packages/9f/e0/accfc1b56b57e9750eba272e24c4dddeac86852c2bebd1236674d7887e8a/certifi-2018.11.29-py2.py3-none-any.whl (154kB) Collecting urllib3<1.25,>=1.21.1 (from requests->-r requirements.txt (line 1))Downloading https://files.pythonhosted.org/packages/62/00/ee1d7de624db8ba7090d1226aebefab96a2c71cd5cfa7629d6ad3f61b79e/urllib3-1.24.1-py2.py3-none-any.whl (118kB) Collecting lxml>=2.1 (from pyquery->-r requirements.txt (line 2))Downloading https://files.pythonhosted.org/packages/5d/d4/e81be10be160a6323cf5f29f1eabc9693080cb16780a2e19c96091ee37ee/lxml-4.3.0-cp36-cp36m-manylinux1_x86_64.whl (5.7MB) Collecting cssselect>0.7.9 (from pyquery->-r requirements.txt (line 2))Downloading https://files.pythonhosted.org/packages/7b/44/25b7283e50585f0b4156960691d951b05d061abf4a714078393e51929b30/cssselect-1.0.3-py2.py3-none-any.whl Installing collected packages: idna, chardet, certifi, urllib3, requests, lxml, cssselect, pyquery Successfully installed certifi-2018.11.29 chardet-3.0.4 cssselect-1.0.3 idna-2.8 lxml-4.3.0 pyquery-1.4.0 requests-2.21.0 urllib3-1.24.1 Removing intermediate container 83e607d0bc06---> 22244632da67 Step 6/6 : CMD python ppt1.py---> Running in c5ff77a9f680 Removing intermediate container c5ff77a9f680---> 07cfec786f1a Successfully built 07cfec786f1a Successfully tagged pptdemo:latest SECURITY WARNING: You are building a Docker image from Windows against a non-Windows Docker host. All files and directories added to build context will have '-rwxr-xr-x' permissions. It is recommended to double check and reset permissions for sensitive files and directories.

?

繼續(xù)輸入代碼查看是否創(chuàng)建成功

?

五、運行

docker run pptdemo

我成功了!

?

順便一提,如果我們需要暴露接口,比如搭了一個網(wǎng)站,需要暴露端口,因為暴露的是容器的端口,需要訪問宿主機能訪問到,所以需要做端口映射

可以參考:https://www.cnblogs.com/jie-fang/p/7920863.html

docker run -d -p 8080:80 nginx

比如這樣,就將宿主機的8080端口映射到容器的80端口,訪問localhost:8080就可以了

注意,windows下不同,因為docker需要Linux環(huán)境,其實在windows上開了一個虛擬機

dcoker-machine ip default

可以顯示出ip為多少,這樣,需要利用這個ip才能訪問容器,一般是,192.168.99.100,那么192.168.99.100:8080即可訪問到接口,不然就是你配錯了

進入docker容器:

docker exec -i -t pptdemo /bin/bash

查看docker容器運行日志:

docker logs pptdemo

?

?

六、關(guān)于部署

1.push到dockerhub,然后在裝好docker的服務(wù)器上pull下來鏡像,run即可

2.復(fù)制源代碼到服務(wù)器,在裝好docker的服務(wù)器上重新執(zhí)行 build,run

3.將image導(dǎo)出,復(fù)制到裝好docker的服務(wù)器,載入image,run即可

?

1.push到dockerhub?

優(yōu)點在于,推送到dockerhub,只要有網(wǎng)即可方便推拉,缺點是,推送特別慢,而且要反復(fù)推,我正在查有沒方法換源之類。。。

1.在dockerhub注冊帳號

2.新建一個庫,我的叫:pptdemo

3.命令行登錄

docker login -u happycodes

4.tag打標(biāo)簽

docker tag pptdemo:latest happycodes/pptdemo:latest

5.push

docker push happycodes/pptdemo

?

2、復(fù)制源碼到服務(wù)器

這個比較簡單,就類似于再構(gòu)建一遍,缺點是又要下依賴,又要重新構(gòu)建,比較慢

?

3、導(dǎo)出image,拷貝image,載入image

比較合適的方法,構(gòu)建一遍,復(fù)制多遍,即可

#將鏡像存儲 docker save nginx:latest > ./nginx.tar docker save xxxxx(image id) > ./nginx.tar

#導(dǎo)入鏡像文件
docker load --input ./nginx.tar

#通過符號的方式來導(dǎo)入
docker load < ./nginx.tar

?

?

七、可選、刪除多余的容器和鏡像

容器不停,不能刪對應(yīng)的image

關(guān)于容器:

$ docker ps // 查看所有正在運行容器 $ docker stop containerId // containerId 是容器的ID

$ docker ps -a // 查看所有容器
$ docker ps -a -q // 查看所有容器ID

$ docker stop $(docker ps -a -q) // stop停止所有容器
$ docker rm $(docker ps -a -q) // remove刪除所有容器

?

關(guān)于images

?
123docker images? // 查看當(dāng)前有些什么imagesdocker rmi <image id>? // 刪除指定id的imagedocker rmi $(docker images -q)? // 要刪除全部image的話

  

八、使用docker-compose部署

簡單說說docker-compose,他是python寫的,為了解決docker部署的繁雜配置和多容器部署的配置問題,例如需要做容器端口和宿主機端口映射,配置容器ip等。

pip install docker-compose 即可

使用很簡單,編寫 docker-compose.yml 文件即可,例如我的代理池,需要配置映射端口

原文地址:[https://www.cnblogs.com/zmdcomeon/archive/2019/11/05/11801443.html](https://www.cnblogs.com/zmdcomeon/archive/2019/11/05/11801443.html)

總結(jié)

以上是生活随笔為你收集整理的Docker的基本使用(部署python项目)+两个奇技淫巧,将 Docker 镜像体积减小 99%的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日韩视频免费观看 | 琪琪午夜伦理 | jjzz黄色片 | 亚洲国产精品无码久久久 | 99在线无码精品入口 | 欧美成人一二三 | 日韩啪啪网站 | 成人午夜淫片免费观看 | 国产欧美精品在线 | 精品国产乱码久久久久 | 操碰人人 | 中文字幕一区久久 | 国内一级黄色片 | 亚洲区色 | 亚洲免费av网 | 色噜噜色综合 | 91视频官网 | 精品国产一区二区在线观看 | 麻豆精品a∨在线观看 | 国产亚洲一区二区三区在线观看 | 性xxx18 | 瑟瑟久久 | 国内露脸中年夫妇交换 | 中日韩黄色片 | 青青青在线免费观看 | 国语播放老妇呻吟对白 | 黄色性情网站 | 久久国产在线观看 | 日韩中文av在线 | 男人的天堂视频在线观看 | 18xxxx日本| aaa人片在线 | 91亚洲影院| 国产精品毛片一区二区三区 | 麻豆视频在线观看免费网站 | 黑人精品xxx一区一二区 | 欧美日韩精品一区二区三区四区 | 视频在线91| 国产精品网站在线观看 | 中文在线字幕免费观 | 欧美在线网站 | 香蕉黄色片 | 欧美丰满美乳xxⅹ高潮www | 亚洲手机av| 国产日批| 好吊一区| 91另类| 九九热这里只有精品6 | 国产欧美一区二区精品性色 | 免费高清欧美大片在线观看 | 亚洲一区二区三区四区视频 | 国产亚洲欧美精品久久久久久 | 奇米影视9999 | 91成人破解版 | 黄色在线视频播放 | 亚洲不卡一区二区三区 | 欧美激情视频在线观看 | 亚洲爆爽| 成人羞羞国产免费动态 | 国产精品熟女视频 | 99久久精品国产一区色 | 成人三级做爰av | 99热99热| 午夜精品极品粉嫩国产尤物 | 精品亚洲永久免费精品 | 欧美视频一区二区在线 | 激情视频在线免费观看 | 欧美成人综合一区 | 午夜精品久久久久久久蜜桃 | 亚洲精品另类 | 91av视频网| 和黑帮大佬的365 | 蝌蚪自拍网站 | 免费在线观看视频 | 美女高潮流白浆视频 | 成人精品免费看 | 91福利一区二区 | 欧美一区二区久久 | 羞羞涩涩网站 | 国产免费一区二区三区四区五区 | 亚洲影视一区二区三区 | 色乱码一区二区三区网站 | 国产免费毛卡片 | 先锋影音av在线资源 | 亚洲精品成av人片天堂无码 | 在线视频一区二区 | 日本视频在线播放 | 国产传媒第一页 | 亚洲福利 | www免费网站在线观看 | 国产三级自拍 | 一级特黄色 | 免费成人在线观看动漫 | 天天亚洲| 欧美日韩一区二区三区四区五区 | 人妻与黑人一区二区三区 | 在线日韩精品视频 | 超碰在线人人 | 国产内射一区 |