Ubuntu Server 14.04 通過阿里云安裝 Docker 和簡單使用

Ubuntu Server 14.04 通過阿里云安裝 Docker

  • 一 配置 apt 阿里云源

    cat << EOF > /etc/apt/sources.list 
    deb http://mirrors.aliyun.com/ubuntu/ trusty main restricted
    deb-src http://mirrors.aliyun.com/ubuntu/ trusty main restricted
    deb http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted
    deb-src http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted
    deb http://mirrors.aliyun.com/ubuntu/ trusty universe
    deb-src http://mirrors.aliyun.com/ubuntu/ trusty universe
    deb http://mirrors.aliyun.com/ubuntu/ trusty-updates universe
    deb-src http://mirrors.aliyun.com/ubuntu/ trusty-updates universe
    deb http://mirrors.aliyun.com/ubuntu/ trusty multiverse
    deb-src http://mirrors.aliyun.com/ubuntu/ trusty multiverse
    deb http://mirrors.aliyun.com/ubuntu/ trusty-updates multiverse
    deb-src http://mirrors.aliyun.com/ubuntu/ trusty-updates multiverse
    deb http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse
    deb-src http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse
    deb http://security.ubuntu.com/ubuntu trusty-security main restricted
    deb-src http://security.ubuntu.com/ubuntu trusty-security main restricted
    deb http://security.ubuntu.com/ubuntu trusty-security universe
    deb-src http://security.ubuntu.com/ubuntu trusty-security universe
    deb http://security.ubuntu.com/ubuntu trusty-security multiverse
    deb-src http://security.ubuntu.com/ubuntu trusty-security multiverse
    EOF
  • 二 升級內(nèi)核

