Centos7.0上docker的使用


前言

docker是基于go语言而开发的容器,和虚拟机如Oracle Vm有着异曲同工之妙,不同的是docker属于轻量级的容器,在虚拟机上创建的应用可能需要几G但在docker中可能只需要几十kb到几十M。如今,随着单体架构逐渐演变为微服务架构,通过容器的手段来管理各种各样的应用无疑是一种有效的方式。


安装docker

安装前可以输入下面命令查看Linux的内核版本,3.10以上味道较佳,低于这个版本据说容易卡壳~下面的命令都是在root权限下进行的,如果不是root的话,记得命令前面加一个sudo

uname -r

安装前可以对yum进行更新

yum update

安装的话可以用centos自带的yum进行安装,-y表示不询问,直接使用默认配置进行安装

yum install -y docker

yum install docker-ce

如果想安装指定版本,需要先将yum源指向docker的版本库

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

ps:有些yum似乎没有提供yum-config-manager模块,这时需要先安装

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

查看docker的所有版本

yum list docker-ce --showduplicates | sort -r

查看版本

yum list docker-ce --showduplicates | sort -r

安装指定版本

yum install docker-ce-18.06.3.ce

在这里插入图片描述
启动docker服务

systemctl start docker

查看版本

docker version

查看镜像,一开始应该是啥都没有,什么都还没装

docker  images

查看服务

docker ps

docker打包SpringBoot项目

由于SpringBoot内置了Tomcat,当然你也可以配置成jetty,我们无需要安装多余的依赖,只需要可以运行jar包的jdk即可,然后就可以把我们的Springboot项目的jar包打包成镜像了,然后跑在docker上。

首先将jar包上传到服务器,可以用xfttp,我用的是Linux的lrzsz模块进行上传的

yum install lrzsz

安装后输入rz命令,在弹出的界面中找到对应路径下的jar包然后点击上传即可

在这里插入图片描述
关于jdk,docker hub已经给我们安排的明明白白的,所以我们只需要在编写Dockerfile文件的时候引入即可

FROM java
VOLUME /tmp
ADD live-code-web-manage.jar code.jar
RUN bash -c 'touch /code.jar'
ENV JAVA_OPTS=""
ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /code.jar"]

其中,FROM java定义基础的jdk环境,Docker hub官方提供了java镜像,有了这个基础镜像后,Dockerfile可以通过FROM指令直接获取它的状态,即容器中java是已经安装的,接下来通过自定义的命令来运行SpringBoot应用即可。

VOLUME /tmp:创建/tmp目录并持久化到Docker数据文件夹,因为SpringBoot使用的内嵌Tomcat容器默认使用/tmp作为工作目录。

ADD live-code-web-manage.jar code.jar和RUN bash -c 'touch /code.jar’将本地应用jar包复制到镜像中,并另取了名字code.jar等同于ADD live-code-web-manage.jar /code.jar。

ENTRYPOINT:表示容器运行后默认执行的命令。

开始构建镜像,它会读取Dockfile文件,然后给镜像打标签,这里的标签就是-t后的code-v1.0,不要漏了命令最后面的.它表示当前目录。第一次构建有点慢,因为需要配置jdk

docker build -t code-v1.0 .

打包完毕后,如下命令查看

docker images

第一次运行需要如下命令,其中-p是端口映射,镜像对外暴露的接口映射到机器中的接口,–name是镜像运行时的名字,-d是返回镜像运行后在容器中的id
在这里插入图片描述
查看日志

docker logs -f -t 

docker logs -f -t --since="时间" --tail=100 code
--since :指定了输出日志开始日期,即只输出指定日期之后的日志。

-f : 查看实时日志

-t : 查看日志产生的日期

-tail=100 : 查看最后的100条日志。

code: 容器名称

docker搭建hadoop集群

关于这方面的内容比较繁琐,我直接贴一下原文的作者,我就是跟着他来的,遇到的问题也是在评论中解决的~
点击跳转

在搭建后,我也是遇到一个问题,节点之间可以互相连通,但启动服务的时候总是报错:ssh : could not resolve hostname spark-worker1/2 : Name or Service not know,一开始很纳闷,关于spark模块我都修改了,怎么会出现这个鬼东西,后来看了评论,才知道Master节点中在hadoop安装的目录下的配置文件slaves存放着其他节点的主机名,之前是spark-worker1和2修改成Slave1和Slave2后成功解决。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

legendaryhaha

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值