docker安裝使用指南

帶你進(jìn)入Docker的世界

Docker優(yōu)勢(shì)

操作系統(tǒng): debain/unbuntu /FreeBSD/Centos/openSUSE

編程語(yǔ)言: java、C /C++ python、Ruby、Golang

Web服務(wù)器:resin、tomcat、 apache沿后、nginx刽锤、lighttpd镊尺、jetty

數(shù)據(jù)庫(kù):mysql、redis并思、mongoDB庐氮、sqlserver、H2宋彼、DB2弄砍、MariaDB

Docker是什么

應(yīng)用容器

docker是一個(gè)開源的應(yīng)用容器

Java:write once, run anywhere ; java的核心是jvm

docker:build once ,run any where ,configure once run anthing

軟件的生態(tài)圈

Docker有自己的軟件生態(tài)圈,那么應(yīng)用是以鏡像的方式存在于倉(cāng)庫(kù)上输涕。然后用戶可以根據(jù)需要去下載對(duì)應(yīng)的鏡像

Docker能夠解決哪些問(wèn)題

開發(fā)人員

  1. 為了節(jié)約成本音婶,很多時(shí)候是一臺(tái)虛擬機(jī)由多個(gè)人或者多個(gè)團(tuán)隊(duì)去做

使用docker容器虛擬化技術(shù),那么每一個(gè)應(yīng)用都可以運(yùn)行在獨(dú)立的虛擬化環(huán)境中莱坎。相互隔離的

  1. 一個(gè)開發(fā)團(tuán)隊(duì)往往只有一套開發(fā)或者測(cè)試環(huán)境衣式,但是會(huì)存在同時(shí)有多個(gè)開發(fā)任務(wù)。所以會(huì)導(dǎo)致反復(fù)去修改環(huán)境或者軟件包

  2. 多個(gè)開發(fā)團(tuán)隊(duì)可能對(duì)軟件環(huán)境的版本有嚴(yán)格要求檐什,但是在開發(fā)迭代的過(guò)程中碴卧,軟件的升級(jí)或者各個(gè)團(tuán)隊(duì)對(duì)軟件本本的升級(jí)都會(huì)導(dǎo)致環(huán)境的變化

    這樣就很容易引起虛擬機(jī)環(huán)境對(duì)我們應(yīng)用產(chǎn)生影響

  3. 機(jī)器硬件故障,導(dǎo)致系統(tǒng)需要重裝

測(cè)試人員

  1. 環(huán)境問(wèn)題測(cè)試出bug
  2. 配置不同的測(cè)試環(huán)境所浪費(fèi)的時(shí)間

運(yùn)維人員

  1. 環(huán)境的安裝乃正、配置住册、部署、擴(kuò)容瓮具、故障服務(wù)器遷移

Docker安裝配置

Docker對(duì)操作系統(tǒng)的要求是荧飞,必須是64位的、以及是linux3.8以上版本的內(nèi)核

Ubuntu 14.04 16.04 (使用apt-get進(jìn)行安裝)

# step 1: 安裝必要的一些系統(tǒng)工具

sudo apt-get update

sudo apt-get -y install apt-transport-https ca-certificates curl
software-properties-common

# step 2: 安裝GPG證書

curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key
add -

# Step 3: 寫入軟件源信息

sudo add-apt-repository “deb [arch=amd64]
http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable”

# Step 4: 更新并安裝 Docker-CE

sudo apt-get -y update

sudo apt-get -y install docker-ce

# 安裝指定版本的Docker-CE:

# Step 1: 查找Docker-CE的版本:

# apt-cache madison docker-ce

# docker-ce | 17.03.1ce-0ubuntu-xenial |
http://mirrors.aliyun.com/docker-ce/linux/ubuntu xenial/stable amd64 Packages

# docker-ce | 17.03.0ce-0ubuntu-xenial |
http://mirrors.aliyun.com/docker-ce/linux/ubuntu xenial/stable amd64 Packages

# Step 2: 安裝指定版本的Docker-CE: (VERSION 例如上面的
17.03.1ce-0ubuntu-xenial)

# sudo apt-get -y install docker-ce=[VERSION]

CentOS 7 (使用yum進(jìn)行安裝)

# step 1: 安裝必要的一些系統(tǒng)工具

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

# Step 2: 添加軟件源信息

sudo yum-config-manager –add-repo
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

# Step 3: 更新并安裝 Docker-CE

sudo yum makecache fast

sudo yum -y install docker-ce

# Step 4: 開啟Docker服務(wù)

sudo service docker start

# 注意:

