ECS上搭建Docker(CentOS7)


本文講述Docker在CentOS系統上的部署過程。Ubuntu系統下安裝docker,您可以點擊此處查看。更多詳細的實踐您可以參考docker實踐文檔

適用對象

適用於熟悉Linux操作系統,剛開始使用阿里雲ECS的開發者。

主要內容

  • 部署docker
  • docker基本用法
  • 鏡像制作

部署docker

本文主要說明手動安裝docker的操作步驟,您也可以選擇在雲市場購買相應鏡像,一鍵部署雲服務器。

本文實踐操作系統版本為CentOS 7.2 64 3.10.0-514.6.2.el7.x86_64

Docker要求64位的系統且內核版本至少為3.10

1、添加yum源。

  1. # yum install epel-release –y
  2. # yum clean all
  3. # yum list

2、安裝並運行Docker。

  1. # yum install docker-io –y
  2. # systemctl start docker

3、檢查安裝結果。

  1. # docker info

出現以下xin說明信息則表明安裝成功。

2

docker基本用法

1、Docker守護進程管理。

  1. # systemctl start docker #運行Docker守護進程
  2. # systemctl stop docker #停止Docker守護進程
  3. # systemctl restart docker #重啟Docker守護進程

2、鏡像管理。

下載基礎鏡像,具體操作可參考如何下載docker鏡像,本文使用的是來自阿里雲倉庫的Apache鏡像。您可在阿里雲docker市場搜索更多鏡像

  1. # docker pull registry.cn-hangzhou.aliyuncs.com/lxepoo/apache-php5

修改標簽,由於阿里雲倉庫鏡像的鏡像名稱很長,可以修改鏡像標簽以便記憶區分。

  1. # docker tag registry.cn-hangzhou.aliyuncs.com/lxepoo/apache-php5:latest aliweb:v1

查看已有鏡像。

  1. # docker images

強制刪除鏡像。

  1. # docker rmi –f registry.cn-hangzhou.aliyuncs.com/lxepoo/apache-php5

3、容器管理。e121d5f99e1e是執行docker images命令查詢到的IMAGE ID,使用docker run命令進入容器。

  1. # docker run –ti e121d5f99e1e /bin/bash

使用exit可以退出當前容器。run命令加上–d參數可以在后台運行容器,—name指定容器命名為apache。

  1. # docker run -d --name apache e121d5f99e1e

進入后台運行的容器。

  1. # docker exec -ti apache /bin/bash

將容器做成鏡像。

  1. # docker commit containerID/containerName newImageName:tag

為了方便測試和恢復,先將源鏡像運行起來后再做一個命名簡單的鏡像做測試。

  1. # docker commit 4c8066cd8c01 apachephp:v1

運行容器並將宿主機的8080端口映射到容器里去。

  1. # docker run -d -p 8080:80 apachephp:v1

在瀏覽器輸入宿主機ip加8080端口訪問測試,出現以下內容則說明運行成功。

1

鏡像制作

1、准備dockerfile內容。

  1. # vim Dockerfile
  2. FROM apachephp:v1 #聲明基礎鏡像來源
  3. MAINTAINER DTSTACK #聲明鏡像擁有者
  4. RUN mkdir /dtstact #RUN后面接容器運行前需要執行的命令,由於Dockerfile文件不能超過127行,因此當命令較多時建議寫到腳本中執行
  5. ENTRYPOINT ping www.aliyun.com #開機啟動命令,此處最后一個命令需要是可在前台持續執行的命令,否則容器后台運行時會因為命令執行完而退出。

2、構建鏡像。

  1. docker build -t webcentos:v1 . # . 是Dockerfile文件的路徑,不能忽略
  2. docker images #查看是否創建成功
  3. docker run d webcentos:v1 #后台運行容器
  4. docker ps #查看當前運行中的容器
  5. docker ps a #查看所有容器,包括未運行中的
  6. docker logs CONTAINER ID/IMAGE #如未查看到剛才運行的容器,則用容器id或者名字查看啟動日志排錯
  7. docker commit fb2844b6c070 dtstackweb:v1 #commit 后接容器id 和構建新鏡像的名稱和版本號。
  8. docker images #列出本地(已下載的和本地創建的)鏡像
  9. docker push #將鏡像推送至遠程倉庫,默認為 Docker Hub

3、將鏡像推送到registry。

  1. docker login --username=dtstack_plus registry.cn-shanghai.aliyuncs.com #執行后輸入鏡像倉庫密碼
  2. docker tag [ImageId] registry.cn-shanghai.aliyuncs.com/dtstack123/test:[鏡像版本號]
  3. docker push registry.cn-shanghai.aliyuncs.com/dtstack123/test:[鏡像版本號]

在鏡像倉庫能查看到鏡像版本信息則說明push成功

其中[ImageId],[鏡像版本號]請您根據自己的鏡像信息進行填寫

 https://help.aliyun.com/document_detail/51853.html

 

https://yq.aliyun.com/articles/60601?spm=5176.100239.blogcont68337.17.O9fc0l

 

鏡像加速器
Docker Hub 在國外,有時候拉取 Image 極其緩慢,可以使用國內的鏡像來實現加速

阿里雲
echo "DOCKER_OPTS=\"--registry-mirror=https://yourlocation.mirror.aliyuncs.com\"" | sudo tee -a /etc/default/docker
sudo service docker restart
其中 https://yourlocation.mirror.aliyuncs.com 是您在阿里雲注冊后的專屬加速器地址:

DaoCloud
sudo echo “DOCKER_OPTS=\”\$DOCKER_OPTS –registry-mirror=http://your-id.m.daocloud.io -d\”” >> /etc/default/docker
sudo service docker restart
其中 http://your-id.m.daocloud.io 是您在 DaoCloud 注冊后的專屬加速器地址:

源碼
獲取項目源碼, https://github.com/waylau/docker-demos 中的 samples/spring-boot

獲取項目鏡像, 執行

docker pull waylau/docker-spring-boot

https://yq.aliyun.com/articles/47344

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM