Docker学习-第2天

 

             1.容器数据卷

                    docker是将应用和环境打包成一个镜像!如果删除容器,数据就丢失。

                    容器之间可以有一个数据共享的技术!Docker容器中产生的数据,同步到本地。这就是卷技术!

                    目录的挂载,将我们容器内的目录,挂载到Linux上面。

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

             2.使用数据卷

                     1.方式1:直接使用命令来挂载  -v

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

                         范例:

                          docker run -it -v /home/ceshi:/home centos /bin/bash

             3.安装MySQL

                      1.获取mysql8.0.28镜像文件

                                    docker pull mysql:8.0.28

                      2.运行容器,需要做数据挂载

                                   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:8.0.28

                                   参数说明:

                                         -d  后台运行

                                        -p  端口映射

                                        -v  卷挂载

                                         -e  环境配置

                                         --name   容器名字

                       3.使用MySQL Workbench连接,查看是否连接成功,注意端口号为3310

 

                       4.连接成功后,使用MySQL Workbench创建一个数据库

                       5.删除容器,查看本地的数据文件.我们挂载到本地的数据卷依旧没有丢失,这就实现了容器数据持久化功能。

                         docker rm -f mysql01

             3.具名挂载和匿名挂载

                       1.匿名挂载

                             格式:   -v 容器内路径

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

                             默认存在的地址为:

                             /var/lib/docker/volumes/随机生成的码/_data

                        2.具名挂载

                           格式:  -v 卷名:容器内路径

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

                              默认存放的地址为  /var/lib/docker/volumes/具名/_data

                   

                           

 

 

 

                        3.指定路径挂载

                          格式:-v /主机路径:容器内路径

                        

             4.数据容器卷

                           父数据卷运行

                          1. docker run -it --name docker01 louis/centos:2.0

                              

 

                             2.  从父容器 生成子容器 

                           docker run -it --name docker02 --volumes-from docker01 louis/centos:2.0

                            

 

                        3.从父容器生成子容器

                         docker run -it --name docker03 --volumes-from docker01 louis/centos:2.0

                       容器之间配置信息的传递,数据卷容器的生命周期一直持续到没有容器使用为止。

                       一旦持久化到本地,本地的数据是不会删除的。

                          

             5.DockerFile

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

                     构建步骤:

                          1. 编写一个dockerfile文件

                          2. docker build 构建成为一个镜像

                          3. docker run 运行镜像

                          4. docker push 发布镜像(DockerHub、阿里云镜像仓库)

             6.DockerFile指令

               常用的命令:
                

FROM                           #基础镜像,一切从这里开始构建
MAINTAINER                 #镜像谁写的,姓名+邮箱
RUN                             #镜像构建的时候需要运行的命令
ADD                             #添加资源,tomcat镜像、mysql镜像等
WORKDIR                      #镜像的工作目录
WOLUME                       #挂载的目录
EXPOSE                         #暴露端口

CMD                              #指定这个容器启动的时候要运行的命令
ENTRYPOINT                  #指定之歌容器启动的时候要运行的命令,可以追加命令
ONBUILD                       #当构建一个被继承DockerFile,这个时候就会运行ONBUILD的 
                                     指令。触发指令
COPY                             #类似于ADD,讲我们的文件拷贝到镜像中
ENV                                #构建的时候设置环境变量

  

             7.DockerFile实例-创建一个自己的镜像

                   1.编写dockerfile文件

                      


FROM centos:7

MAINTAINER louis<78211111@qq.com>

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

                     

 

 

                2.通过dockerfile文件构建镜像文件

                   

                               docker build -f mydockerfile -t mycentos:1.0 .

                3.进入生成的镜像中

                                 docker run -it mycentos:1.0

                   

 

 

                 4.查看本地镜像的变更历史

                     docker history  容器id

                 

             

posted @ 2022-04-19 15:35  CoreVicotry  阅读(35)  评论(0)    收藏  举报