Docker安裝和基本使用

Docker 簡介

背景

開發(fā)和運維之間因為環(huán)境不同而導(dǎo)致的矛盾

集群環(huán)境下每臺機器部署相同的應(yīng)用

DevOps(Development and Operations)

簡介

Docker是一個開源的應(yīng)用容器引擎瓶颠,讓開發(fā)者可以打包他們的應(yīng)用以及依賴包到一個可移植的容器中昆淡,然后發(fā)布到任何流行的Linux機器上,也可以實現(xiàn)虛擬化儒拂,容器是完全使用沙箱機制寸潦,相互之間不會有任何接口。

Docker是世界領(lǐng)先的軟件容器平臺社痛。開發(fā)人員利用 Docker 可以消除協(xié)作編碼時“在我的機器上可正常工作”的問題见转。

運維人員利用 Docker 可以在隔離容器中并行運行和管理應(yīng)用,獲得更好的計算密度褥影。企業(yè)利用 Docker 可以構(gòu)建敏捷的軟件交付管道池户,以更快的速度、更高的安全性和可靠的信譽為 Linux 和 Windows Server 應(yīng)用發(fā)布新功能凡怎。


Docker優(yōu)點

簡化程序: Docker 讓開發(fā)者可以打包他們的應(yīng)用以及依賴包到一個可移植的容器中校焦,然后發(fā)布到任何流行的 Linux機器上,便可以實現(xiàn)虛擬化统倒。Docker改變了虛擬化的方式寨典,使開發(fā)者可以直接將自己的成果放入Docker中進行管理。方便快捷已經(jīng)是 Docker的最大優(yōu)勢房匆,過去需要用數(shù)天乃至數(shù)周的 任務(wù)耸成,在Docker容器的處理下,只需要數(shù)秒就能完成浴鸿。

避免選擇恐懼癥: 如果你有選擇恐懼癥井氢,還是資深患者。Docker 幫你 打包你的糾結(jié)!比如 Docker 鏡像;Docker鏡像中包含了運行環(huán)境和配置岳链,所以 Docker 可以簡化部署多種應(yīng)用實例工作花竞。比如 Web 應(yīng)用、后臺應(yīng)用掸哑、數(shù)據(jù)庫應(yīng)用约急、大數(shù)據(jù)應(yīng)用比如 Hadoop 集群、消息隊列等等都可以打包成一個鏡像部署苗分。

節(jié)省開支: 一方面厌蔽,云計算時代到來,使開發(fā)者不必為了追求效果而配置高額的硬件摔癣,Docker 改變了高性能必然高價格的思維定勢奴饮。Docker 與云的結(jié)合,讓云空間得到更充分的利用择浊。不僅解決了硬件管理的問題拐云,也改變了虛擬化的方式。

Docker 架構(gòu)

Docker使用C/S架構(gòu)近她,Client通過接口與Server進程通信實現(xiàn)容器的構(gòu)建叉瘩,運行和發(fā)布,如圖:


Host(Docker 宿主機)

安裝了Docker程序粘捎,并運行了Docker daemon的主機薇缅。

Docker daemon(Docker 守護進程)

運行在宿主機上危彩,Docker守護進程,用戶通過Docker client(Docker命令)與Docker daemon交互泳桦。

Images(鏡像)

將軟件環(huán)境打包好的模板汤徽,用來創(chuàng)建容器的,一個鏡像可以創(chuàng)建多個容器灸撰。

鏡像分層結(jié)構(gòu):


位于下層的鏡像稱為父鏡像(Parent Image)谒府,最底層的稱為基礎(chǔ)鏡像(Base Image)。最上層為“可讀寫”層浮毯,其下的均為“只讀”層完疫。

AUFS:

advanced multi-layered unification filesystem:高級多層統(tǒng)一文件系統(tǒng)

用于為Linux文件系統(tǒng)實現(xiàn)“聯(lián)合掛載”

AUFS是之前的UnionFS的重新實現(xiàn)

Docker最初使用AUFS作為容器文件系統(tǒng)層

AUFS的競爭產(chǎn)品是overlayFS,從3.18開始被合并入Linux內(nèi)核

Docker的分層鏡像债蓝,除了AUFS壳鹤,Docker還支持btrfs,devicemapper和vfs等

Containers(容器)

Docker的運行組件饰迹,啟動一個鏡像就是一個容器芳誓,容器與容器之間相互隔離,并且互不影響啊鸭。

Docker Client(Docker 客戶端)

