Docker容器的部署與應(yīng)用

本文將介紹如何進(jìn)行部署docker容器和在容器中進(jìn)行部署Tomcat计贰,MySQL,Nginx等蒂窒。

一躁倒、Docker容器的安裝

請自行準(zhǔn)備好一個Linux環(huán)境進(jìn)行操作

1、yum包更新到最新洒琢,運(yùn)行以下命令:

yum update

2秧秉、安裝docker所需要的軟件包:

yum install -y yum-utils device-mapperpersistent-date lvm2

3、設(shè)置yum源為阿里云

yum-config-manager --add-repo http://mirrors.aliyun.com

/docker-ce/linux/centos/docker-ce.repo

4衰抑、安裝docker

yum install docker-ce

5象迎、安裝后查看docker版本

docker -v

二、鏡像和容器的相關(guān)操作

1呛踊、設(shè)置一個國內(nèi)的鏡像站點(diǎn)砾淌,如果說不設(shè)置的話,你在進(jìn)行拉取鏡像時速度會非常的慢谭网,進(jìn)入到/etc/docker/的路徑下編輯vim daemon.json文件(如果沒有則手動創(chuàng)建該文件)

編輯內(nèi)容為:

{

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

}

2汪厨、docker基礎(chǔ)命令:

啟動:systemctl start docker

關(guān)閉:systemctl stop docker

重啟:systemctl restart docker

開機(jī)自啟:systemctl enable docker

查看概要信息:docker info

查看幫助文檔:docker --help

查看docker狀態(tài):systemctl status docker

永久關(guān)閉防火墻命令:

systemctl disable firewalld或chkconfig iptables off

3、鏡像的相關(guān)命令:

查看鏡像:docker images

搜索鏡像:docker search + 鏡像名稱

拉取鏡像:docker pull + 鏡像名稱

刪除單個鏡像:docker rmi + 鏡像名稱或鏡像ID(刪除的前提是鏡像中不存在容器)

刪除所有鏡像:docker rmi `docker images -q`

4愉择、容器的相關(guān)命令:

查看當(dāng)前正在運(yùn)行的容器:docker ps

查看所有的容器:docker ps -a

創(chuàng)建并運(yùn)行交互式容器:docker run -it --name=容器名稱 鏡像名稱 /bin/bash

創(chuàng)建并運(yùn)行守護(hù)式容器:docker run -di --name=容器名稱 鏡像名稱

進(jìn)入容器:docker exec -it 容器名稱 /bin/bash

退出容器:exit

啟動容器:docker start 容器名稱

停止容器:docker stop 容器名稱

文件拷貝:docker cp 需要拷貝的文件 容器名稱:容器目錄劫乱,也可以將文件從容器中拷貝出來:docker cp 容器名稱:容器目錄 需要拷貝的文件

目錄掛載方式創(chuàng)建容器:

docker run -di -v /usr/local/myhtml:/usr/local/myhtml --name=容器名稱 鏡像名稱(作用:可以通過修改Linux主機(jī)從而修改容器)

查看容器IP地址:docker inspect 容器名稱或容器ID

刪除容器:docker rm 容器名稱(刪除的前提必須是容器已處于停止?fàn)顟B(tài))

關(guān)于在容器內(nèi)進(jìn)行下載的相關(guān)內(nèi)容:

一般我們在容器內(nèi)是不存在vim等的命令的,如果需要用到vim時薄辅,我們該如何進(jìn)行安裝呢?這里介紹2種情況:

1抠璃、通過apt-get

先更新apt-get update

再安裝apt-get install vim

2站楚、通過yum

先更新:yum update

再安裝:yum install vim

5、MySQL部署:

首先拉取MySQL鏡像:docker pull centos/mysql-57-centos7

然后創(chuàng)建MySQL容器:

docker run -di --name=docker_mysql -p 33326:3306-v/usr/local/

myhtml/:/usr/local -e MYSQL_ROOT_PASSWORD=123456 centos

/mysql-57-centos7?

6搏嗡、Tomcat部署:

第一種方式:通過拉取Tomcat鏡像進(jìn)行部署

首先拉取Tomcat鏡像:docker pull tomcat

然后創(chuàng)建Tomcat容器:

docker?run?-di --name=docker_tomcat-p?8080:8080 -v /usr/local/

tomcat?:/usr/local/tomcat/

第二種方式:通過編寫Dockerfile進(jìn)行部署

首先創(chuàng)建Dockerfile:

Dockerfile的內(nèi)容為:

FROM centos?

#作者

MAINTAINER caoyunpu 2562478702@qq.com

#拷貝tomcat jdk 到鏡像并解壓

ADD apache-tomcat-8.5.55.tar.gz /usr/local/tomcat

ADD jdk-8u161-linux-x64.tar.gz /usr/local/jdk

#定義交互時登錄路徑

