Docker总结(2)

1.容器数据卷

  容器之间有一个数据共享的技术!Docker容器中产生的数据,同步到本地!这就是卷技术!目录的挂载:将我们的容器内的目录挂载到Linux上面!

  容器的持久化和同步操作!容器间也是可以数据共享的!

  -v 挂载

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

  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=123456 --name mysql01 mysql

  -e MYSQL_ROOT_PASSWORD=   设置mysql密码

  

 

  比较并判断,得出结论同步!

2.具名和匿名挂载

  匿名挂载  

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

   

 

  

 

  具名挂载

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

  

 

 

 

 

  注意一些后面会标ro和rw,默认rw

  ro: 只读           看到这个说明只能宿主机操作,容器内部无法操作

  rw:读写

3.DockerFile

  DockerFile:就是用来构建docker镜像的构建文件

  测试完挂载的脚本方法

  1.在/home 下创建一个目录,并VIM一个文件 

  

 

  

 

   2.创建镜像

   docker build -f /home/cishi/DockerFile0 -t centos .

   

 

    

 

4.数据卷容器

  

 

   实现多个mysql数据同步     --volumes -from 继承

  例如: docker run -it --name docker01 centos

     docker run -it --name docker2 --volumes -from docker01 centos

     实例比较文件的不同,进行创建,删除操作

  结论:容器之间配置信息的传递,数据卷容器的生命周期一直持续到没有容器使用为止,但是一旦你持久化到了本地这时候,本地数据是不会被删除的。、

       DockerFile基础知识

  1.每个保留关键字(指令)都必须是大写字母。

  2.执行从上到下顺序执行

  3.# 表示注解

  4.每个指令都会创建提交一个新的镜像层

  

 

  4.练习(1)

  Docker Hub 中99%镜像都是从这个基础镜像过来的FROM scratch,然后配置需要的软件和配置进行构建。

  1.创建一个centos

  

 

   2.通过这个文件构建镜像

  

 

    

 

 

 

   CMD与ENTRYPOINT的区别

   CMD是 替换只保留最后一个   例如: CMD ["ls","-a"]       运行这个加-l 不会变成 ls -al 会变成 -l  ,只能用ls -al替换ls -a

   而ENTRYPOINT是添加会变成 ls -al 

5.练习(2)

  1.准备镜像文件,tomcat压缩包,jdk压缩包

  

 

   2.编写dockerfile文件,我所使用的是官方名所以不用定位

       

 

   

   3.构建镜像 

  

 

 

 

  4.运行镜像  docker run -d -p 9090:8080 --name shuiditomcat -v /home/shuidi/tomcat/test:/usr/local/apache-tomcat-9.0.45/webapps/test -v /home/shuidi/tomcat/logs/:/usr/local/apache-tomcat-9.0.45/logs mytomcat

  

 

   5.测试访问

  

 

   6.发布项目(由于放了卷挂载,我们可以直接在本地编写项目)

  

 

 

  

  测试加上/test 注意看下tomcat包中是否有测试这项!

 

 

 

 

 

借鉴:狂神说 www.kuangstudy.com

    

 

posted @ 2021-04-08 18:12  氺棣  阅读(83)  评论(0)    收藏  举报