#
官方軟件源默認(rèn)啟用了最新的軟件名党,您可以通過(guò)編輯軟件源的方式獲取各個(gè)版本的軟件包叹阔。例如官方并沒有將測(cè)試版本的軟件源置為可用,你可以通過(guò)以下方式開啟传睹。同理可以開啟各種測(cè)試版本等条获。

# vim /etc/yum.repos.d/docker-ee.repo

# 將 [docker-ce-test] 下方的 enabled=0 修改為 enabled=1

#

# 安裝指定版本的Docker-CE:

# Step 1: 查找Docker-CE的版本:

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

# Loading mirror speeds from cached hostfile

# Loaded plugins: branch, fastestmirror, langpacks

# docker-ce.x86_64 17.03.1.ce-1.el7.centos docker-ce-stable

# docker-ce.x86_64 17.03.1.ce-1.el7.centos @docker-ce-stable

# docker-ce.x86_64 17.03.0.ce-1.el7.centos docker-ce-stable

# Available Packages

# Step2 : 安裝指定版本的Docker-CE: (VERSION 例如上面的
17.03.0.ce.1-1.el7.centos)

# sudo yum -y install docker-ce-[VERSION]

安裝校驗(yàn)

root@iZbp12adskpuoxodbkqzjfZ:$ docker version

Client:

Version: 17.03.0-ce

API version: 1.26

Go version: go1.7.5

Git commit: 3a232c8

Built: Tue Feb 28 07:52:04 2017

OS/Arch: linux/amd64

Server:

Version: 17.03.0-ce

API version: 1.26 (minimum version 1.12)

Go version: go1.7.5

Git commit: 3a232c8

Built: Tue Feb 28 07:52:04 2017

OS/Arch: linux/amd64

Experimental: false

配置文件

一個(gè)阿里云、另一個(gè)是DaoCloud; 都是免費(fèi)的

  1. 阿里云容器配置
  2. https://cs.console.aliyun.com/?spm=5176.2020520152.1001.44.RGHfhm#/repo
  3. 打開上面鏈接登錄阿里云賬戶-點(diǎn)擊鏡像-點(diǎn)擊右上角【容器鏡像服務(wù)控制臺(tái)】
  4. 第一次登錄【容器鏡像服務(wù)控制臺(tái)】會(huì)初始化密碼設(shè)置密碼
  5. 選擇【鏡像加速器】復(fù)制加速器地址:https://0426y50l.mirror.aliyuncs.com
  6. 修改 vi /etc/docker/daemon.json 把加速器地址設(shè)置進(jìn)去

sudo mkdir -p /etc/docker

sudo tee /etc/docker/daemon.json <<-‘EOF’