ENV MYPATH /usr/local

WORKDIR $MYPATH

#配置jdk 和tomcat環(huán)境變量

ENV JAVA_HOME /usr/local/jdk/jdk1.8.0_161

ENV CATALINA_HOME /usr/local/tomcat/apache-tomcat-8.5.55

ENV CATALINA_BASE /usr/local/tomcat/apache-tomcat-8.5.55

ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME

/lib:$CATALINA_HOME/bin

#設(shè)置暴露的端口

EXPOSE 7062

#運(yùn)行tomcat

CMD /usr/local/tomcat/apache-tomcat-8.5.55/bin/startup.sh && tail -f /usr/local/tomcat/apache-tomcat-8.5.55/logs/catalina.out

編寫后進(jìn)行wq保存退出窿春,并且下面的運(yùn)行創(chuàng)建鏡像命令必須要在Dockerfile文件的當(dāng)前目錄下進(jìn)行運(yùn)行:

docker build -f Dockerfile -t yunpu/tomcat:1.6 .

然后根據(jù)創(chuàng)建的Tomcat鏡像進(jìn)行創(chuàng)建容器:

docker run -di --name=ruoyi -p 8889:7062 --link ruoyi-redis:ruoyi-redis -v/usr/local/tomcat/logs:/usr/local/tomcat1/apache

-tomcat-8.5.30/logs/ -v /usr/local/tomcat/webapps:/usr/local/tomcat1

/apache-tomcat-8.5.30/webapps/ -v /usr/local/tomcat/conf:/usr/local/

tomcat1/apache-tomcat-8.5.30/conf/ yunpu/tomcat:1.6

注意點(diǎn):因為我們在創(chuàng)建 Dockerfile時設(shè)置了端口,所以相應(yīng)的映射文件時Tomcat的端口也要保持一致采盒,否則會出現(xiàn)容器啟動正常旧乞,卻無法訪問的現(xiàn)象

下圖為我部署后正常訪問Tomcat項目的截圖

7、Nginx部署:

首先拉取Nginx鏡像:docker pull nginx

然后創(chuàng)建Nginx容器:docker run -di --name=docker_nginx -p 80:80?

nginx磅氨,出現(xiàn)下圖表示安裝Nginx成功

8尺栖、Redis部署:

首先拉取Redis鏡像:docker pull redis

然后創(chuàng)建Redis容器:docker run -di --name=docker_redis -p 6379:6379

redis

通過工具訪問Redis,出現(xiàn)以下截圖代表部署成功

注意點(diǎn):當(dāng)我們Tomcat項目需要訪問Redis時烦租,就需要涉及到容器之間的調(diào)用延赌,需要注意修改Java項目中的Redis容器的IP

9除盏、Dockerfile

9.1、Dockerfile的常用命令:

命令 作用
FROM?images_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 將宿主機(jī)的文件復(fù)制到容器內(nèi)挫以,如果是一個壓縮文件者蠕,將會在復(fù)制后自動解壓
COPY source_dir/file dest_dir/file 和ADD相似,但是如果有壓縮文件并不能解壓
workdir path_dir 設(shè)置工作目錄

9.2掐松、使用Dockerfile構(gòu)建一個鏡像

1踱侣、先在Linux中mkdir一個專門放置Dockerfile文件的目錄,并且將壓縮包放置在該目錄中

mkdir?-p /usr/local/dockertomcat

2大磺、構(gòu)建Dockerfile文件

vim?/usr/local/dockertomcat/Dockerfile

文件內(nèi)容為:

FROM centos?

#作者

MAINTAINER caoyunpu 2562478702@qq.com

#拷貝tomcat jdk 到鏡像并解壓

ADD apache-tomcat-8.5.55.tar.gz /usr/local/tomcat

ADD jdk-8u161-linux-x64.tar.gz /usr/local/jdk

#定義交互時登錄路徑

ENV MYPATH /usr/local

WORKDIR $MYPATH

#配置jdk 和tomcat環(huán)境變量

ENV JAVA_HOME /usr/local/jdk/jdk1.8.0_161

ENV CATALINA_HOME /usr/local/tomcat/apache-tomcat-8.5.55

ENV CATALINA_BASE /usr/local/tomcat/apache-tomcat-8.5.55

ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME

/lib:$CATALINA_HOME/bin

#設(shè)置暴露的端口

EXPOSE 7062

#運(yùn)行tomcat

CMD /usr/local/tomcat/apache-tomcat-8.5.55/bin/startup.sh && tail -f /usr/local/tomcat/apache-tomcat-8.5.55/logs/catalina.out

3抡句、創(chuàng)建鏡像:

docker build -f Dockerfile -t yunpu/tomcat:1.6 .

下圖為構(gòu)建成功后的截圖

4、(擴(kuò)展)根據(jù)構(gòu)建的鏡像進(jìn)行創(chuàng)建Tomcat容器:

