Docker 服務容器化部署的利器

Docker 是一個開源的應用容器引擎,讓開發者可以打包他們的應用以及依賴包到一個可移植的容器中,然後發佈到任何流行的Linux機器或Windows 機器上,也可以實現虛擬化,容器是完全使用沙箱機制,相互之間不會有任何接口。

Docker 可以爲應用開發人員提供一套構建與共享的標準, 支持在任何基礎架構中都能實現簡潔、敏捷的開發方式,從而可以更快速的部署應用。


初步瞭解下Docker

先到官網查看Docker的一些基本概念,然後獲取安裝Docker-Desktop;

Docker架構

Docker採用的是client-server的架構方式,client與docker-server的守護進程交換,守護進程負責構建、運行和分發我們的應用容器。client和server可以部署在同一臺機器上,也可以用本地的一個client去連接遠端的server, 二者通過socket進行通信交互;
在這裏插入圖片描述

Docker的一些常用命令

  1. 查詢本地images
    docker images

  2. 根據image id刪除image
    docker image rm 42f819fec197

  3. 構建image, 在一個包含Dockerfile的目錄下執行
    docker build -t healthapp-product-admin-rpc .

  4. 根據一個image, 啓動一個容器(應用)
    docker run -d -e ENV=DEV -p 30000:20880 -e DUBBO_IP_TO_REGISTRY=10.1.0.54 -e DUBBO_PORT_TO_REGISTRY=30000 -e JAVA_OPTS='' healthapp-product-admin-rpc

  5. 查看本地正在運行的容器
    docker ps

  6. 查看所有容器,包含停掉的(啓動失敗)
    docker ps -a

  7. 查看容器日誌(標準輸出),需要是正在運行的容器
    docker logs --since="2020-01-04" --tail=10 457898765456

  8. 將容器中的文件copy出來
    docker cp 4bba6d6692a9:/app/logs ./infos

  9. 連接進入到一個容器裏面
    docker exec -it 7734dea48de8 /bin/sh

  10. 手動停止容器
    docker stop 873f9147382f

  11. 打tag重命名image
    docker tag ccr.ccs.tencentyun.com/doctorwork/jre:8-centos7 jre:8-centos7

  12. 批量刪除已經existed的容器

docker ps -a | grep Exited | cut -d ' ' -f 1 | xargs docker rm
or
docker rm `docker ps -a | grep Exited | awk '{print $1}'`
  1. 批量刪除名稱或標籤爲none的鏡像
docker rmi -f  `docker images | grep '<none>' | awk '{print $3}'`

自動化構建

在整個CI,CD過程中,如果我們使用jenkins進行項目的編譯打包,那同時這裏我們就能直接生成image, 並push到docker-image-hub中去;
在jenkins的Build流程後添加一個Post Steps,內容如下

#定義app_name,根據實際項目修改
app_name='dubbo-admin-web'

#獲取編譯的分支
branch=`echo ${GIT_BRANCH} | awk -F'/' '{print $NF}'`

#鏡像倉庫信息
image_registry="ccr.ccs.tencentyun.com"
image_namespace="hinsteny_hub"

#定義鏡像tag
image_tag="${branch}-${BUILD_NUMBER}-$(date +%F)"
image_url="${image_registry}/${image_namespace}/${app_name}:${image_tag}"

#進入到包含Dockerfile文件的目錄
cd dubbo-admin-distribution/

#開始構建、上傳和刪除本地鏡像
docker build -t ${image_url} .
#push本地構建好的image到遠端
docker push ${image_url}
#刪除本地image
docker image rm ${image_url}

其他

發佈了80 篇原創文章 · 獲贊 91 · 訪問量 19萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章