一、容器数据卷
1.为啥要有容器数据卷
因为一个需求:mysql的数据要存储在本地,防止容器删除数据丢失。
2.使用
docker run -it -v 主机目录:容器内目录
测试
docker run -it -v /home/ceshi:/home centos /bin/bash
容器中的绑定信息
数据同步
挂载mysql
docker run -d -p 3310:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v/home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root --name mysql01 mysql:5.7
3.具名和匿名挂载
具名挂载
docker run -d -P --name nginx03 -v guazai-nginx:/etc/nginx nginx
查看所有volume
docker volume ls
查看某个卷的具体信息
docker volume inspect guazai-nginx
手工打造docker镜像
步骤
1.创建脚本文件
vim dockerfile1
文件内容
FROM centos
VOLUME ["volume01","volume02"]
CMD echo "----end----"
CMD /bin/bash
2.生成镜像
docker build -f dockerfile1 -t lxl/centos:1.0 .
3.启动自己创建的镜像
docker run -it 容器id /bin/bash
在volume01文件夹中创建contain.txt
docker inspect 51e3ee9ea818
查看容器具体信息,获得其数据卷信息
容器数据卷:实现容器间的数据共享,数据同步
先启动docker01
docker run -it --name docker01 lxl/centos:1.0
docker02跟01同步数据
docker run -it --name docker02 --volumes-from docker01 lxl/centos:1.0
应用:多个mysql实现数据共享
二、DockerFile
DockerFile:构建文件,定义一切步骤,源代码
DockerImages:通过DockerFile构建生成的镜像
容器:镜像运行起来提供服务器
实战:构建自己的centos
FROM centos
MAINTAINER lxl
ENV MYPATH /usr/local
WORKDIR $MYPATH
RUN yum -y install vim
RUN yum -y install net-tools
EXPOSE 80
CMD echo $MYPATH
CMD echo "---end---"
CMD /bin/bash
docker build -f mydockerfile -t mycentos:1.0 .
查看镜像历史
docker history
实战:Tomcat镜像
1.准备镜像文件tomcat和jdk压缩包
2.编写脚本
FROM centos
MAINTAINER lxl
COPY readme.txt /usr/local/readme.txt
ADD jdk-8u261-linux-x64.tar.gz /usr/local/
ADD apache-tomcat-9.0.34.tar.gz /usr/local/
RUN yum -y install vim
ENV MYPATH /usr/local
WORKDIR $MYPATH
ENV JAVA_HOME /usr/local/jdk1.8.0_261
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV CATALINA_HOME /usr/local/apache-tomcat-9.0.34
ENV CATALINA_BASH /usr/local/apache-tomcat-9.0.34
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HMOE/bin
EXPOSE 8080
CMD /usr/local/apache-tomcat-9.0.34/bin/startup.sh && tail -F /usr/apache-tomcat-9.0.34/bin/logs/catalina.out
运行容器,挂载webapps
docker run -d -p 9090:8080 --name lxltomcat -v /home/mysqlandjava/test/:/url/local/apache-tomcat-9.0.34/webapps/test -v /home/mysqlandjava/tomcatlogs/:/url/local/apache-tomcat-9.0.34/logs diytomcat
docker run -d -p 9090:8080 --name diymytom -v /home/mysqlandjava/test:/usr/local/apache-tomcat-9.0.34/webapps/test -v /home/mysqlandjava/tomcatlogs/:/usr/local/apache-tomcat-9.0.34/logs mydiytom:1.0