Docker命令行工具锹淌,用戶是用Docker Client與Docker daemon進行通信并返回結(jié)果給用戶。也可以使用其他工具通過Docker Api 與Docker daemon通信赠制。

Registry(倉庫服務(wù)注冊)

經(jīng)常會和倉庫(Repository)混為一談葛圃,實際上Registry上可以有多個倉庫,每個倉庫可以看成是一個用戶憎妙,一個用戶的倉庫放了多個鏡像。倉庫分為了公開倉庫(Public Repository)和私有倉庫(Private Repository)曲楚,最大的公開倉庫是官方的Docker Hub厘唾,國內(nèi)也有如阿里云、時速云等龙誊,可以給國內(nèi)用戶提供穩(wěn)定快速的服務(wù)抚垃。用戶也可以在本地網(wǎng)絡(luò)內(nèi)創(chuàng)建一個私有倉庫。當用戶創(chuàng)建了自己的鏡像之后就可以使用 push 命令將它上傳到公有或者私有倉庫趟大,這樣下次在另外一臺機器上使用這個鏡像時候鹤树,只需要從倉庫上 pull 下來就可以了。

Docker 安裝

Docker 提供了兩個版本:社區(qū)版 (CE) 和企業(yè)版 (EE)逊朽。

操作系統(tǒng)要求

以Centos7為例罕伯,且Docker 要求操作系統(tǒng)必須為64位,且centos內(nèi)核版本為3.1及以上叽讳。

查看系統(tǒng)內(nèi)核版本信息:

uname -r

一追他、準備

卸載舊版本:

yum remove docker docker-common docker-selinux docker-engine

yum remove docker-ce

卸載后將保留 /var/lib/docker 的內(nèi)容(鏡像坟募、容器、存儲卷和網(wǎng)絡(luò)等)邑狸。

rm -rf /var/lib/docker

1.安裝依賴軟件包

yum install -y yum-utils device-mapper-persistent-data lvm2

#安裝前可查看device-mapper-persistent-data和lvm2是否已經(jīng)安裝rpm -qa|grep device-mapper-persistent-data

rpm -qa|grep lvm2

2.設(shè)置yum源

yum-config-manager --add-repo? https://download.docker.com/linux/centos/docker-ce.repo

3.更新yum軟件包索引

yum makecache fast

二懈糯、安裝

安裝最新版本docker-ce

yum install docker-ce -y

#安裝指定版本docker-ce可使用以下命令查看

yum list docker-ce.x86_64 --showduplicates | sort -r

# 安裝完成之后可以使用命令查看

docker version

三、配置鏡像加速

這里使用阿里云的免費鏡像加速服務(wù)单雾,也可以使用其他如時速云赚哗、網(wǎng)易云等

1.注冊登錄開通阿里云容器鏡像服務(wù)

2.查看控制臺,招到鏡像加速器并復(fù)制自己的加速器地址

3.找到/etc/docker目錄下的daemon.json文件硅堆,沒有則直接

vi daemon.json

4.加入以下配置

#填寫自己的加速器地址

{

? "registry-mirrors": ["https://zfzbet67.mirror.aliyuncs.com"]

}

5.通知systemd重載此配置文件;

systemctl daemon-reload

6.重啟docker服務(wù)

systemctl restart docker

Docker常用操作

輸入docker可以查看Docker的命令用法屿储,輸入docker COMMAND --help查看指定命令詳細用法。

鏡像常用操作

查找鏡像:

docker search 關(guān)鍵詞

#搜索docker hub網(wǎng)站鏡像的詳細信息

下載鏡像:

docker pull 鏡像名:TAG

# Tag表示版本硬萍,有些鏡像的版本顯示latest扩所,為最新版本

查看鏡像:

docker images

#查看本地所有鏡像

刪除鏡像:

docker rmi -f 鏡像ID或者鏡像名:TAG

# 刪除指定本地鏡像

# -f 表示強制刪除

獲取元信息:

docker inspect 鏡像ID或者鏡像名:TAG

# 獲取鏡像的元信息,詳細信息

容器常用操作

運行:

docker run --name 容器名 -i -t -p 主機端口:容器端口 -d -v 主機目錄:容器目錄:ro 鏡像ID或鏡像名:TAG

# --name 指定容器名朴乖,可自定義祖屏,不指定自動命名

# -i 以交互模式運行容器

# -t 分配一個偽終端,即命令行买羞,通常-it組合來使用

# -p 指定映射端口袁勺,講主機端口映射到容器內(nèi)的端口

# -d 后臺運行容器

# -v 指定掛載主機目錄到容器目錄,默認為rw讀寫模式畜普,ro表示只讀

