docker进阶

commit镜像

  • 以后台交互的方式启动tomcat
docker run -it --name tomcat01 -p 3344:8080 tomcat:9.0

在这里插入图片描述

  • 进入docker 容器中
docker  exec -it e8c623e3e8dc /bin/bash
  • 查看tomcat webapp目录下文件,原本webapps目录下没有任何文件。将webapp.dist下所有的文件全部copy到webapps目录下。
    在这里插入图片描述
  • 这样tomcat就可以正常启动了
    在这里插入图片描述
  • 官方的webapps下面没有任何东西,上面已经将文件copy好了。这样这个镜像就被我们做了一部分的改动,那么如果我们想把最新的镜像保存好,要做什么操作呢。那就是提交操作。
docker commit -a '作者' -m '提交信息' 容器id  新镜像名称

在这里插入图片描述
这样后面可以直接使用修改后的镜像去运行容器。

容器数据卷

定义

使用

  • 命名 docker run -it -v 宿主机目录:容器内目录 容器名称 /bin/bash
    在这里插入图片描述

  • 进入centos容器中 ,在home目录下新建一个test.java文件
    在这里插入图片描述

  • 查看宿主机根目录dockertest目录下,发现也有个test.java文件。
    在这里插入图片描述

  • 这时我们停掉容器,修改宿主机下的文件内容。
    在这里插入图片描述
    然后我们在重新启动容器。
    在这里插入图片描述
    所有我们至少可以发现,以后我们修改数据,可以直接在宿主机中修改,然后自动同步到容器中。

  • 安装mysql

拉取mysql镜像
在这里插入图片描述
运行容器 mysql

docker run -d -p 10001:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql01  mysql

启动成功

在这里插入图片描述
客户端连接成功。
在这里插入图片描述
在本地创建一个数据库,本地的mysql的data目录下会生成一个test001

在这里插入图片描述

在这里插入图片描述

具名挂载和匿名挂载

匿名挂载:
-v 容器内路径

docker run -d  -P --name nginx01  -v /etc/nignx  nginx

查看所有卷volume的情况

docker  volumes

下面这个就是匿名挂载,-v只写容器内的路径,没有写容器外的路径。
在这里插入图片描述

具名挂载
-v 宿主机路径 容器路径

docker run -d -P --name  nginx02 -v juming-nginx:/etc/nginx nginx

查看卷

docker volume ls

在这里插入图片描述
在这里插入图片描述
所有的docker 容器内的卷 在没有指定外面宿主机的目录情况下,默认在 /var/lib/docker/volumes/卷名/_data

我们沿着这个路径可以追究下:
在这里插入图片描述

初识dockerFile

dockerfile是用来构建镜像的文件!命令参数脚本!

  • 构建步骤

1.编写一个docker文件;
2.docker build 构建成为一个镜像
3.docker run 运行镜像
4.docker push 发布镜像

自建一个dockerFile文件
在这里插入图片描述
运行:buid -f dockerFile文件路径 -t 镜像名称 .

docker build -f dockerFile1 -t  selfcentos .

执行如下
在这里插入图片描述
生成了一个新的镜像
在这里插入图片描述
在这里插入图片描述
在容器中挂载的目录新建一个文件
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
查看宿主机是否有此文件,发现也有此文件。

在这里插入图片描述

FROM   # 基础镜像,一切从这里开始构建
MAINTAINER #镜像是谁写的,姓名+邮箱
RUN #镜像构建的时候需要运行的命令
ADD #步骤,tomcat镜像,这个tomcat压缩包!添加内容
WORKDIR #镜像的工作目录
VOLUME # 设置挂载的目录
EXPOSE #保留端口配置
CMD #指定这个容器启动的时候要运行的命令,只有最后一个会生效,会被替代
ENTRYPOINT #指定这个容器启动的时候要运行的命令,可以追加命令
ENV  #构建的时候设置环境变量
CORY #类似于ADD,将我们文件拷贝到镜像中

自己制作一个centos镜像

首先看下dockefile文件

FROM CENTOS
MAINTAINER gaoyuzhuan<18861456629@163.com>
ENV MYPATH /env
WORKDIR $MYPATH
RUN yum -y install vim
RUN yum -y install net-tools
EXPOSE 80
CMD echo $MYPATH
CMD echo "hello-world"
CMD /bin/bash

编译dockerFile文件

docker build -f dockerfile2  -t mycentos:0.1 .

结果:执行发现问题
在这里插入图片描述
后面修改了dockerfile 文件
在这里插入图片描述
发现可以了
在这里插入图片描述

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值