如何快速使用Docker部署我們的微服務(wù)
我們都知道這個 Docker 在部署我們的微服務(wù)上,起到了至關(guān)重要的作用,但是,很多時候,都是我們直接開發(fā)微服務(wù),而不直接的接觸 Docker,今天了不起就來說一下這個 Docker 如何快速的安裝以及部署。
Docker
Docker是一個開源的應(yīng)用容器引擎,它讓開發(fā)者可以打包他們的應(yīng)用以及依賴包到一個可移植的鏡像中,然后發(fā)布到任何流行的Linux或Windows操作系統(tǒng)的機器上,也可以實現(xiàn)虛擬化。容器是完全使用沙箱機制,相互之間不會有任何接口。
Docker是由PaaS提供商dotCloud開源的一個基于LXC的高級容器引擎,其源代碼托管在Github上。它主要用于構(gòu)建和打包應(yīng)用及依賴包,以方便其在不同環(huán)境中無縫地運行。使用Docker,開發(fā)者可以將應(yīng)用及其環(huán)境一同打包到一個可移植的容器中,然后發(fā)布到任何流行的操作系統(tǒng)上。這大大簡化了應(yīng)用的部署和管理,提高了開發(fā)效率和應(yīng)用的可移植性。
請注意,Docker并不只是一個應(yīng)用容器引擎,而是一個完整的平臺,它包含了眾多的工具和組件,如Docker Client、Docker Daemon、Docker Image和Docker Container等,這些組件幫助實現(xiàn)了Docker的強大功能。
Docker目前已經(jīng)被廣泛使用于云計算、DevOps、軟件開發(fā)等領(lǐng)域,它大大提高了應(yīng)用開發(fā)和部署的效率,已經(jīng)成為現(xiàn)代應(yīng)用部署和管理的標(biāo)準(zhǔn)之一。
所以了不起才說,Docker 是至關(guān)重要的一個工具,可以不精通,但是至少得是會用,了解的才可以。
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開啟啟動服務(wù)
systemctl enable docker
這里著重說一下這個 阿里云鏡像加速器這塊,有很多小伙伴不知道這個是什么,我相信大部分的開發(fā)都有注冊過阿里云,而這個就需要去阿里云里面去尋找了,方式了不起也給大家科普一下:
圖片
登陸自己的賬號,搜索鏡像加速器,找到獲取鏡像加速器地址,
圖片
點進(jìn)去就能找到了,雖然很簡單,但是很必要呦。
我們通過Docker 命令,則可以知道我們是否安裝成功
docker -version
圖片
接下來,我們就得來看看如何快速在 Docker 上部署自己的微服務(wù)了。
Docker 部署微服務(wù)
部署微服務(wù)肯定是需要有一些前置條件的,比如,使用 Docker 來安裝 Mysql,安裝 Redis,這些, 這些內(nèi)容都是小意思,了不起就不做贅述了。
我們主要來講這個如何部署自己的微服務(wù)。
我們來給自己的微服務(wù)中增加一個 Dockerfile 文件,用來編寫腳本內(nèi)容。我們先來看示例再說這個文件。
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òu)建鏡像的文本文件,文本內(nèi)容包含了一條條構(gòu)建鏡像所需的指令和說明。
Dockerfile文件中的指令開頭:
圖片
我們編寫的這塊內(nèi)容,如果翻譯起來,其實就很好理解了,我們先指定了基礎(chǔ)的鏡像,使用 JDK8,然后告訴Docker,我們創(chuàng)建一個 /tmp 的基礎(chǔ)卷,然后把這個 jar包 改為 test.jar,最后我們運行這個jar。
當(dāng)我們吧這個文件編寫完成的時候,我們同時還需要準(zhǔn)備好我們的 jar,也就是通過 maven 打成的 jar包。
這個時候,我們直接在 Linux 服務(wù)器下,創(chuàng)建一個文件夾,然后把我們的 Dockerfile 和 jar 包都上傳到這個文件下,接下來,我們就去執(zhí)行這個 Docker 命令,把我們的 jar 包打成鏡像,去讓他運行起來。
docker build -t test . 或者 docker build -t xxx .
(xxx) 為Dockerfile中的指定的名稱
查看docker 鏡像
docker image
啟動項目
docker run -p 18081:18081 xxx(test)
至于是否啟動成功,那么就得通過命令來看一下日志了。
再使用關(guān)鍵字docker logs <容器id>打印出該容器產(chǎn)生的日志
關(guān)于如何使用 Docker 部署自己的微服務(wù),你學(xué)會了么?