docker入门(3)--------构建镜像

6 篇文章 0 订阅
2 篇文章 0 订阅

1.手动制作镜像

模拟环境,将 eclipse上打好的war包放进tomcat里面去,再运行网页

  • 停止Linux上的tomcat:找到你Linux上的tomcat的bin目录,然后运行
[root@localhost bin]# ./shutdown.sh
  • 下载一个tomcat镜像,版本自己确定,我的是tomcat7
[root@localhost bin]# docker pull tomcat:7
  • 运行并创建tomcat容器
[root@localhost bin]# docker run --name mytomcat --net host -itd tomcat:7

解释:创建一个名字是mytomcat,并且和宿主机在同一网络下的容器

  • 在浏览器上保证访问tomcat的8080端口时会出现tomcat的首页

在这里插入图片描述

  • 将war拷贝到tomcat容器的/usr/local/tomcat/webapps

1 将war包上传到linux的根目录下
在这里插入图片描述
2 将/test.war拷贝到容器的/usr/local/tomcat/webapps

[root@localhost /]# docker cp /test.war mytomcat:/usr/local/tomcat/webapps

解释:将宿主机根目录下的war包,拷贝到doacker容器名是mytomcat的/usr/local/tomcat/webapps下

  • 确认能够出现html的网页
    在这里插入图片描述
  • 构建镜像
[root@localhost /]# docker commit mytomcat mytomcat:1.0

解释:将名字是mytomcat的容器构建成名字是mytomcat的镜像,镜像版本是1.0

在这里插入图片描述

  • 创建新镜像的容器
    删除之前创建的容器,并且再创键一个mytomcat:1.0镜像的容器
[root@localhost /]# docker rm -f mytomcat
[root@localhost /]# docker run --net host -itd --name mytomcat mytomcat:1.0
  • 进入新容器查看
[root@localhost /]# docker exec -it mytomcat bash
root@localhost:/usr/local/tomcat# cd webapps
root@localhost:/usr/local/tomcat/webapps# ls

这时你会发现之前的那个war包还是存在的
在这里插入图片描述
并且能在浏览器运行
在这里插入图片描述

2.导出镜像

我这里有一个mytomcat:1.0 的镜像
在这里插入图片描述
导出镜像

[root@localhost /]# docker save mytomcat -o mytomcat1

解释:前面那个mytomcat是我已有的镜像名,后面mytomcat1是导出去的镜像文件名,可以随便设置

然后在ls查看,会发现一个mytomcat文件,这是你备份在你本地的镜像文件 (文件位置是根据你导出镜像时,所在的目录下)
在这里插入图片描述

3.导入镜像

命令:

[root@localhost /]# docker load -i mytomcat1	   

解释:-i:是指定镜像文件
注意:必须是在你镜像文件存在的那个目录下
错误:这里会报一个错:Loaded image: mytomcat:1.0,意思是已经存在这个镜像了,删除之前的镜像就可以了

在这里插入图片描述

4.Dockerfile镜像文件构建(推荐)

  • 打开Notepad++,在/opt目录下新建一个docker_Dockerfile目录,接着在创建一个Dockerfile文件,并将打好的war包放到目录下
    在这里插入图片描述
    注意:文件名必须是Dockerfile
  • Dcokerfile文件内容
    在这里插入图片描述
  • 执行生成镜像的命令
[root@localhost docker_Dockerfile]# docker build -t autotomcat:1.0 .

注意:要在你创建的docker_Dockerfile目录下
解释:最后一个.表示指定你Dockerfile文件, -t:表示你生成的镜像名称:tag

  • 创建容器
[root@localhost docker_Dockerfile]# docker run --name auto --net host -itd autotomcat:1.0
  • 在浏览器上运行
    在这里插入图片描述

5.docker使用maven远程构建

1 .docker远程服务
docker默认情况下 本机 使用 docker命令操作镜像和容器 docker提供了 -H可以连接远程的docker服务器镜像远程镜像
和容器管理,项目中使用maven可以通过DockerFile远程连接并构建镜像 ,达到快速测试的目的

默认docker服务启动 文件(/usr/lib/systemd/system/docker.service)编辑文件
在ExecStart后面 添加一行(表示启动2375端口 用于监听远程操作)
-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
在这里插入图片描述
重新加载服务

[root@localhost /]# systemctl daemon-reload

重启docker服务

[root@localhost /]# service docker restart

注意:出现Redirecting to /bin/systemctl restart docker.service就表示没问题

2.使用dockerfile-maven-plugin插件远程构建docker

<build>
		<!-- 设置包名 -->
		<finalName>test</finalName>
		<plugins>
			<plugin>
				<groupId>com.spotify</groupId>
	           	<artifactId>dockerfile-maven-plugin</artifactId>
	            <version>1.4.0</version>
				<configuration>
					<!-- 
						设置镜像的名字 
						镜像名不能有大写
						-->
					<repository>testmaven</repository>
					<!-- 设置版本号 -->
					<tag>1.0</tag>
					<buildArgs>
						<!-- 要打的war包     ${project.build.finalName}:拿到上面设置的包名 -->
						<JAR_FILE>target/${project.build.finalName}.war</JAR_FILE>
					</buildArgs>
				</configuration>
			</plugin>
		</plugins>
	</build>
  • 项目根目录下添加 Dockerfile文件
    在这里插入图片描述
    在这里插入图片描述
    注意:test.war是打出来的war包,必须和pom.xml上设置的包名一致,Dockerfile文件名不能改

  • 生成镜像

1.右键项目—show In-----Terminal在这里插入图片描述
2.输入echo %DOCKER_HOST%,检查是否根环境变量的一致
在这里插入图片描述
3在输入命令:mvn clean package dockerfile:build -DskipTests
在这里插入图片描述
注意:maven不能运行

这样镜像就构建完成了,查看:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值