Docker容器化部署


python生成requirement.txt文件

  1. pip
    ? 進入所需的python環(huán)境贮泞,在命令行里輸入pip freeze > ./requirements.txt略水。
    ? 生成的requirements.txt里包含這個環(huán)境里下周的所有的python包眨业。
    ? 安裝:pip install -r path/requirements.txt

2.pipreqs
? 進入所需的python環(huán)境弱卡,在命令行里輸入
? pip install pipreqs,
? pipreqs . --encoding=utf8 --force喻旷。
? 生成的requirements.txt里只包代碼里import的python包冕房。
? 安裝:pip install -r path/requirements.txt

  1. pip-compile
    使用前需要安裝 pip install pip-tools 如果權(quán)限不夠膛壹,請 sudo
    先在項目目錄中創(chuàng)建 requirements.in 文件赞厕,然后手動寫入包文件名稱
    執(zhí)行 pip-compile requirements.in, 然后 cat requirements.txt

  2. 結(jié)論

    名稱 優(yōu)點 缺點
    pip freeze 包含列表完全 不相關(guān)的依賴包也會包含進來
    pipreqs 只會包含項目 imports 的包 包含列表不是很完全
    pip-compile 精準(zhǔn)控制項目依賴包 需要手動操作收奔,不方便

docker容器化部署

  1. Win10下創(chuàng)建目錄文本烙无。選擇在項目目錄下創(chuàng)建docker目錄,分別新建三個文件:Dockerfile详拙,app.py帝际,equirements.txt
    ? Dockerfile(沒有后綴):一個文本文件,包含了一條條的指令(Instruction)饶辙,每一條指令構(gòu)建一層蹲诀,因此每一條指令的內(nèi)容,就是描述該層應(yīng)當(dāng)如何構(gòu)建畸悬。是創(chuàng)建鏡像的必須文件侧甫。
# 基于鏡像基礎(chǔ)
FROM python:3.6.8  
# 復(fù)制當(dāng)前代碼文件到容器中 /app
WORKDIR /home/Event_detection_v2
COPY . /home/Event_detection_v2
# 設(shè)置代碼文件夾工作目錄 /app
EXPOSE 19952
# 安裝所需的包
RUN apt-get update \
    && apt-get install -y vim \
    && pip install pip -U \
    && pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple \
    && pip install --upgrade pip \
    && pip install -r requirements.txt --default-timeout=1000
# Run app.py when the container launches
#nohup python -u test.py > test.out 2>&1 &,記錄控制臺輸出
CMD ["python", "app.py"]

2.app.py:python項目的源代碼蹋宦,這里測試的單個python文件披粟,如果是一個完整項目,可以將整個文件夾拷貝到這里冷冗。

  1. 生成鏡像守屉。本文采用的windows環(huán)境。
docker常用命令:
dockers ps -a  # 查看所有鏡像蒿辙、容器
docker images # 查看所有鏡像

docker rm container_id #刪除容器
docker rmi image_id  # 刪除鏡像

docker stop container_id # 停止容器
docker run container_id # 啟動容器

1)生成鏡像:docker build -t my_image:v1 -f Dockerfile .命令中最后的一個點不要忘記拇泛,這里表示當(dāng)前目錄

docker build -t event-detection:v1.0 .
docker save -o event-detection-v1.0.tar event-detection:v1.0  #打包

2)導(dǎo)入并啟動程序滨巴,設(shè)置映射端口

docker load -i event_detection-v1.0.tar 
docker run  -p 19952:19952 -d event_detection:v1.0 --restart=always

3)啟動程序,設(shè)置映射端口(event_detect通過bash的方式)

 docker run -itd -p 19952:19952 --name jsy_dev --restart=always 


#-d 使容器在后臺運行俺叭。-i:打開容器的標(biāo)準(zhǔn)輸入恭取。-t:告訴docker為容器建立一個命令行終端。

docker run -it -d -p 19952:19952 --name jsy_dev jsy_dev:v1 /bin/bash 
docker exec -it jsy_dev /bin/bash
 python test.py

docker run -p 19952:19952 -d -v /home/event/config.ini:/home/Event_detect/config.ini event_detection:v6.0

