docker 安裝

docker的安裝與啟動

Docker官方建議在Ubuntu中安裝,因為Docker是基于Ubuntu發(fā)布的,而且一般Docker出現(xiàn)的問題Ubuntu是最先更新或者打補丁的。在很多版本的CentOS中是不支持更新最新的一些補丁包的隘竭。
由于我們學(xué)習(xí)的環(huán)境都使用的是CentOS,因此這里我們將Docker安裝到CentOS上。注意:這里建議安裝在CentOS7.x以上的版本陋气,在CentOS6.x的版本中,安裝前需要安裝其他很多的環(huán)境而且Docker很多補丁不支持更新引润。

  1. yum 包更新到最新
sudo yum update
  1. 安裝需要的軟件包巩趁, yum-util 提供yum-config-manager功能,另外兩個是devicemapper驅(qū)動依賴的
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
  1. 設(shè)置yum源為阿里云
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  1. 安裝docker
sudo yum install docker-ce
  1. 安裝后查看docker版本
docker -v

設(shè)置ustc的鏡像

ustc是老牌的linux鏡像服務(wù)提供者了淳附,還在遙遠(yuǎn)的ubuntu 5.04版本的時候就在用议慰。ustc的docker鏡像加速器速度很快。ustc docker mirror的優(yōu)勢之一就是不需要注冊奴曙,是真正的公共服務(wù)别凹。
https://lug.ustc.edu.cn/wiki/mirrors/help/docker
編輯該文件:

vi /etc/docker/daemon.json

在該文件中輸入如下內(nèi)容:

{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}

Docker的啟動與停止

systemctl命令是系統(tǒng)服務(wù)管理器指令

  1. 啟動docker:
systemctl start docker
  1. 停止docker:
systemctl stop docker
  1. 重啟docker:
systemctl restart docker
  1. 查看docker狀態(tài):
systemctl status docker
  1. 開機啟動:
systemctl enable docker
  1. 查看docker概要信息
docker info
  1. 查看docker幫助文檔
docker --help

常用命令

鏡像相關(guān)命令

查看鏡像

docker images
  • REPOSITORY:鏡像名稱

  • TAG:鏡像標(biāo)簽

  • IMAGE ID:鏡像ID

  • CREATED:鏡像的創(chuàng)建日期(不是獲取該鏡像的日期)

  • SIZE:鏡像大小

這些鏡像都是存儲在Docker宿主機的/var/lib/docker目錄下

搜索鏡像

如果你需要從網(wǎng)絡(luò)中查找需要的鏡像,可以通過以下命令搜索

docker search 鏡像名稱
  • NAME:倉庫名稱

  • DESCRIPTION:鏡像描述

  • STARS:用戶評價洽糟,反應(yīng)一個鏡像的受歡迎程度

  • OFFICIAL:是否官方

  • AUTOMATED:自動構(gòu)建炉菲,表示該鏡像由Docker Hub自動構(gòu)建流程創(chuàng)建的

拉取鏡像

拉取鏡像就是從中央倉庫中下載鏡像到本地

docker pull 鏡像名稱

例如,我要下載centos7鏡像

docker pull centos:7

刪除鏡像

按鏡像ID刪除鏡像

docker rmi 鏡像ID

刪除所有鏡像

docker rmi `docker images -q`

容器相關(guān)命令

查看容器

查看正在運行的容器

docker ps

查看所有容器

docker ps -a

查看最后一次運行的容器

docker ps -l

查看停止的容器

docker ps -f status=exited

3.2.2 創(chuàng)建與啟動容器

創(chuàng)建容器常用的參數(shù)說明:

創(chuàng)建容器命令:docker run

-i:表示運行容器

-t:表示容器啟動后會進(jìn)入其命令行坤溃。加入這兩個參數(shù)后拍霜,容器創(chuàng)建就能登錄進(jìn)去。即分配一個偽終端薪介。

--name :為創(chuàng)建的容器命名祠饺。

-v:表示目錄映射關(guān)系(前者是宿主機目錄,后者是映射到宿主機上的目錄)昭灵,可以使用多個-v做多個目錄或文件映射吠裆。注意:最好做目錄映射伐谈,在宿主機上做修改,然后共享到容器上试疙。

-d:在run后面加上-d參數(shù),則會創(chuàng)建一個守護(hù)式容器在后臺運行(這樣創(chuàng)建容器后不會自動登錄容器诵棵,如果只加-i -t兩個參數(shù),創(chuàng)建后就會自動進(jìn)去容器)祝旷。

-p:表示端口映射履澳,前者是宿主機端口,后者是容器內(nèi)的映射端口怀跛【啻可以使用多個-p做多個端口映射

  1. 交互式方式創(chuàng)建容器
docker run -it --name=容器名稱 鏡像名稱:標(biāo)簽 /bin/bash

這時我們通過ps命令查看,發(fā)現(xiàn)可以看到啟動的容器吻谋,狀態(tài)為啟動狀態(tài)

退出當(dāng)前容器

exit
  1. 守護(hù)式方式創(chuàng)建容器:
