我們都知道這個(gè) Docker 在部署我們的微服務(wù)上,起到了至關(guān)重要的作用,但是,很多時(shí)候,都是我們直接開發(fā)微服務(wù),而不直接的接觸 Docker,今天了不起就來說一下這個(gè) Docker 如何快速的安裝以及部署。
Docker
Docker是一個(gè)開源的應(yīng)用容器引擎,它讓開發(fā)者可以打包他們的應(yīng)用以及依賴包到一個(gè)可移植的鏡像中,然后發(fā)布到任何流行的linux或windows操作系統(tǒng)的機(jī)器上,也可以實(shí)現(xiàn)虛擬化。容器是完全使用沙箱機(jī)制,相互之間不會(huì)有任何接口。
Docker是由PaaS提供商dotCloud開源的一個(gè)基于LXC的高級(jí)容器引擎,其源代碼托管在Github上。它主要用于構(gòu)建和打包應(yīng)用及依賴包,以方便其在不同環(huán)境中無縫地運(yùn)行。使用Docker,開發(fā)者可以將應(yīng)用及其環(huán)境一同打包到一個(gè)可移植的容器中,然后發(fā)布到任何流行的操作系統(tǒng)上。這大大簡(jiǎn)化了應(yīng)用的部署和管理,提高了開發(fā)效率和應(yīng)用的可移植性。
請(qǐng)注意,Docker并不只是一個(gè)應(yīng)用容器引擎,而是一個(gè)完整的平臺(tái),它包含了眾多的工具和組件,如Docker Client、Docker Daemon、Docker Image和Docker ContAIner等,這些組件幫助實(shí)現(xiàn)了Docker的強(qiáng)大功能。
Docker目前已經(jīng)被廣泛使用于云計(jì)算、DevOps、軟件開發(fā)等領(lǐng)域,它大大提高了應(yīng)用開發(fā)和部署的效率,已經(jīng)成為現(xiàn)代應(yīng)用部署和管理的標(biāo)準(zhǔn)之一。
所以了不起才說,Docker 是至關(guān)重要的一個(gè)工具,可以不精通,但是至少得是會(huì)用,了解的才可以。
Docker 安裝
1.安裝前置條件
yum install -y yum-utils device-mApper-persistent-data lvm2
2.添加源
yum-config-manager --add-repo http://mirrors.aliyun.com/dockerce/linux/centos/docker-ce.repo
yum makecache fast
3.查看Docker 更新版本
yum list docker-ce --showduplicates | sort -r
4.安裝Docker 最新版本
yum -y install docker-ce
安裝指定版本:
yum -y install docker-ce-18.09.8
5.開啟 Docker 服務(wù)
systemctl start docker
systemctl status docker
6.設(shè)置阿里云鏡像加速器
mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["自己的阿里云鏡像加速地址"]
}
EOF
systemctl daemon-reload
systemctl restart docker
7.設(shè)置docker開啟啟動(dòng)服務(wù)
systemctl enable docker
這里著重說一下這個(gè) 阿里云鏡像加速器這塊,有很多小伙伴不知道這個(gè)是什么,我相信大部分的開發(fā)都有注冊(cè)過阿里云,而這個(gè)就需要去阿里云里面去尋找了,方式了不起也給大家科普一下:
登陸自己的賬號(hào),搜索鏡像加速器,找到獲取鏡像加速器地址,
點(diǎn)進(jìn)去就能找到了,雖然很簡(jiǎn)單,但是很必要呦。
我們通過Docker 命令,則可以知道我們是否安裝成功
docker -version
接下來,我們就得來看看如何快速在 Docker 上部署自己的微服務(wù)了。
Docker 部署微服務(wù)
部署微服務(wù)肯定是需要有一些前置條件的,比如,使用 Docker 來安裝 MySQL,安裝 redis,這些, 這些內(nèi)容都是小意思,了不起就不做贅述了。
我們主要來講這個(gè)如何部署自己的微服務(wù)。
我們來給自己的微服務(wù)中增加一個(gè) Dockerfile 文件,用來編寫腳本內(nèi)容。我們先來看示例再說這個(gè)文件。
FROM openjdk:8
VOLUME /tmp
ADD chuyikeji.jar test.jar
RUN bash -c 'touch /test.jar'
ENTRYPOINT ["JAVA","-Djava.security.egd=file:/dev/./urandom","-jar","/test.jar"]
Dockerfile 是一個(gè)用來構(gòu)建鏡像的文本文件,文本內(nèi)容包含了一條條構(gòu)建鏡像所需的指令和說明。
Dockerfile文件中的指令開頭:
我們編寫的這塊內(nèi)容,如果翻譯起來,其實(shí)就很好理解了,我們先指定了基礎(chǔ)的鏡像,使用 JDK8,然后告訴Docker,我們創(chuàng)建一個(gè) /tmp 的基礎(chǔ)卷,然后把這個(gè) jar包 改為 test.jar,最后我們運(yùn)行這個(gè)jar。
當(dāng)我們吧這個(gè)文件編寫完成的時(shí)候,我們同時(shí)還需要準(zhǔn)備好我們的 jar,也就是通過 maven 打成的 jar包。
這個(gè)時(shí)候,我們直接在 Linux 服務(wù)器下,創(chuàng)建一個(gè)文件夾,然后把我們的 Dockerfile 和 jar 包都上傳到這個(gè)文件下,接下來,我們就去執(zhí)行這個(gè) Docker 命令,把我們的 jar 包打成鏡像,去讓他運(yùn)行起來。
docker build -t test . 或者 docker build -t xxx .
(xxx) 為Dockerfile中的指定的名稱
查看docker 鏡像
docker image
啟動(dòng)項(xiàng)目
docker run -p 18081:18081 xxx(test)
至于是否啟動(dòng)成功,那么就得通過命令來看一下日志了。
再使用關(guān)鍵字docker logs <容器id>打印出該容器產(chǎn)生的日志
關(guān)于如何使用 Docker 部署自己的微服務(wù),你學(xué)會(huì)了么?