本文在介紹linux操作系統如何在ecs上搭建docker的基礎上,重點探討了其具體步驟,本文內容很緊湊,希望大家耐心學習。
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
添加yum源。
#?yum?install?epel-release?–y #?yum?clean?all #?yum?list
安裝并運行Docker。
#?yum?install?docker-io?–y #?systemctl?start?docker
檢查安裝結果。
#?docker?info
出現以下xin說明信息則表明安裝成功。
Docker基本用法
Docker守護進程管理。
#?systemctl?start?docker?????#運行Docker守護進程 #?systemctl?stop?docker??????#停止Docker守護進程 #?systemctl?restart?docker???#重啟Docker守護進程
鏡像管理。本文使用的是來自阿里云倉庫的Apache鏡像。
#?docker?pull?registry.cn-hangzhou.aliyuncs.com/lxepoo/apache-php5
修改標簽,由于阿里云倉庫鏡像的鏡像名稱很長,可以修改鏡像標簽以便記憶區分。
#?docker?tag??registry.cn-hangzhou.aliyuncs.com/lxepoo/apache-php5:latest?aliweb:v1
查看已有鏡像。
#?docker?images
強制刪除鏡像。
#?docker??rmi??–f??registry.cn-hangzhou.aliyuncs.com/lxepoo/apache-php5
容器管理。
e121d5f99e1e是執行docker images命令查詢到的IMAGE ID,使用docker run命令進入容器。
#?docker?run?–ti?e121d5f99e1e?/bin/bash
使用exit可以退出當前容器。
run命令加上–d參數可以在后臺運行容器,—name指定容器命名為apache。
#?docker?run?-d?--name?apache?e121d5f99e1e
進入后臺運行的容器。
#?docker?exec?-ti?apache?/bin/bash
將容器做成鏡像。
#?docker?commit?containerID/containerName??newImageName:tag
為了方便測試和恢復,先將源鏡像運行起來后再做一個命名簡單的鏡像做測試。
#?docker?commit?4c8066cd8c01?apachephp:v1
運行容器并將宿主機的8080端口映射到容器里去。
#?docker?run?-d?-p?8080:80?apachephp:v1
在瀏覽器輸入宿主機ip加8080端口訪問測試,出現以下內容則說明運行成功。
鏡像制作
準備dockerfile內容。
#?vim?Dockerfile? FROM?apachephp:v1??#聲明基礎鏡像來源 MAINTAINER?DTSTACK?#聲明鏡像擁有者 RUN?mkdir?/dtstact?#RUN后面接容器運行前需要執行的命令,由于Dockerfile文件不能超過127行, ?????????????????????????因此當命令較多時建議寫到腳本中執行 ENTRYPOINT?ping?www.aliyun.com?#開機啟動命令,此處最后一個命令需要是可在前臺持續執行的命令, ???????????????????????????????否則容器后臺運行時會因為命令執行完而退出。
構建鏡像。
docker?build?-t?webcentos:v1?.???#?.?是Dockerfile文件的路徑,不能忽略 docker?images????????????????????#查看是否創建成功 docker?run?–d?webcentos:v1???????#后臺運行容器 docker?ps????????????????????????#查看當前運行中的容器 docker?ps?–a?????????????????????#查看所有容器,包括未運行中的 docker?logs?CONTAINER?ID/IMAGE???#如未查看到剛才運行的容器,則用容器id或者名字查看啟動日志排錯 docker?commit?fb2844b6c070?dtstackweb:v1?#commit?后接容器id?和構建新鏡像的名稱和版本號。 docker?images????????????????????#列出本地(已下載的和本地創建的)鏡像 docker?push??????????????????????#將鏡像推送至遠程倉庫,默認為?Docker?Hub
將鏡像推送到registry。
docker?login?--username=dtstack_plus?registry.cn-shanghai.aliyuncs.com?#執行后輸入鏡像倉庫密碼 docker?tag?[ImageId]?registry.cn-shanghai.aliyuncs.com/dtstack123/test:[鏡像版本號] docker?push?registry.cn-shanghai.aliyuncs.com/dtstack123/test:[鏡像版本號]
在鏡像倉庫能查看到鏡像版本信息則說明push成功。
其中[ImageId],[鏡像版本號]請您根據自己的鏡像信息進行填寫。