docker自制镜像

docker

安装docker

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

安装后启动docker服务

service docker start

如没有启动服务会报

Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

导致以上错误常见的就是服务没启动,其他原因自行百度

赋予用户权限

docker 由root或者sudo安装好,使用其他用户查看比如docker ps 操作还是查看不了,这个时候需要赋予用户权
限,比如我想使用hadoop用户查看的话,执行命令

sudo usermod -a -G docker hadoop  (如果没有docker group 自己创建下)

然后重启docker即可 重启命令 systemctl restart docker
同样执行完该命令之后,需将该用户退出重新登录
如果上述修改不成功 可直接修改/var/run/docker.sock文件为hadoop用户

启动docker后

使用命令 docker pull 拉取镜像

docker pull centos:latest 
	#这是产看镜像的命令
	docker images  

在这里插入图片描述

自制镜像

创建dockerFile 文件,注意不要有后缀名。本人这里使用idea创建的dockerfile ,命名为jdk1.8_maven3.6。文件内容如下:

# 以 centos最新镜像 为基础镜像
FROM centos:latest
#维护者信息,如果要发布这里写作者的邮箱
MAINTAINER zxf
# 安装JDK,我所解压的jdk目录是在/opt/containerd/dk_images/jdk1.8_maven3.6/jdk1.8,后面的jdk1.8是我重命名的方便记忆
COPY jdk1.8 /opt/containerd/dk_images/jdk1.8_maven3.6/jdk1.8

# 安装maven,同jdk一样。注意这俩个解压包是下下来解压之后的包,这里我被网上的坑过
COPY apache-maven-3.6.3  /opt/containerd/dk_images/jdk1.8_maven3.6/apache-maven-3.6.3
# 设置环境变量
ENV JAVA_HOME=/opt/containerd/dk_images/jdk1.8_maven3.6/jdk1.8
ENV MAVEN_HOME=/opt/containerd/dk_images/jdk1.8_maven3.6/apache-maven-3.6.3
ENV PATH=$PATH:$JAVA_HOME/bin:$MAVEN_HOME/bin
# 设置时区
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN echo 'Asia/Shanghai' >/etc/timezone

以上的文件最好和jdk、maven 包放在一起不然会出现copy失败,提示找不到文件。

# 构建容器jdk1.8_maven3.6命令,后面的. 表示在当前文件夹下,-f 后面的就是你所编写dockerFile,-t后面的是容器的名字
docker build -f jdk1.8_maven3.6 -t jdk1.8_maven3.6 .

构建完成后查看镜像

docker images

在这里插入图片描述

docker  run -it jdk1.8_maven3.6 /bin/bash
docker run -itd  jdk1.8_maven3.6 /bin/bash   这个命令退出是后台启动容器

进入容器内,如下图,并验证java环境是否装好

在这里插入图片描述

在自制镜像的基础上,运行java程序

写好一个可以访问的页面程序,这里本人使用spring boot 写的简单页面。使用idea打包后上传到所在服务器,和之前的制作镜像方式一样。

# 这里是使用自己构建的镜像,也可以使用其他的镜像可以从docker上拉取,比如说java:8 等
FROM jdk1.8_maven3.6
#维护者信息
MAINTAINER zxf
# 安装JDK
COPY test_es.jar /opt/containerd/dk_images/jar/test_es.jar
#要执行的命令,这里使用的是-jar命令 ,最好写容器里jar所在的绝对路径不然会找不到jar包,也可以使用cp 命令和在普通服务器上执行的命令一样
CMD java -jar /opt/containerd/dk_images/jar/test_es.jar

#构建容器
docker build -f test_es -t test_es .

在这里插入图片描述

构建完成后可以使用 docker images 查看镜像。

# -d是后台运行并返回容器id,-p 指定端口映射,格式为:主机(宿主)端口:容器端口
运行:docker run -d -p 8888:8080 test_es 

如下图:

# -d是后台运行并返回容器id,-p 指定端口映射,格式为:主机(宿主)端口:容器![在这里插入图片描述](https://img-blog.csdnimg.cn/2020112616412545.png#pic_center)
端口
运行:docker run -d -p 8888:8080 test_es 

如下图:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值