docker核心

65 阅读2分钟

容器数据卷

什么是容器数据卷 docker理念 将应用和环境打包成一个镜像 数据?如果都在容器中,那么容器删除,数据就会丢失!需求:数据可以持久化 MySql,容器删了,数据库也没有!需求:mysql数据可以存储在本地 容器之间可以有一个数据共享的技术!docker容器中产生的数据,同步到本地 这就是卷技术!目录的挂载,将我们容器内的目录,挂载到linux上面

其实就是同步机制:容器的持久化和同步操作,容器间可以数据共享

使用数据卷

直接使用命令 -v

docker run -it -v 主机目录,容器目录

###mysql数据持久化

DockerFile

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

  1. 编写一个dockerfile文件
  2. docker build 构建成为一个镜像
  3. docker run 运行镜像
  4. docker push 发布镜像(DockerHub,阿里云镜像仓库)

dockerfile基础知识

  1. 每个保留关键字(指令)都必须是大写字母
  2. 执行从上到下顺序执行
  3. #表示注释
  4. 每一个指令创建都会生成一层新的镜像

dockerfile是面向开发,我们以后开发要发布项目,做镜像,就需要编写dockerfile文件,这个文件十分简单 Docker镜像逐渐成为企业交付的标准 Docker:构建文件,定义了一切的步骤,源代码 DockerImages:通过DockerFile构建生成的镜像,最终发布和运行的产品 Docker容器:容器就是镜像运行起来提供服务器

dockerfile指令

821814-20210109102912082-1978951306.png

FROM       # 基础镜像,一切从这里开始
MAINTAINER # 镜像是谁写的,姓名+邮箱
RUN        # 镜像构建的时候需要运行的命令
ADD        # 步骤,tomcat镜像
WORKDIR    # 工作目录
VOLUME     # 容器卷 挂载目录
EXPOSE     # 指定对外端口
CMD        # 指定这个容器启动时候要运行的命令,只有最后一个会生效
ENTRYPOINT # 指定这个容器启动时候要运行的命令
ONBUILD    # 当构建一个被继承 DockerFile 这个时候会运行这个命令,触发指令
COPY       # 类似ADD,将我们的文件拷贝到镜像中
ENV        # 构建的时候设置环境变量

实战测试

docker history image_id 可以查询这个镜像是怎么做的 被你的

CMD和ENTRYPOINT的区别

vim dockerfile-cmd-test
FROM centos
CMD ["ls","-a"]

dokcer build -f dockerfile-cmd-test -t cmdtest .


dokcer run images_id ls -al
就会把cmd中命令替换掉

实战Tomcat镜像

  1. 准备镜像文件tomcat压缩包,jdk压缩包
  2. 编写dockerfile文件 vim Dockerfile,官方命名Dockerfile,build的时候就不需要命名了
FROM centos
MAINTAINET jipeng<jipeng232@qq.com>

COPY readme.txt /usr/local/readme.txt

Docker网络