Docker 需要安裝在 64 位的 x86 平臺(tái)或 ARM 平臺(tái)上(如樹莓派),并且要求內(nèi)核版本不低于 3.10。但實(shí)際上內(nèi)核越新越好,過低的內(nèi)核版本可能會(huì)出現(xiàn)部分功能無法使用,或者不穩(wěn)定。
用戶可以通過如下命令檢查自己的內(nèi)核版本詳細(xì)信息:
$ uname -a
Linux device 4.4.0-45-generic #66~14.04.1-Ubuntu SMP Wed Oct 19 15:05:38 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
2.使用腳本自動(dòng)安裝
Docker 官方為了簡(jiǎn)化安裝流程滩愁,提供了一套安裝腳本,Ubuntu 和 Debian 系統(tǒng)可以使用這套腳本安裝:
curl -sSL https://get.docker.com/ | sh
阿里云的安裝腳本
curl -sSL http://acs-public-mirror.oss-cn-hangzhou.aliyuncs.com/docker-engine/internet | sh -
DaoCloud 的安裝腳本
curl -sSL https://get.daocloud.io/docker | sh
3.啟動(dòng) Docker 引擎
Ubuntu 16.04辫封、Debian 8 Jessie/Stretch
$ sudo systemctl enable docker
$ sudo systemctl start docker
4.獲取鏡像
$ docker pull ubuntu:14.04
14.04: Pulling from library/ubuntu
bf5d46315322: Pull complete
9f13e0ac480c: Pull complete
e8988b5b3097: Pull complete
40af181810e7: Pull complete
e6f7c7e5c03e: Pull complete
Digest: sha256:147913621d9cdea08853f6ba9116c2e27a3ceffecf3b492983ae97c3d643fbbe
Status: Downloaded newer image for ubuntu:14.04
5.運(yùn)行
有了鏡像后硝枉,我們就可以以這個(gè)鏡像為基礎(chǔ)啟動(dòng)一個(gè)容器來運(yùn)行。以上面的 ubuntu:14.04 為例倦微,如果我們打算啟動(dòng)里面的 bash 并且進(jìn)行交互式操作的話妻味,可以執(zhí)行下面的命令。
$ docker run -it --rm ubuntu:14.04 bash
root@e7009c6ce357:/# cat /etc/os-release
NAME="Ubuntu"
VERSION="14.04.5 LTS, Trusty Tahr"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 14.04.5 LTS"
VERSION_ID="14.04"
HOME_URL="http://www.ubuntu.com/"
SUPPORT_URL="http://help.ubuntu.com/"
BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"
root@e7009c6ce357:/# exit
exit
$
虛懸鏡像
由于新舊鏡像同名欣福,舊鏡像名稱被取消责球,從而出現(xiàn)倉庫名、標(biāo)簽均為 <none> 的鏡像拓劝。這類無標(biāo)簽鏡像也被稱為 虛懸鏡像(dangling image) 雏逾,可以用下面的命令專門顯示這類鏡像:
$ docker images -f dangling=true
REPOSITORY TAG IMAGE ID CREATED SIZE
<none> <none> 00285df0df87 5 days ago 342 MB
一般來說,虛懸鏡像已經(jīng)失去了存在的價(jià)值郑临,是可以隨意刪除的栖博,可以用下面的命令刪除。
$ docker rmi $(docker images -q -f dangling=true)
中間層鏡像
為了加速鏡像構(gòu)建厢洞、重復(fù)利用資源仇让,Docker 會(huì)利用 中間層鏡像。所以在使用一段時(shí)間后躺翻,可能會(huì)看到一些依賴的中間層鏡像丧叽。默認(rèn)的 docker images 列表中只會(huì)顯示頂層鏡像,如果希望顯示包括中間層鏡像在內(nèi)的所有鏡像的話公你,需要加 -a 參數(shù)勘纯。
$ docker images -a
我們修改了容器的文件摔寨,也就是改動(dòng)了容器的存儲(chǔ)層蛔趴。我們可以通過 docker diff 命令看到具體的改動(dòng)宙拉。
$ docker diff webserver
C /root
A /root/.bash_history
C /run
C /usr
C /usr/share
C /usr/share/nginx
C /usr/share/nginx/html
C /usr/share/nginx/html/index.html
C /var
C /var/cache
C /var/cache/nginx
A /var/cache/nginx/client_temp
A /var/cache/nginx/fastcgi_temp
A /var/cache/nginx/proxy_temp
A /var/cache/nginx/scgi_temp
A /var/cache/nginx/uwsgi_temp
sudo docker run --name xmaijenkins -p 8080:8080 -p 50000:50000 --env JAVA_OPTS="-Xmx8192m" --env JAVA_OPTS="-Djava.util.logging.config.file=/home/xmai/jenkins_home_docker/log.properties" --env JENKINS_SLAVE_AGENT_PORT=50000 -v /home/xmai/jenkins_home_docker:/var/jenkins_home jenkins/jenkins:lts
docker pull jenkins:latest
1.服務(wù)器拉取docker jenkins鏡像:
docker pull jenkins:latest
2.拉取jenkins latest版本鏡像
docker pull jenkins:2.7.4
拉取jenkins 2.7.4版本鏡像
3.服務(wù)器運(yùn)行dokcer jenkins容器:
sudo docker run -d --name jenkins_node -p 49002:8080 -v /var/jenkins_node:/var/jenkins_home jenkins:latest
命令的意思是:在后臺(tái)運(yùn)行一個(gè)基于jenkins:latest鏡像的容器, 容器的名字叫做 jenkins_node ,把容器的8080端口映射為49002端口,并且把服務(wù)器上的/var/jenkins_node目錄掛在到docker容器上的/var/jenkins_home目錄
-d 后臺(tái)運(yùn)行docker容器
如果不加-d則懦傍,容器運(yùn)行會(huì)占用此終端雹舀,如果終端關(guān)閉,則容器也相應(yīng)關(guān)閉粗俱,jenkins就無法訪問了说榆。加上-d,容器會(huì)在后臺(tái)運(yùn)行。
--name 為容器起個(gè)別名
如果不起別名寸认,則系統(tǒng)會(huì)默認(rèn)分配一個(gè)隨機(jī)別名签财,類似gklasd_sdfwe。起了別名后偏塞,后續(xù)會(huì)通過該別名管理該docker容器唱蒸,也就是管理jenkins。
-p docker容器端口映射
jenkins服務(wù)是運(yùn)行在docker里的灸叼,docker默認(rèn)不對(duì)外暴露端口的
-v 文件掛載
如果不掛載神汹,則jenkins所有l(wèi)og、用戶配置文件都會(huì)在docker容器內(nèi)古今,如果容器銷毀屁魏,則jenkins得重新配置一遍。掛載出來方便jenkins遷移以及管理
jenkins run
查看你服務(wù)器上的的/var/jenkins_node文件夾,當(dāng)出現(xiàn)下圖所有文件時(shí)捉腥,則說明jenkins啟動(dòng)成功氓拼,否則再等等...30秒左右即可