{

“registry-mirrors”: [“https://0426y50l.mirror.aliyuncs.com"]

}

EOF

sudo systemctl daemon-reload

sudo systemctl restart docker

測(cè)試安裝成功

docker run hello-word

img

Docker安裝tomcat

運(yùn)行tomcat容器

docker run -it -d -p 8080:8080 tomcat:8.0

訪問(wèn)tomcat容器

http://localhost:8888

Docker的操作指令

Docker中有三個(gè)重要的點(diǎn):倉(cāng)庫(kù)(repository)蒋歌、鏡像(image)、容器(Container)

倉(cāng)庫(kù)是存儲(chǔ)鏡像的

而鏡像是軟件包

容器是基于鏡像去創(chuàng)建的委煤,基于一個(gè)鏡像可以創(chuàng)建若干個(gè)不同名字但功能相同的容器

docker run / docker ps

查看tomcat的日志:docker logs -f [container id / name]

docker的指令

針對(duì)守護(hù)進(jìn)程的系統(tǒng)資源設(shè)置和全局信息的獲忍糜汀: docker info /docker daemon

針對(duì)docker倉(cāng)庫(kù)的查詢、下載:docker search / docker pull

針對(duì)docker鏡像的查詢碧绞、創(chuàng)建府框、刪除: docker images , docker build ,docker delete
docker rmi [image id]

針對(duì)docker容器的查詢、開啟讥邻、停止: docker run /docker ps /docker stop [image id
/container id]

單個(gè)容器的詳細(xì)信息: docker inspect f6071fc4ccc9

Docker容器管理

容器標(biāo)識(shí)符

每個(gè)容器被創(chuàng)建以后迫靖,都會(huì)分配一個(gè)Container Id
作為容器唯一的標(biāo)識(shí)符院峡,后續(xù)對(duì)容器的所有操作命令都是通過(guò)container id來(lái)執(zhí)行

使用dockerps查看容器的信息、 dockerps –no-trunc 查看containerid的完整形式

容器內(nèi)部命令

有時(shí)候我們需要登錄到容器內(nèi)部執(zhí)行一些命令或者配置系宜,那么docker可以通過(guò)原生的方式去登錄到容器

Docker exec 容器名 容器內(nèi)部執(zhí)行的命令

docker exec -it【container id/name】/bin/bash

執(zhí)行完以后照激,通過(guò)exit來(lái)退出

多容器管理

安裝WORDPRESS

  1. 安裝mariaDb

    Docker run –name mydb –env MYSQL_ROOT_PASSWORD=example -d
    mariadb【mydb表示的自定義的那么 、 –env配置數(shù)據(jù)的帳號(hào)密碼】

  2. 安裝wordpress并關(guān)聯(lián)mariaDb

    Docker run –name myWordPress –link mydb:mysql -p 8080:80 -d
    wordpress[myWordPress自定義名稱]【mydb表示的是第一步所運(yùn)行的容器名稱】

  3. Apache web服務(wù)器

  4. Mariadb

Dockercompose

Docker提供了一個(gè)容器編排工具 docker
compose,允許用戶在一個(gè)YAML的文件中定義一組相關(guān)聯(lián)的應(yīng)用容器

可以在:https://github.com/docker/compose/下載docker-compose

放在 /usr/local/bin/docker-compose ; chmod+xdocker-compose

創(chuàng)建文件 ~/wordpress/docker-compose.yml

wordpress: image: wordpress link: db:mysql ports: 8080:80 –后面的80是wordpress容器默認(rèn)的端口盹牧。8080是映射出來(lái)的端口 db: image: mariadb environment: MYSQL_ROOT_PASSWORD: example

cd ~/wordpress && docker-compose up

docker-compose start/stop

docker-compose ~/wordpress/docker-compose.yml down

鏡像管理

鏡像可以認(rèn)為是在docker上執(zhí)行的軟件包俩垃。通過(guò)docker image -a查看所有鏡像

鏡像分層的概念

mariaDB

Wordpress

應(yīng)用層

系統(tǒng)

Ubuntu

{Union filesystem}

Docker鏡像的層的特性:

  1. 已有的分層只能讀不能修改
  2. 上層鏡像的優(yōu)先級(jí)高于底層鏡像
img

搭建私有倉(cāng)庫(kù)

待續(xù)。汰寓。口柳。。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末有滑,一起剝皮案震驚了整個(gè)濱河市跃闹,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌毛好,老刑警劉巖望艺,帶你破解...
    沈念sama閱讀 207,113評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異睛榄,居然都是意外死亡荣茫,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評(píng)論 2 381
  • 文/潘曉璐 我一進(jìn)店門场靴,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)啡莉,“玉大人,你說(shuō)我怎么就攤上這事旨剥∵中溃” “怎么了?”我有些...
    開封第一講書人閱讀 153,340評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵轨帜,是天一觀的道長(zhǎng)魄咕。 經(jīng)常有香客問(wèn)我,道長(zhǎng)蚌父,這世上最難降的妖魔是什么哮兰? 我笑而不...
    開封第一講書人閱讀 55,449評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮苟弛,結(jié)果婚禮上喝滞,老公的妹妹穿的比我還像新娘。我一直安慰自己膏秫,他們只是感情好右遭,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,445評(píng)論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般窘哈。 火紅的嫁衣襯著肌膚如雪吹榴。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,166評(píng)論 1 284
  • 那天滚婉,我揣著相機(jī)與錄音图筹,去河邊找鬼。 笑死满哪,一個(gè)胖子當(dāng)著我的面吹牛婿斥,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播哨鸭,決...
    沈念sama閱讀 38,442評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼民宿,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了像鸡?” 一聲冷哼從身側(cè)響起活鹰,我...
    開封第一講書人閱讀 37,105評(píng)論 0 261
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎只估,沒想到半個(gè)月后志群,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,601評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡蛔钙,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,066評(píng)論 2 325
  • 正文 我和宋清朗相戀三年锌云,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片吁脱。...
    茶點(diǎn)故事閱讀 38,161評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡桑涎,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出兼贡,到底是詐尸還是另有隱情攻冷,我是刑警寧澤,帶...
    沈念sama閱讀 33,792評(píng)論 4 323
  • 正文 年R本政府宣布遍希,位于F島的核電站等曼,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏凿蒜。R本人自食惡果不足惜禁谦,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,351評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望废封。 院中可真熱鬧枷畏,春花似錦、人聲如沸虱饿。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)氮发。三九已至渴肉,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間爽冕,已是汗流浹背仇祭。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評(píng)論 1 261
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留颈畸,地道東北人乌奇。 一個(gè)月前我還...
    沈念sama閱讀 45,618評(píng)論 2 355
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像眯娱,于是被迫代替她去往敵國(guó)和親礁苗。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,916評(píng)論 2 344