學(xué)習(xí)docker的參考資料
阿里云應(yīng)用場景
- 基于docker實現(xiàn)微服務(wù),提供敏捷開發(fā)
- 一鍵部署機(jī)器學(xué)習(xí)應(yīng)用
- 鏡像提供混合云資源帽揪,不需在多中云管理控制臺中反復(fù)切換
- 根據(jù)業(yè)務(wù)流量自動對業(yè)務(wù)擴(kuò)容/縮容域庇,不需要人工干預(yù)
包括Web應(yīng)用蕾哟,微服務(wù)架構(gòu)應(yīng)用,持續(xù)集成和持續(xù)交付的場景
阿里云解決了容器應(yīng)用整個生命周期中共缕,鏡像構(gòu)建洗出,分發(fā)、編排图谷、運(yùn)維的基礎(chǔ)問題翩活;同時提供了和三方服務(wù)的接口阱洪,用戶可以定制、集成自己的流程和方案菠镇。
場景一:創(chuàng)建一個使用Redis的Python應(yīng)用
添加內(nèi)容:構(gòu)建鏡像并推送到阿里云鏡像倉庫
#啟動docker
systemctl start docker
#1)根據(jù)app_useRedis文件夾下的的Dockerfile文件進(jìn)行構(gòu)建冗荸,命名為myflask
[root@master app_useRedis]# docker build -t myflask .
#2)通過docker images可以查看到本地新生成的鏡像,其中包含下載的python鏡像
myflask latest 7890ab4bc6d3 17 minutes ago 680.7 MB
docker.io/python 2.7 fa8e55b2235d 4 weeks ago 673.1 MB
#3)本地測試鏡像(后續(xù)有補(bǔ)充,請查看@!蚌本!):
docker run -it --rm -p 8080:8080 myflask
#4)打標(biāo)簽
docker tag 17f82536bbaf registry.cn-hangzhou.aliyuncs.com/ivyfan/myflask:0.2
#5)push到阿里云
docker push registry.cn-hangzhou.aliyuncs.com/ivyfan/myflask:0.2
添加內(nèi)容:本地鏡像測試
docker build會將app代碼在 build image上進(jìn)行編譯,后產(chǎn)生一個新的鏡像隘梨,測試的時候由于該實驗需要有一個數(shù)據(jù)庫程癌,因此需要添加一個redis的數(shù)據(jù)庫
#1)下載docker compose
curl -L https://github.com/docker/compose/releases/download/1.4.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
#2)檢查docker compose是否已經(jīng)安裝好了
docker-c
#>> docker-compose 完美~
#3)添加執(zhí)行權(quán)限
chmod a+x /usr/local/bin/docker-compose
#4)從docker.io/library/redis 中 pull redis數(shù)據(jù)庫
docker pull redis
#5)讓所有服務(wù)在后臺模式啟動
docker-compose -f [更改為自己的compose文件:flask.yml] up -d
>>
Creating appuseredis_redis_1 ...
Creating appuseredis_redis_1 ... done
Creating appuseredis_web_1 ...
Creating appuseredis_web_1 ... done
#6)使用docker ps命令來驗證應(yīng)用的容器,和在Docker主機(jī)上運(yùn)行的其他容器
>>
070f30834daa registry.aliyuncs.com/ivyfan/flask "/bin/sh -c 'python a" 3 seconds ago Up 1 seconds 0.0.0.0:32768->5000/tcp appuseredis_web_1
548307ff115a redis "docker-entrypoint.sh" 4 seconds ago Up 2 seconds 6379/tcp appuseredis_redis_1
解釋:此處的 0.0.0.0:32768->5000/tcp轴猎,是將docker內(nèi)的本地127.0.0.1的32768端口映射到虛擬機(jī)中的5000端口嵌莉,使得容器bash內(nèi)的app應(yīng)用可以在虛擬機(jī)中看到
為什么容器鏡像中build已經(jīng)包含了redis,還需要再安裝redis容器捻脖?
后續(xù)的實際操作中需要分配一個redis的容器來當(dāng)做數(shù)據(jù)庫锐峭,build生成的是一個應(yīng)用(顯示一行代碼)為什么redis沒有端口的暴露
因為實在容器的內(nèi)部使用,不需要被外界看到
#7)測試新的鏡像可婶, 通過參數(shù)-p 8080:
docker run -it --rm -p 8080:8080 myflask
docker logs -f appuseredis_web_1
在mac的瀏覽器下輸入:http://192.168.2.234:32768/ 地址為你的虛擬機(jī)地址
在centos的火狐瀏覽器下輸入:172.0.0.1:32768
#8)停止compose的服務(wù)
docker-compose -f flask.yml stop
#9)再次打開compose沿癞,端口變化,但是計數(shù)在上次結(jié)束的地方繼續(xù)增加
docker-compose -f flask.yml start
華麗結(jié)束~
場景二:基于容器技術(shù)的DevOps -微信聊天程序?qū)崙?zhàn)
CICD:continuous integration and continuous delivery
目的:DevOps將開發(fā)扰肌、測試和運(yùn)維三部分緊密連接起來抛寝,提供一條從軟件開發(fā)到質(zhì)量保障到技術(shù)運(yùn)營的自動化流水線,從而減少資源浪費(fèi)曙旭、提高質(zhì)量盗舰,并將產(chǎn)品快速推向市場。
- 利用Docker和對象存儲OSS輕松搭建ownCloud專屬網(wǎng)盤
您應(yīng)按以下步驟立即釋放實例桂躏。
登錄云服務(wù)器管理控制臺(https://ecs.console.aliyun.com/?spm=5176.app25442.3.1.VSfs9C#/home)钻趋。
單擊左側(cè)導(dǎo)航欄中的 實例。
選擇實例所在的地域剂习。
選擇需要實例蛮位,在 操作 列中,單擊 更多 > 釋放設(shè)置鳞绕。
在彈出的窗口中失仁,選擇 立即釋放。
單擊 下一步们何,然后單擊 確認(rèn)萄焦。
輸入您收到的手機(jī)驗證碼,然后單擊 確認(rèn)。
費(fèi)用總結(jié):小時監(jiān)測拂封,按使用量付費(fèi)
負(fù)載均衡SLB:0.02
云服務(wù)器:0.67
彈性公網(wǎng)IP:0.02