docker快速創(chuàng)建輕量級(jí)的可移植的容器

  • 系列其他內(nèi)容
    1. docker快速創(chuàng)建輕量級(jí)的可移植的容器?
    2. docker&flask快速構(gòu)建服務(wù)接口
    3. docker&uwsgi高性能WSGI服務(wù)器生產(chǎn)部署必備
    4. docker&gunicorn高性能WSGI服務(wù)器生產(chǎn)部署必備
    5. docker&nginx&gunicorn實(shí)現(xiàn)負(fù)載均衡
    6. docker&ngxtop并實(shí)時(shí)解析nginx日志
    7. docker&supervisor監(jiān)控你的服務(wù)
    8. docker&pyinstaller兩步法構(gòu)建小體積容器
    9. locust對(duì)你的服務(wù)做高并發(fā)測(cè)試
    10. postman熱門的API調(diào)試工具
    11. docker+flask+gunicorn+nginx+pyinstaller+supervisor搭建一個(gè)輕量級(jí)滿足高并發(fā)性能的服務(wù)

docker安裝

  • 本教程是基于redhat linux服務(wù)器的
  • 介紹
    • docker為應(yīng)用程序提供了隔離的運(yùn)行空間:
    • 鏡像作為基礎(chǔ),一個(gè)鏡像可以創(chuàng)建多個(gè)容器躯概,方便服務(wù)的快速部署和遷移车摄;
    • 每個(gè)容器內(nèi)都包含一個(gè)獨(dú)享的完整用戶環(huán)境空間,并且一個(gè)容器內(nèi)的變動(dòng)不會(huì)影響其他容器的運(yùn)行環(huán)境;

在線安裝

  • 阿里云安裝docker

    curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
    
  • 啟動(dòng)服務(wù)

    # 先切換到root用戶, 依次執(zhí)行以下命令
    systemctl enable docker # 開機(jī)自動(dòng)啟動(dòng)docker
    systemctl start docker # 啟動(dòng)docker
    systemctl restart docker # 重啟dokcer
    

離線安裝

  • 打開網(wǎng)頁選擇對(duì)應(yīng)的docker版本
https://download.docker.com/linux/static/stable/x86_64/
  • 上傳到服務(wù)器(我們選擇的版本是docker-rootless-extras-20.10.5.tgz)