docker run -di --name=ruoyi -p 8889:7062 --link ruoyi-redis:

ruoyi-redis -v /usr/local/tomcat/logs:/usr/local/tomcat1/

apache-tomcat-8.5.30/logs/ -v /usr/local/tomcat/webapps:/

usr/local/tomcat1/apache-tomcat-8.5.30/webapps/ -v /usr/local/

tomcat/conf:/usr/local/tomcat1/apache-tomcat-8.5.30/conf/

yunpu/tomcat:1.6

注意點(diǎn):由于我們在自己構(gòu)建的Tomcat鏡像時是暴露了新的端口量没,所以我們需要將Tomcat的修改端口路徑也映射出來玉转,這樣我們就可以方便的修改端口了

10、Docker私有倉庫:

10.1殴蹄、docker私有倉庫的搭建與配置

1究抓、拉取私有倉庫鏡像:

docker pull registry

2、啟動私有倉庫容器:

docker run?-di?--name=registry -p 5000:5000 registry

3袭灯、打開瀏覽器訪問宿主機(jī):http://192.168.1.81:5000/v2/_catalog刺下,出現(xiàn)下圖待表私有倉庫搭建成功

4、修改daemon.json

vim /etc/docker/daemon.json

添加以下內(nèi)容稽荧,保存退出:

"insecure-registries":["192.168.1.81:5000"]

修改后一定要重啟docker服務(wù)

systemctl restart docker

10.2橘茉、鏡像上傳私有倉庫

1、標(biāo)記此鏡像為私有倉庫的鏡像

docker tag centos/mysql-57-centos7 192.168.1.81:5000/mysql

2姨丈、上傳標(biāo)記的鏡像

由于我們之前重啟了docker服務(wù)畅卓,所以我們需要把registry容器啟動起來在進(jìn)行上傳鏡像

docker?start registry

docker push?192.168.1.81:5000/mysql

上傳成功后,我們可以發(fā)現(xiàn)多了個MySQL蟋恬,就代表我們上傳鏡像成功

至此翁潘,本次的docker安裝與部署介紹到這里

本文使用 文章同步助手 同步

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市歼争,隨后出現(xiàn)的幾起案子拜马,更是在濱河造成了極大的恐慌,老刑警劉巖沐绒,帶你破解...
    沈念sama閱讀 218,755評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件俩莽,死亡現(xiàn)場離奇詭異,居然都是意外死亡乔遮,警方通過查閱死者的電腦和手機(jī)扮超,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人瞒津,你說我怎么就攤上這事蝉衣。” “怎么了巷蚪?”我有些...
    開封第一講書人閱讀 165,138評論 0 355
  • 文/不壞的土叔 我叫張陵病毡,是天一觀的道長。 經(jīng)常有香客問我屁柏,道長啦膜,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,791評論 1 295
  • 正文 為了忘掉前任淌喻,我火速辦了婚禮僧家,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘裸删。我一直安慰自己八拱,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,794評論 6 392
  • 文/花漫 我一把揭開白布涯塔。 她就那樣靜靜地躺著肌稻,像睡著了一般。 火紅的嫁衣襯著肌膚如雪匕荸。 梳的紋絲不亂的頭發(fā)上爹谭,一...
    開封第一講書人閱讀 51,631評論 1 305
  • 那天,我揣著相機(jī)與錄音榛搔,去河邊找鬼诺凡。 笑死,一個胖子當(dāng)著我的面吹牛践惑,可吹牛的內(nèi)容都是我干的腹泌。 我是一名探鬼主播,決...
    沈念sama閱讀 40,362評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼尔觉,長吁一口氣:“原來是場噩夢啊……” “哼凉袱!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起穷娱,我...
    開封第一講書人閱讀 39,264評論 0 276
  • 序言:老撾萬榮一對情侶失蹤绑蔫,失蹤者是張志新(化名)和其女友劉穎运沦,沒想到半個月后泵额,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,724評論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡携添,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年嫁盲,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,040評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡羞秤,死狀恐怖缸托,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情瘾蛋,我是刑警寧澤俐镐,帶...
    沈念sama閱讀 35,742評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站哺哼,受9級特大地震影響佩抹,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜取董,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,364評論 3 330
  • 文/蒙蒙 一棍苹、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧茵汰,春花似錦枢里、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,944評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至画侣,卻和暖如春冰悠,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背配乱。 一陣腳步聲響...
    開封第一講書人閱讀 33,060評論 1 270
  • 我被黑心中介騙來泰國打工溉卓, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人搬泥。 一個月前我還...
    沈念sama閱讀 48,247評論 3 371
  • 正文 我出身青樓桑寨,卻偏偏與公主長得像,于是被迫代替她去往敵國和親忿檩。 傳聞我的和親對象是個殘疾皇子尉尾,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,979評論 2 355

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