docker run -di --name=容器名稱 鏡像名稱:標(biāo)簽

登錄守護(hù)式容器方式:

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

停止與啟動容器

停止容器:

docker stop 容器名稱(或者容器ID)

啟動容器:

docker start 容器名稱(或者容器ID)

文件拷貝

如果我們需要將文件拷貝到容器內(nèi)可以使用cp命令

docker cp 需要拷貝的文件或目錄 容器名稱:容器目錄

也可以將文件從容器內(nèi)拷貝出來

docker cp 容器名稱:容器目錄 需要拷貝的文件或目錄

目錄掛載

我們可以在創(chuàng)建容器的時候忠蝗,將宿主機的目錄與容器內(nèi)的目錄進(jìn)行映射,這樣我們就可以通過修改宿主機某個目錄的文件從而去影響容器漓拾。
創(chuàng)建容器 添加-v參數(shù) 后邊為 宿主機目錄:容器目錄阁最,例如:

docker run -di -v /usr/local/myhtml:/usr/local/myhtml --name=mycentos3 centos:7

如果你共享的是多級的目錄,可能會出現(xiàn)權(quán)限不足的提示骇两。

這是因為CentOS7中的安全模塊selinux把權(quán)限禁掉了速种,我們需要添加參數(shù) --privileged=true 來解決掛載的目錄沒有權(quán)限的問題

查看容器IP地址

我們可以通過以下命令查看容器運行的各種數(shù)據(jù)

docker inspect 容器名稱(容器ID) 

也可以直接執(zhí)行下面的命令直接輸出IP地址

docker inspect --format='{{.NetworkSettings.IPAddress}}' 容器名稱(容器ID)

刪除容器

刪除指定的容器:

docker rm 容器名稱(容器ID)

應(yīng)用部署

MySQL部署

  1. 拉取mysql鏡像
docker pull centos/mysql-57-centos7
  1. 創(chuàng)建容器
docker run -di --name=tensquare_mysql -p 33306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql

-p 代表端口映射,格式為 宿主機映射端口:容器運行端口

-e 代表添加環(huán)境變量 MYSQL_ROOT_PASSWORD 是root用戶的登陸密碼

  1. 遠(yuǎn)程登錄mysql

連接宿主機的IP ,指定端口為33306

tomcat部署

  1. 拉取鏡像
docker pull tomcat:7-jre7
  1. 創(chuàng)建容器
    創(chuàng)建容器 -p表示地址映射
docker run -di --name=mytomcat -p 9000:8080 
-v /usr/local/webapps:/usr/local/tomcat/webapps tomcat:7-jre7
  1. Nginx部署
  2. 拉取鏡像
docker pull nginx
  1. 創(chuàng)建Nginx容器
docker run -di --name=mynginx -p 80:80 nginx

Redis部署

  1. 拉取鏡像
docker pull redis
  1. 創(chuàng)建容器
docker run -di --name=myredis -p 6379:6379 redis

遷移與備份

容器保存為鏡像

我們可以通過以下命令將容器保存為鏡像

docker commit mynginx mynginx_i

鏡像備份

我們可以通過以下命令將鏡像保存為tar 文件

docker  save -o mynginx.tar mynginx_i

鏡像恢復(fù)與遷移

首先我們先刪除掉mynginx_img鏡像 然后執(zhí)行此命令進(jìn)行恢復(fù)

docker load -i mynginx.tar

-i 輸入的文件

執(zhí)行后再次查看鏡像低千,可以看到鏡像已經(jīng)恢復(fù)

Dockerfile

什么是Dockerfile

Dockerfile是由一系列命令和參數(shù)構(gòu)成的腳本配阵,這些命令應(yīng)用于基礎(chǔ)鏡像并最終創(chuàng)建一個新的鏡像。

1示血、對于開發(fā)人員:可以為開發(fā)團(tuán)隊提供一個完全一致的開發(fā)環(huán)境棋傍;
2、對于測試人員:可以直接拿開發(fā)時所構(gòu)建的鏡像或者通過Dockerfile文件構(gòu)建一個新的鏡像開始工作了矾芙;
3舍沙、對于運維人員:在部署時,可以實現(xiàn)應(yīng)用的無縫移植剔宪。

常用命令

命令 作用
FROM image_name:tag 定義了使用哪個基礎(chǔ)鏡像啟動構(gòu)建流程
MAINTAINER user_name 聲明鏡像的創(chuàng)建者
ENV key value 設(shè)置環(huán)境變量 (可以寫多條)
RUN command 是Dockerfile的核心部分(可以寫多條)
ADD source_dir/file dest_dir/file 將宿主機的文件復(fù)制到容器內(nèi)拂铡,如果是一個壓縮文件,將會在復(fù)制后自動解壓
COPY source_dir/file dest_dir/file 和ADD相似葱绒,但是如果有壓縮文件并不能解壓
WORKDIR path_dir 設(shè)置工作目錄

使用腳本創(chuàng)建鏡像

步驟:

(1)創(chuàng)建目錄

mkdir –p /usr/local/dockerjdk8