tar -xvf docker-20.10.5.tgz
cp docker/* /usr/bin/
dockerd &
docker -v

刪除docker

  • 查詢當(dāng)前系統(tǒng)安裝了哪些docker包
    yum list installed | grep docker
    yum remove containerd.io.x86_64 docker-ce.x86_64 docker-ce-cli.x86_64 docker-ce-rootless-extras.x86_64
    docker -v
    

構(gòu)建鏡像

  • 使用開源鏡像

    docker pull alpine # 輕量級(jí),但無法執(zhí)行python打包的exe文件
    docker pull debian:buster-slim # 體積也比較小∨常可以執(zhí)行python打包的exe文件
    
  • 構(gòu)建你的第一個(gè)鏡像

          具體的服務(wù)構(gòu)建可以建下篇內(nèi)容#docker&flask快速構(gòu)建服務(wù)接口#。
    
    • 驗(yàn)證flask服務(wù)的有效性
    # flask_test.py為我們構(gòu)造的flask服務(wù)
    python3 flask_test.py即可啟動(dòng)服務(wù)
    wget -O apirsult.txt "http://127.0.0.1:2222/test?name=xiaoming&pwd=123
    
- 依Dockerfile文件build個(gè)人Docker鏡像及服務(wù)的有效性

```
%%writefile Dockerfile
FROM python/3.8
WORKDIR /home/myfirstapi/
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
COPY . .
RUN pip install -r requirements.txt -q -i https://pypi.tuna.tsinghua.edu.cn/simple && \
rm -rf /var/cache/apk/*
expose 2222
CMD ["python3", "flask_test.py"]

# docker構(gòu)建鏡像并啟動(dòng)服務(wù)
docker build -t test/api:1.0 . 
docker run -d -p 2222:2222 test/api:1.0 
wget -O apirsult.txt "http://127.0.0.1:2222/test?name=xiaoming&pwd=123"
```

docker常用命令

  • 基本使用毒费,可以應(yīng)用docker構(gòu)建容器了
    • 容器的基本應(yīng)用丙唧,涉及到鏡像及容器構(gòu)建,容器查看相關(guān)內(nèi)容觅玻。
# 構(gòu)建名稱為test/api想际,版本為2.0的鏡像
docker build -t test/api:2.0 . 
# 通過鏡像test/api創(chuàng)建一個(gè)后臺(tái)運(yùn)行的容器,且映射端口4050
docker run -d -p 4050:4050 test/api:2.0 
# 進(jìn)入容器內(nèi)部交互式命令空間的兩種方式
docker run -it test/api:2.0 /bin/bash 
docker container exec -it container-id /bin/bash
# 查看并停止容器
docker ps
docker stop ontainer-id
# 查看日志
docker logs -f --tail 100 container-id
or 
vim /var/lib/docker/containers/容器ID/容器ID-json.log
# 查看端口
docker port container-id
  • 溜溜的溪厘,玩轉(zhuǎn)docker了可以
    • 涉及到容器遷移沼琉,修改及數(shù)據(jù)卷相關(guān)內(nèi)容
# 與容器中文件交互
docker cp container-id:/root/test.txt /root/
docker cp /root/ container-id:/root/test.txt
# 查看鏡像中的文件
docker exec container-id ls -lth
docker exec container-id cat file.py
# 查看容器的進(jìn)程情況
docker top container-id
docker stats container-id
# 保存修改的容器為鏡像
docker commit -a "my_name" -m "install xxx" container-id image_name
# 保存鏡像
docker save -o xxx.tar 鏡像名稱
# 加載鏡像名
docker load --input test.tar   
# 修改鏡像名稱
docker tag [鏡像id] [新鏡像名稱]:[新鏡像標(biāo)簽]
# 數(shù)據(jù)卷-使服務(wù)器和容器內(nèi)對(duì)應(yīng)的文件同步更新
docker run -d -p 4001:4000 --name web -v /home/linux:/home/docker/ test/api:1.0
  • 掀桌了了,快速刪除所有鏡像及容器
    • 快速停止桩匪,刪除所有的容器,鏡像
# 查看鏡像概覽
docker system df
# 刪除所有docker中所有未使用的數(shù)據(jù)
docker system prune -a
# 停止容器內(nèi)的所有進(jìn)程
docker pause container-id
# 刪除全部容器
docker kill $(docker ps -a -q)
# 刪除所有容器
docker rm $(docker ps -a -q)
# 刪除所有鏡像
docker rmi $(docker images -q)
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末友鼻,一起剝皮案震驚了整個(gè)濱河市傻昙,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌彩扔,老刑警劉巖妆档,帶你破解...
    沈念sama閱讀 219,110評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異虫碉,居然都是意外死亡贾惦,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,443評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門敦捧,熙熙樓的掌柜王于貴愁眉苦臉地迎上來须板,“玉大人,你說我怎么就攤上這事兢卵∠肮澹” “怎么了?”我有些...
    開封第一講書人閱讀 165,474評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵秽荤,是天一觀的道長甜奄。 經(jīng)常有香客問我柠横,道長,這世上最難降的妖魔是什么课兄? 我笑而不...
    開封第一講書人閱讀 58,881評(píng)論 1 295
  • 正文 為了忘掉前任牍氛,我火速辦了婚禮,結(jié)果婚禮上烟阐,老公的妹妹穿的比我還像新娘搬俊。我一直安慰自己,他們只是感情好曲饱,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,902評(píng)論 6 392
  • 文/花漫 我一把揭開白布悠抹。 她就那樣靜靜地躺著,像睡著了一般扩淀。 火紅的嫁衣襯著肌膚如雪楔敌。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,698評(píng)論 1 305
  • 那天驻谆,我揣著相機(jī)與錄音卵凑,去河邊找鬼。 笑死胜臊,一個(gè)胖子當(dāng)著我的面吹牛勺卢,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播象对,決...
    沈念sama閱讀 40,418評(píng)論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼黑忱,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了勒魔?” 一聲冷哼從身側(cè)響起甫煞,我...
    開封第一講書人閱讀 39,332評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎冠绢,沒想到半個(gè)月后抚吠,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,796評(píng)論 1 316
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡弟胀,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,968評(píng)論 3 337
  • 正文 我和宋清朗相戀三年楷力,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片孵户。...
    茶點(diǎn)故事閱讀 40,110評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡萧朝,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出延届,到底是詐尸還是另有隱情剪勿,我是刑警寧澤,帶...
    沈念sama閱讀 35,792評(píng)論 5 346
  • 正文 年R本政府宣布方庭,位于F島的核電站厕吉,受9級(jí)特大地震影響酱固,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜头朱,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,455評(píng)論 3 331
  • 文/蒙蒙 一运悲、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧项钮,春花似錦班眯、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,003評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至亚隙,卻和暖如春磁餐,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背阿弃。 一陣腳步聲響...
    開封第一講書人閱讀 33,130評(píng)論 1 272
  • 我被黑心中介騙來泰國打工诊霹, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人渣淳。 一個(gè)月前我還...
    沈念sama閱讀 48,348評(píng)論 3 373
  • 正文 我出身青樓脾还,卻偏偏與公主長得像,于是被迫代替她去往敵國和親入愧。 傳聞我的和親對(duì)象是個(gè)殘疾皇子鄙漏,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,047評(píng)論 2 355

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