Docker学习笔记(六)DockerFile

初始DockerFile

Dockerfile是用来构建docker镜像的构建文件!命令脚本!通过这个脚本可以生成镜像,镜像是一层一层的,脚本一个个的命令,就是镜像的一层。

  • dockerfile文件的名字可以随机,但是建议用dockerfile
  • 文件中的内容指令参数用大写
  • dockerfile是一个文本文件,每一条指令构建一层,基于基础镜像,最终构建出一个新的镜像。
  • 对于开发人员:可以为开发团队提供一个完全一致的开发环境
  • 对于测试人员:可以直接拿开发时所构建的镜像或者通过dockerfile文件构建一个想你的镜像开始工作
  • 对于运维人员:在部署时,可以实现应用的无缝移植
    例子:在这里插入图片描述
    这里的-y尽量不要省,因为安装过程遇到命令输入可能会失败,
    from centos:7这个镜像是有的,如果没有会自动下载,但是版本号得对.
    这里要记住,除关键字大写,其他全部小写,否则执行时报错.
FROM centos
VOLUME ["volume01","volume02"]
CMD echo "----end----"
CMD /bin/bash

项目构建指令

docker build -f /wj/dockerfile -t wj/filetomcat:1.0

-f 是指定dockerfile存在的根路径位置
-t 指定新镜像的REPOSITORY信息
:1.0是新镜像的TAG信息
这里的最后边有一个点,代表寻址路径
在这里插入图片描述
启动新镜像

docker run -t e78d4dbec2b4 /bin/bash

进入新起的容器内,查看新生成的两个文件夹
在这里插入图片描述
退出到宿主机,查看当前容器挂载的文件路径地址

docker inspect 7e5001e673e8

在这里插入图片描述
我们写的是匿名挂载,两边创建文件测试,发现可同步,搞定!
看一下官网的代码
在这里插入图片描述
CMD["/bin/bash"]:这就是为什么创建时可以省略的原因!
在这里插入图片描述
在这里插入图片描述
not a regular file
linux 下scp传文件时错误 scp: /usr/tools: not a regular file 不能成功传送 解决方案
1:有可能没权限 chmod 777
2: 在使用scp时加上-r 参数
scp -r root@192.168.16.5:/usr/tools/xxxx
例子:scp -r /Users/wangjun/JAVA/WangJunDemo/gxs-sms/target/gxs-sms-1.0.0.jar root@119.23.108.107:/root/tomcat/java-project

容器间的数据同步

一、启动使用dockerfile创建的镜像

docker run -it --name test1 wj/filecentos:1.0

进入启动的容器查看挂载的文件夹是否存在

docker exec -it 容器ID /bin/bash
docker exec -it a27f1a6fe9 /bin/bash

在这里插入图片描述
在volume01和volume02分别创建文件,返回到宿主机

docker inspect 容器ID			#查看容器信息
docker inspect a27f1a6fe923

在Mounts中查看挂载的文件位置,进入文件查看容器内的文件是否同步。在这里插入图片描述
二、在test1的基础上启动test2

docker run -it --name test2 --volumes-from test1 wj/filecentos:1.0

在这里插入图片描述
进入新生成的容器查看文件挂载
在这里插入图片描述
在挂载文件夹中创建文件看是否能同步出去,一个是宿主机文件夹,一个是test1挂载的文件夹。

总结:

  • 容器之间配置信息的传递,数据卷容器的生命周期一直持续到没有容器使用为止。
  • 但是一旦持久化到了本地,这个时候,本地的数据是不会删除的。
三、 CMD和ENTRYPOINT区别

cmd:指定这个容器启动的时候要运行的命令,只有最后一个会生效,可被替代。
ENTRYPOINT:指定这个容器启动的时候要运行的命令,可以追加命令。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值