容器数据卷
什么是容器数据卷 docker理念 将应用和环境打包成一个镜像 数据?如果都在容器中,那么容器删除,数据就会丢失!需求:数据可以持久化 MySql,容器删了,数据库也没有!需求:mysql数据可以存储在本地 容器之间可以有一个数据共享的技术!docker容器中产生的数据,同步到本地 这就是卷技术!目录的挂载,将我们容器内的目录,挂载到linux上面
其实就是同步机制:容器的持久化和同步操作,容器间可以数据共享
使用数据卷
直接使用命令 -v
docker run -it -v 主机目录,容器目录
###mysql数据持久化
DockerFile
DockerFile就是用来构建docker镜像的构建文件。命令文件. 通过这个脚本可以生成镜像,镜像是一层一层的 构建步骤
- 编写一个dockerfile文件
- docker build 构建成为一个镜像
- docker run 运行镜像
- docker push 发布镜像(DockerHub,阿里云镜像仓库)
dockerfile基础知识
- 每个保留关键字(指令)都必须是大写字母
- 执行从上到下顺序执行
- #表示注释
- 每一个指令创建都会生成一层新的镜像
dockerfile是面向开发,我们以后开发要发布项目,做镜像,就需要编写dockerfile文件,这个文件十分简单 Docker镜像逐渐成为企业交付的标准 Docker:构建文件,定义了一切的步骤,源代码 DockerImages:通过DockerFile构建生成的镜像,最终发布和运行的产品 Docker容器:容器就是镜像运行起来提供服务器
dockerfile指令
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镜像
- 准备镜像文件tomcat压缩包,jdk压缩包
- 编写dockerfile文件 vim Dockerfile,官方命名Dockerfile,build的时候就不需要命名了
FROM centos
MAINTAINET jipeng<jipeng232@qq.com>
COPY readme.txt /usr/local/readme.txt