容器列表:

docker ps -a -q

# docker ps

查看正在運行的容器

# -a 查看所有容器(運行中期丰、未運行)# -q 只查看容器的ID

啟動容器:

docker start 容器ID或容器名

停止容器:

docker stop 容器ID或容器名

刪除容器:

docker rm -f 容器ID或容器名

# -f 表示強制刪除

查看日志:

docker logs 容器ID或容器名

進入正在運行容器:

docker exec -it 容器ID或者容器名 /bin/bash

#進入正在運行的容器并且開啟交互模式終端

# /bin/bash是固有寫法,作用是因為docker后臺必須運行一個進程吃挑,否則容器就會退出钝荡,在這里表示啟動容器后啟動bash。

# 也可以用docker exec在運行中的容器執(zhí)行命令

拷貝文件:

docker cp 主機文件路徑 容器ID或容器名:容器路徑 #主機中文件拷貝到容器中docker cp 容器ID或容器名:容器路徑 主機文件路徑 #容器中文件拷貝到主機中

獲取容器元信息:

docker inspect 容器ID或容器名


實例:mysql

docker logs 容器ID或容器名

docker pull mysql:5.7

#創(chuàng)建三個要掛載的目錄

mkdir -p /my/mysql/conf

mkdir -p /my/mysql/data

mkdir -p /my/mysql/logs

#復(fù)制文件 并修改字符

docker cp mysql:/etc/mysql/mysql.conf.d/mysqld.cnf /my/mysql/conf/

vi /my/mysql/conf/mysqld.conf

character-set-server=utf8

#最終啟動命令

docker run \

--name mysql \

-p 3306:3306 \

-v /my/mysql/conf:/etc/mysql/mysql.conf.d/ \

-v /my/mysql/data:/var/lib/mysql \

-v /my/mysql/logs:/logs \

-e MYSQL_ROOT_PASSWORD=root \

-d mysql:5.7

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末舶衬,一起剝皮案震驚了整個濱河市埠通,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌逛犹,老刑警劉巖端辱,帶你破解...
    沈念sama閱讀 211,376評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異虽画,居然都是意外死亡舞蔽,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,126評論 2 385
  • 文/潘曉璐 我一進店門码撰,熙熙樓的掌柜王于貴愁眉苦臉地迎上來渗柿,“玉大人,你說我怎么就攤上這事脖岛∽鲎#” “怎么了砾省?”我有些...
    開封第一講書人閱讀 156,966評論 0 347
  • 文/不壞的土叔 我叫張陵,是天一觀的道長混槐。 經(jīng)常有香客問我编兄,道長,這世上最難降的妖魔是什么声登? 我笑而不...
    開封第一講書人閱讀 56,432評論 1 283
  • 正文 為了忘掉前任狠鸳,我火速辦了婚禮,結(jié)果婚禮上悯嗓,老公的妹妹穿的比我還像新娘件舵。我一直安慰自己,他們只是感情好脯厨,可當我...
    茶點故事閱讀 65,519評論 6 385
  • 文/花漫 我一把揭開白布铅祸。 她就那樣靜靜地躺著,像睡著了一般合武。 火紅的嫁衣襯著肌膚如雪临梗。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,792評論 1 290
  • 那天稼跳,我揣著相機與錄音盟庞,去河邊找鬼。 笑死汤善,一個胖子當著我的面吹牛什猖,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播红淡,決...
    沈念sama閱讀 38,933評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼不狮,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了在旱?” 一聲冷哼從身側(cè)響起摇零,我...
    開封第一講書人閱讀 37,701評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎颈渊,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體终佛,經(jīng)...
    沈念sama閱讀 44,143評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡俊嗽,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,488評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了铃彰。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片绍豁。...
    茶點故事閱讀 38,626評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖牙捉,靈堂內(nèi)的尸體忽然破棺而出竹揍,到底是詐尸還是另有隱情敬飒,我是刑警寧澤,帶...
    沈念sama閱讀 34,292評論 4 329
  • 正文 年R本政府宣布芬位,位于F島的核電站无拗,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏昧碉。R本人自食惡果不足惜英染,卻給世界環(huán)境...
    茶點故事閱讀 39,896評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望被饿。 院中可真熱鬧四康,春花似錦、人聲如沸狭握。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,742評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽论颅。三九已至哎垦,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間嗅辣,已是汗流浹背撼泛。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留澡谭,地道東北人愿题。 一個月前我還...
    沈念sama閱讀 46,324評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像蛙奖,于是被迫代替她去往敵國和親潘酗。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,494評論 2 348

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