? ?運行鏡像:docker run –p 19952:19952 –d my_images:v2.0 --restart=always
6)查看鏡像docker images
7)升級清華源

pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pip -U

8)windows端口映射問題:查看windows的docker的默認ip:docker-machine ip default熄守,一般為192.168.99.100蜈垮。

9)順序:鏡像docker rmi-》容器docker rm-》倉庫(我的是先docker rm,再docker rmi)
注:
docker load -i centos-latest.tar.xz #導(dǎo)入本地鏡像
docker save -o /opt/centos.tar #centos #導(dǎo)出鏡像
docker rmi 鏡像ID/鏡像名稱 #刪除指定ID的鏡像裕照,通過鏡像啟動容器的時候鏡像不能被刪除攒发,除非將容器全部關(guān)閉
docker rm 容器ID/容器名稱 #刪除容器
docker rm 容器ID/容器名-f #強制刪除正在運行的容器
docker commit CONTAINER_ID [REPOSITORY[:TAG]] #修改容器后重新提交為鏡像
docker commit --change='CMD ["python","api_run.py"]' a142a event_detection:v8.0
docker system df 查看Docker的磁盤使用情況
docker system prune 命令可以用于清理磁盤,刪除關(guān)閉的容器晋南、無用的數(shù)據(jù)卷和網(wǎng)絡(luò)惠猿,以及dangling鏡像(即無tag的鏡像)
docker system prune -a 命令清理得更加徹底,可以將沒有容器使用Docker鏡像都刪掉

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末负间,一起剝皮案震驚了整個濱河市偶妖,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌政溃,老刑警劉巖餐屎,帶你破解...
    沈念sama閱讀 222,807評論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異玩祟,居然都是意外死亡,警方通過查閱死者的電腦和手機屿聋,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,284評論 3 399
  • 文/潘曉璐 我一進店門空扎,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人润讥,你說我怎么就攤上這事转锈。” “怎么了楚殿?”我有些...
    開封第一講書人閱讀 169,589評論 0 363
  • 文/不壞的土叔 我叫張陵撮慨,是天一觀的道長。 經(jīng)常有香客問我脆粥,道長砌溺,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,188評論 1 300
  • 正文 為了忘掉前任变隔,我火速辦了婚禮规伐,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘匣缘。我一直安慰自己猖闪,他們只是感情好鲜棠,可當(dāng)我...
    茶點故事閱讀 69,185評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著培慌,像睡著了一般豁陆。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上吵护,一...
    開封第一講書人閱讀 52,785評論 1 314
  • 那天盒音,我揣著相機與錄音,去河邊找鬼何址。 笑死里逆,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的用爪。 我是一名探鬼主播原押,決...
    沈念sama閱讀 41,220評論 3 423
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼偎血!你這毒婦竟也來了诸衔?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,167評論 0 277
  • 序言:老撾萬榮一對情侶失蹤颇玷,失蹤者是張志新(化名)和其女友劉穎笨农,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體帖渠,經(jīng)...
    沈念sama閱讀 46,698評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡谒亦,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,767評論 3 343
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了空郊。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片份招。...
    茶點故事閱讀 40,912評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖狞甚,靈堂內(nèi)的尸體忽然破棺而出锁摔,到底是詐尸還是另有隱情,我是刑警寧澤哼审,帶...
    沈念sama閱讀 36,572評論 5 351
  • 正文 年R本政府宣布谐腰,位于F島的核電站,受9級特大地震影響涩盾,放射性物質(zhì)發(fā)生泄漏十气。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,254評論 3 336
  • 文/蒙蒙 一春霍、第九天 我趴在偏房一處隱蔽的房頂上張望桦踊。 院中可真熱鬧,春花似錦终畅、人聲如沸籍胯。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,746評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽杖狼。三九已至炼蛤,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間蝶涩,已是汗流浹背理朋。 一陣腳步聲響...
    開封第一講書人閱讀 33,859評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留绿聘,地道東北人嗽上。 一個月前我還...
    沈念sama閱讀 49,359評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像熄攘,于是被迫代替她去往敵國和親兽愤。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,922評論 2 361

推薦閱讀更多精彩內(nèi)容