本文在介紹linux操作系統(tǒng)如何在ecs上搭建docker的基礎(chǔ)上,重點(diǎn)探討了其具體步驟,本文內(nèi)容很緊湊,希望大家耐心學(xué)習(xí)。
ECS上搭建Docker(CentOS7)
本文講述 Docker 在 CentOS 系統(tǒng)上的部署過程。關(guān)于 Ubuntu 系統(tǒng)下安裝 Docker,具體實(shí)踐請(qǐng)參考docker實(shí)踐文檔。
適用對(duì)象
適用于熟悉linux操作系統(tǒng),剛開始使用阿里云ECS的開發(fā)者。
主要內(nèi)容
部署docker
docker基本用法
鏡像制作
部署Docker
本文主要說明手動(dòng)安裝docker的操作步驟,您也可以選擇在云市場(chǎng)購買相應(yīng)鏡像,一鍵部署云服務(wù)器。
本文實(shí)踐操作系統(tǒng)版本為CentOS 7.2 64 3.10.0-514.6.2.el7.x86_64。
Docker要求64位的系統(tǒng)且內(nèi)核版本至少為3.10
添加yum源。
#?yum?install?epel-release?–y #?yum?clean?all #?yum?list
安裝并運(yùn)行Docker。
#?yum?install?docker-io?–y #?systemctl?start?docker
檢查安裝結(jié)果。
#?docker?info
出現(xiàn)以下xin說明信息則表明安裝成功。
Docker基本用法
Docker守護(hù)進(jìn)程管理。
#?systemctl?start?docker?????#運(yùn)行Docker守護(hù)進(jìn)程 #?systemctl?stop?docker??????#停止Docker守護(hù)進(jìn)程 #?systemctl?restart?docker???#重啟Docker守護(hù)進(jìn)程
鏡像管理。本文使用的是來自阿里云倉庫的Apache鏡像。
#?docker?pull?registry.cn-hangzhou.aliyuncs.com/lxepoo/apache-php5
修改標(biāo)簽,由于阿里云倉庫鏡像的鏡像名稱很長,可以修改鏡像標(biāo)簽以便記憶區(qū)分。
#?docker?tag??registry.cn-hangzhou.aliyuncs.com/lxepoo/apache-php5:latest?aliweb:v1
查看已有鏡像。
#?docker?images
強(qiáng)制刪除鏡像。
#?docker??rmi??–f??registry.cn-hangzhou.aliyuncs.com/lxepoo/apache-php5
容器管理。
e121d5f99e1e是執(zhí)行docker images命令查詢到的IMAGE ID,使用docker run命令進(jìn)入容器。
#?docker?run?–ti?e121d5f99e1e?/bin/bash
使用exit可以退出當(dāng)前容器。
run命令加上–d參數(shù)可以在后臺(tái)運(yùn)行容器,—name指定容器命名為apache。
#?docker?run?-d?--name?apache?e121d5f99e1e
進(jìn)入后臺(tái)運(yùn)行的容器。
#?docker?exec?-ti?apache?/bin/bash
將容器做成鏡像。
#?docker?commit?containerID/containerName??newImageName:tag
為了方便測(cè)試和恢復(fù),先將源鏡像運(yùn)行起來后再做一個(gè)命名簡單的鏡像做測(cè)試。
#?docker?commit?4c8066cd8c01?apachephp:v1
運(yùn)行容器并將宿主機(jī)的8080端口映射到容器里去。
#?docker?run?-d?-p?8080:80?apachephp:v1
在瀏覽器輸入宿主機(jī)ip加8080端口訪問測(cè)試,出現(xiàn)以下內(nèi)容則說明運(yùn)行成功。
鏡像制作
準(zhǔn)備dockerfile內(nèi)容。
#?vim?Dockerfile? FROM?apachephp:v1??#聲明基礎(chǔ)鏡像來源 MAINTAINER?DTSTACK?#聲明鏡像擁有者 RUN?mkdir?/dtstact?#RUN后面接容器運(yùn)行前需要執(zhí)行的命令,由于Dockerfile文件不能超過127行, ?????????????????????????因此當(dāng)命令較多時(shí)建議寫到腳本中執(zhí)行 ENTRYPOINT?ping?www.aliyun.com?#開機(jī)啟動(dòng)命令,此處最后一個(gè)命令需要是可在前臺(tái)持續(xù)執(zhí)行的命令, ???????????????????????????????否則容器后臺(tái)運(yùn)行時(shí)會(huì)因?yàn)槊顖?zhí)行完而退出。
構(gòu)建鏡像。
docker?build?-t?webcentos:v1?.???#?.?是Dockerfile文件的路徑,不能忽略 docker?images????????????????????#查看是否創(chuàng)建成功 docker?run?–d?webcentos:v1???????#后臺(tái)運(yùn)行容器 docker?ps????????????????????????#查看當(dāng)前運(yùn)行中的容器 docker?ps?–a?????????????????????#查看所有容器,包括未運(yùn)行中的 docker?logs?CONTAINER?ID/IMAGE???#如未查看到剛才運(yùn)行的容器,則用容器id或者名字查看啟動(dòng)日志排錯(cuò) docker?commit?fb2844b6c070?dtstackweb:v1?#commit?后接容器id?和構(gòu)建新鏡像的名稱和版本號(hào)。 docker?images????????????????????#列出本地(已下載的和本地創(chuàng)建的)鏡像 docker?push??????????????????????#將鏡像推送至遠(yuǎn)程倉庫,默認(rèn)為?Docker?Hub
將鏡像推送到registry。
docker?login?--username=dtstack_plus?registry.cn-shanghai.aliyuncs.com?#執(zhí)行后輸入鏡像倉庫密碼 docker?tag?[ImageId]?registry.cn-shanghai.aliyuncs.com/dtstack123/test:[鏡像版本號(hào)] docker?push?registry.cn-shanghai.aliyuncs.com/dtstack123/test:[鏡像版本號(hào)]
在鏡像倉庫能查看到鏡像版本信息則說明push成功。
其中[ImageId],[鏡像版本號(hào)]請(qǐng)您根據(jù)自己的鏡像信息進(jìn)行填寫。