(2)下載jdk-8u171-linux-x64.tar.gz并上傳到服務(wù)器(虛擬機)中的/usr/local/dockerjdk8目錄

(3)創(chuàng)建文件Dockerfile vi Dockerfile

#依賴鏡像名稱和ID
FROM centos:7
#指定鏡像創(chuàng)建者信息
MAINTAINER ITCAST
#切換工作目錄
WORKDIR /usr
RUN mkdir  /usr/local/java
#ADD 是相對路徑j(luò)ar,把java添加到容器中
ADD jdk-8u171-linux-x64.tar.gz /usr/local/java/

#配置java環(huán)境變量
ENV JAVA_HOME /usr/local/java/jdk1.8.0_171
ENV JRE_HOME $JAVA_HOME/jre
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
ENV PATH $JAVA_HOME/bin:$PATH

(4)執(zhí)行命令構(gòu)建鏡像

docker build -t='jdk1.8' .

注意后邊的空格和點感帅,不要省略

(5)查看鏡像是否建立完成

docker images

Docker私有倉庫

私有倉庫搭建與配置

  1. 拉取私有倉庫鏡像(此步省略)
docker pull registry
  1. 啟動私有倉庫容器
docker run -di --name=registry -p 5000:5000 registry
  1. 打開瀏覽器 輸入地址http://192.168.184.141:5000/v2/_catalog看到{"repositories":[]} 表示私有倉庫搭建成功并且內(nèi)容為空
  2. 修改daemon.json
vi /etc/docker/daemon.json

添加以下內(nèi)容,保存退出地淀。

{"insecure-registries":["192.168.184.141:5000"]} 

此步用于讓 docker信任私有倉庫地址

  1. 重啟docker 服務(wù)
    systemctl restart docker

鏡像上傳至私有倉庫

  1. 標(biāo)記此鏡像為私有倉庫的鏡像
docker tag jdk1.8 192.168.184.141:5000/jdk1.8
  1. 再次啟動私服容器
docker start registry
  1. 上傳標(biāo)記的鏡像
docker push 192.168.184.141:5000/jdk1.8
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末失球,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌实苞,老刑警劉巖豺撑,帶你破解...
    沈念sama閱讀 221,695評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異黔牵,居然都是意外死亡聪轿,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,569評論 3 399
  • 文/潘曉璐 我一進(jìn)店門猾浦,熙熙樓的掌柜王于貴愁眉苦臉地迎上來陆错,“玉大人,你說我怎么就攤上這事金赦∫舸桑” “怎么了?”我有些...
    開封第一講書人閱讀 168,130評論 0 360
  • 文/不壞的土叔 我叫張陵夹抗,是天一觀的道長绳慎。 經(jīng)常有香客問我,道長兔朦,這世上最難降的妖魔是什么偷线? 我笑而不...
    開封第一講書人閱讀 59,648評論 1 297
  • 正文 為了忘掉前任,我火速辦了婚禮沽甥,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘乏奥。我一直安慰自己摆舟,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 68,655評論 6 397
  • 文/花漫 我一把揭開白布邓了。 她就那樣靜靜地躺著恨诱,像睡著了一般。 火紅的嫁衣襯著肌膚如雪骗炉。 梳的紋絲不亂的頭發(fā)上照宝,一...
    開封第一講書人閱讀 52,268評論 1 309
  • 那天,我揣著相機與錄音句葵,去河邊找鬼厕鹃。 笑死,一個胖子當(dāng)著我的面吹牛乍丈,可吹牛的內(nèi)容都是我干的剂碴。 我是一名探鬼主播,決...
    沈念sama閱讀 40,835評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼轻专,長吁一口氣:“原來是場噩夢啊……” “哼忆矛!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起请垛,我...
    開封第一講書人閱讀 39,740評論 0 276
  • 序言:老撾萬榮一對情侶失蹤催训,失蹤者是張志新(化名)和其女友劉穎洽议,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體漫拭,經(jīng)...
    沈念sama閱讀 46,286評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡亚兄,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,375評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了嫂侍。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片儿捧。...
    茶點故事閱讀 40,505評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖挑宠,靈堂內(nèi)的尸體忽然破棺而出菲盾,到底是詐尸還是另有隱情,我是刑警寧澤各淀,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布懒鉴,位于F島的核電站,受9級特大地震影響碎浇,放射性物質(zhì)發(fā)生泄漏临谱。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,873評論 3 333
  • 文/蒙蒙 一奴璃、第九天 我趴在偏房一處隱蔽的房頂上張望悉默。 院中可真熱鬧,春花似錦苟穆、人聲如沸抄课。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,357評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽跟磨。三九已至,卻和暖如春攒盈,著一層夾襖步出監(jiān)牢的瞬間抵拘,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,466評論 1 272
  • 我被黑心中介騙來泰國打工型豁, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留僵蛛,地道東北人。 一個月前我還...
    沈念sama閱讀 48,921評論 3 376
  • 正文 我出身青樓偷遗,卻偏偏與公主長得像墩瞳,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子氏豌,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,515評論 2 359