Ubuntu 發(fā)行版中,LTS(Long-Term-Support)長期支持版本勉失,會獲得 5 年的升級
維護(hù)支持地技,這樣的版本會更穩(wěn)定,因此在生產(chǎn)環(huán)境中推薦使用 LTS 版本柴底。
Docker 目前支持的 Ubuntu 版本最低為 12.04 LTS婿脸,但從穩(wěn)定性上考慮,推薦使用
14.04 LTS 或更高的版本柄驻。
Docker 需要安裝在 64 位的 x86 平臺或 ARM 平臺上(如樹莓派)狐树,并且要求內(nèi)核
版本不低于 3.10。但實際上內(nèi)核越新越好鸿脓,過低的內(nèi)核版本可能會出現(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

升級內(nèi)核

如果內(nèi)核版本過低野哭,可以用下面的命令升級系統(tǒng)內(nèi)核在塔。

Ubuntu 12.04 LTS

sudo apt-get install -y --install-recommends linux-generic-lts-trusty

Ubuntu 14.04 LTS

sudo apt-get install -y --install-recommends linux-generic-lts-xenial
  • 三 使用阿里云腳本進(jìn)行安裝

Docker 官方為了簡化安裝流程,提供了一套安裝腳本拨黔,Ubuntu 和 Debian 系統(tǒng)可
以使用這套腳本安裝:

curl -sSL https://get.docker.com/ | sh

執(zhí)行這個命令后蛔溃,腳本就會自動的將一切準(zhǔn)備工作做好,并且把 Docker 安裝在系
統(tǒng)中。
不過城榛,由于偉大的墻的原因揪利,在國內(nèi)使用這個腳本可能會出現(xiàn)某些下載出現(xiàn)錯誤的
情況。國內(nèi)的一些云服務(wù)商提供了這個腳本的修改版本狠持,使其使用國內(nèi)的 Docker
軟件源鏡像安裝疟位,這樣就避免了墻的干擾。

阿里云的安裝腳本

curl -sSL http://acs-public-mirror.oss-cn-hangzhou.aliyuncs.com/docker-engine/internet | sh -
  • 四 設(shè)置阿里云 鏡像加速器

申請自己的加速器地址:

https://wscssx7e333ssr7.mirror.aliyuncs.com

如何使用Docker加速器

針對Docker客戶端版本大于1.10的用戶

您可以通過修改daemon配置文件/etc/docker/daemon.json來使用加速器:

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://wssdfsdcxfdf7er7.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

針對Docker客戶的版本小于等于1.10的用戶

或者想配置啟動參數(shù)喘垂,可以使用下面的命令將配置添加到docker daemon的啟動參數(shù)中甜刻。

Ubuntu 12.04 14.04的用戶

echo "DOCKER_OPTS=\"\$DOCKER_OPTS --registry-mirror=https://wscx7fdsfsdfer7.mirror.aliyuncs.com\"" | sudo tee -a /etc/default/docker
sudo service docker restart

Ubuntu 15.04 16.04的用戶

sudo mkdir -p /etc/systemd/system/docker.service.d
sudo tee /etc/systemd/system/docker.service.d/mirror.conf <<-'EOF'
[Service]
ExecStart=/usr/bin/docker daemon -H fd:// --registry-mirror=https://wscxsdfsdf7er7.mirror.aliyuncs.com
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

檢查生效

root@ubuntu:~# ps -ef |grep dockerd
root      56349      1  0 10:13 ?        00:00:00 /usr/bin/dockerd --registry-mirror=https://wscx7edfsdfr7.mirror.aliyuncs.com --raw-logs
root      56462  41353  0 10:21 pts/1    00:00:00 grep --color=auto dockerd
  • 五 獲取鏡像

Example : MariaDB

獲取:

jihongrui@ubuntu:~$ sudo docker pull mariadb:latest
latest: Pulling from library/mariadb
10a267c67f42: Pull complete 
c2dcc7bb2a88: Pull complete 
17e7a0445698: Pull complete 
9a61839a176f: Pull complete 
64675690edb1: Pull complete 
3de17e251488: Pull complete 
f814b22b783e: Pull complete 
733ce1f03439: Pull complete 
fb7b719835fd: Pull complete 
e13421f79ac0: Pull complete 
8d3f82357729: Pull complete 
a4f4cbdfcf7c: Pull complete 
Digest: sha256:4b54358541679032f6c3a9d9fc944ad96d77ae72fecd6cb44bf18cf97743da24
Status: Downloaded newer image for mariadb:latest

列出鏡像:

jihongrui@ubuntu:~$ sudo docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
mariadb             10.1                98f78d96be9c        5 days ago          395MB
mariadb             latest              98f78d96be9c        5 days ago          395MB

運行:

jihongrui@ubuntu:~$ sudo mkdir -p /mysql/data
jihongrui@ubuntu:~$ sudo docker run --name MariaDB \
-p 13306:3306 \
-v /mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=mmmmmm \
-d mariadb:10.1

停止、啟動容器

首次運行容器后正勒,就可以根據(jù)容器名停止得院、重新啟動容器了。

停止容器
$ sudo docker stop MariaDB
啟動容器
$ sudo docker start MariaDB

運行Docker 鏡像內(nèi)的BASH

sudo docker exec -it MariaDB bash
root@bc5eb9f16aac:/# cat /etc/mysql/my.cnf |head -n 3
# MariaDB database server configuration file.
#
# You can copy this file to one of:

是可以直接編輯配置文件的

查看修改的文件

jihongrui@ubuntu:~$ sudo docker diff Nginx
C /root
A /root/.bash_history
C /run
A /run/nginx.pid
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

Docker 提供了一個 docker commit 命令章贞,可以將容器的存儲層保存下來成為鏡像祥绞。
換句話說,就是在原有鏡像的基礎(chǔ)上鸭限,再疊加上容器的存儲層蜕径,并構(gòu)成新的鏡像。
以后我們運行這個新鏡像的時候败京,就會擁有原有容器最后的文件變化兜喻。

docker commit  的語法格式為:
docker commit [選項] <容器ID或容器名> [<倉庫名>[:<標(biāo)簽>]]
我們可以用下面的命令將容器保存為鏡像:
jihongrui@ubuntu:~$ sudo docker commit \
--author "Hongrui Ji <jihongrui@jsqix.com>" \
--message "修改了default index.html" \
Nginx \
nginx:v2
sha256:857bde2cfc8cb276bd90d9f31e178a56c943a58778fb1034c88e4970a2ef0006
jihongrui@ubuntu:~$ 

其中 --author 是指定修改的作者,而 --message 則是記錄本次修改的內(nèi)容赡麦。
這點和 git 版本控制相似朴皆,不過這里這些信息可以省略留空。
我們可以在 docker images 中看到這個新定制的鏡像:

jihongrui@ubuntu:~$ sudo docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nginx               v2                  857bde2cfc8c        2 minutes ago       109MB
nginx               latest              3448f27c273f        4 days ago          109MB

查看鏡像內(nèi)的歷史記錄

我們還可以用 docker history 具體查看鏡像內(nèi)的歷史記錄泛粹,如果比較
nginx:latest 的歷史記錄遂铡,我們會發(fā)現(xiàn)新增了我們剛剛提交的這一層。

jihongrui@ubuntu:~$ sudo docker history nginx:v2
IMAGE               CREATED             CREATED BY                                      SIZE                COMMENT
857bde2cfc8c        4 minutes ago       nginx -g daemon off;                            213B                修改了default index.html
3448f27c273f        4 days ago          /bin/sh -c #(nop)  CMD ["nginx" "-g" "daem...   0B                  
<missing>           4 days ago          /bin/sh -c #(nop)  STOPSIGNAL [SIGQUIT]         0B                  
<missing>           4 days ago          /bin/sh -c #(nop)  EXPOSE 80/tcp                0B                  
<missing>           4 days ago          /bin/sh -c ln -sf /dev/stdout /var/log/ngi...   22B                 
<missing>           4 days ago          /bin/sh -c apt-get update  && apt-get inst...   52.2MB              

慎用 docker commit
使用 docker commit 命令雖然可以比較直觀的幫助理解鏡像分層存儲的概念晶姊,
但是實際環(huán)境中并不會這樣使用忧便。
首先,如果仔細(xì)觀察之前的 docker diff webserver 的結(jié)果帽借,你會發(fā)現(xiàn)除了真
正想要修改的 /usr/share/nginx/html/index.html 文件外珠增,由于命令的執(zhí)
行,還有很多文件被改動或添加了砍艾。這還僅僅是最簡單的操作蒂教,如果是安裝軟件
包、編譯構(gòu)建脆荷,那會有大量的無關(guān)內(nèi)容被添加進(jìn)來凝垛,如果不小心清理懊悯,將會導(dǎo)致鏡
像極為臃腫。
此外梦皮,使用 docker commit 意味著所有對鏡像的操作都是黑箱操作炭分,生成的鏡
像也被稱為黑箱鏡像,換句話說剑肯,就是除了制作鏡像的人知道執(zhí)行過什么命令捧毛、怎
么生成的鏡像,別人根本無從得知让网。而且呀忧,即使是這個制作鏡像的人,過一段時間
后也無法記清具體在操作的溃睹。雖然 docker diff 或許可以告訴得到一些線索而账,
但是遠(yuǎn)遠(yuǎn)不到可以確保生成一致鏡像的地步。這種黑箱鏡像的維護(hù)工作是非常痛苦
的因篇。
而且泞辐,回顧之前提及的鏡像所使用的分層存儲的概念,除當(dāng)前層外竞滓,之前的每一層
都是不會發(fā)生改變的咐吼,換句話說,任何修改的結(jié)果僅僅是在當(dāng)前層進(jìn)行標(biāo)記虽界、添
加汽烦、修改涛菠,而不會改動上一層莉御。如果使用 docker commit 制作鏡像,以及后期
修改的話俗冻,每一次修改都會讓鏡像更加臃腫一次礁叔,所刪除的上一層的東西并不會丟
失,會一直如影隨形的跟著這個鏡像迄薄,即使根本無法訪問到?琅关。這會讓鏡像更加臃
腫。
docker commit 命令除了學(xué)習(xí)之外讥蔽,還有一些特殊的應(yīng)用場合涣易,比如被入侵后保
存現(xiàn)場等。但是冶伞,不要使用 docker commit 定制鏡像新症,定制行為應(yīng)該使用
Dockerfile 來完成。下面的章節(jié)我們就來講述一下如何使用 Dockerfile 定
制鏡像响禽。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末徒爹,一起剝皮案震驚了整個濱河市荚醒,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌隆嗅,老刑警劉巖界阁,帶你破解...
    沈念sama閱讀 210,978評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異胖喳,居然都是意外死亡泡躯,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評論 2 384
  • 文/潘曉璐 我一進(jìn)店門禀晓,熙熙樓的掌柜王于貴愁眉苦臉地迎上來精续,“玉大人,你說我怎么就攤上這事粹懒≈馗叮” “怎么了?”我有些...
    開封第一講書人閱讀 156,623評論 0 345
  • 文/不壞的土叔 我叫張陵凫乖,是天一觀的道長确垫。 經(jīng)常有香客問我,道長帽芽,這世上最難降的妖魔是什么删掀? 我笑而不...
    開封第一講書人閱讀 56,324評論 1 282
  • 正文 為了忘掉前任,我火速辦了婚禮导街,結(jié)果婚禮上披泪,老公的妹妹穿的比我還像新娘。我一直安慰自己搬瑰,他們只是感情好款票,可當(dāng)我...
    茶點故事閱讀 65,390評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著泽论,像睡著了一般艾少。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上翼悴,一...
    開封第一講書人閱讀 49,741評論 1 289
  • 那天缚够,我揣著相機(jī)與錄音,去河邊找鬼鹦赎。 笑死谍椅,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的古话。 我是一名探鬼主播雏吭,決...
    沈念sama閱讀 38,892評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼煞额!你這毒婦竟也來了思恐?” 一聲冷哼從身側(cè)響起沾谜,我...
    開封第一講書人閱讀 37,655評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎胀莹,沒想到半個月后基跑,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,104評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡描焰,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年媳否,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片荆秦。...
    茶點故事閱讀 38,569評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡篱竭,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出步绸,到底是詐尸還是另有隱情掺逼,我是刑警寧澤,帶...
    沈念sama閱讀 34,254評論 4 328
  • 正文 年R本政府宣布瓤介,位于F島的核電站吕喘,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏刑桑。R本人自食惡果不足惜氯质,卻給世界環(huán)境...
    茶點故事閱讀 39,834評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望祠斧。 院中可真熱鬧闻察,春花似錦、人聲如沸琢锋。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,725評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽吩蔑。三九已至钮热,卻和暖如春填抬,著一層夾襖步出監(jiān)牢的瞬間烛芬,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,950評論 1 264
  • 我被黑心中介騙來泰國打工飒责, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留赘娄,地道東北人。 一個月前我還...
    沈念sama閱讀 46,260評論 2 360
  • 正文 我出身青樓宏蛉,卻偏偏與公主長得像遣臼,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子拾并,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,446評論 2 348

推薦閱讀更多精彩內(nèi)容