Docker Toolbox 应用

一.挂载共享文件夹

     1.配置VirtualBox 

        打开Virtual Box ,选择设置-->共享文件夹

     

docker 容器之间共享端口么 docker容器共享文件夹_tomcat

正常安装docker toolbox后会有默认的共享文件夹  将本地C:/Users 挂载在docker host机 /c/Users里

点击新建共享文件夹,选择要挂载的目录,填写名称,选择自动挂载和固定分配。ok即可

docker 容器之间共享端口么 docker容器共享文件夹_共享文件夹_02


2.docker宿主机mount挂载

docker-machine ssh 访问docker宿主机,

docker 容器之间共享端口么 docker容器共享文件夹_tomcat_03

sudo -i

#挂mount点

mount -t vboxsf Desktop /data

注意: 

        如果VirtualBox里删除共享文件夹,这里会看不到映射的内容,但是映射的目录仍保留。确认不再使用要手动删除。

3.运行镜像

#使用-v  使容器的目录与宿主机的目录共享

#前者是宿主的目录,后者是容器的目录

#这里使用官方tomcat镜像

docker run --name container -v /data:/data2 -p:8080:8080 -it tomcat:latest /bin/bash

#容器里data2目录即可显示系统里的Desktop目录


二、常用命令

    1. Docker 连接宿主机

ssh   (default)     //toolbox安装默认实例名 default 可省略

    2. 启动镜像命令

run --name container -v /data:/data2 –p 8080:8080 -it tomcat:latest /bin/bash

        -v 映射宿主机的挂载点到容器内

        -p 端口映射

    3. 镜像管理命令

         docker ps         查找运行中的容器  -a 全部

         docker images  查找仓库内的镜像


        docker stop [容器id]  停止容器

        docker rm [容器id]  删除容器

        docker rmi [镜像id] 删除镜像


        docker pull [名称:tag] 下载镜像

        docker push [账户名/名称:tag] 上传镜像到个人docker空间

        docker search tomcat*   搜索网上镜像

  

4. 制作镜像

    1) 通过dockerfile文件制作镜像

        cd /dockerfileDirectory

build  -t  [镜像名]:[标签名] .//docker直接构建方式 注意最后需要有"."  或者是 Dockefile所在的路径

        注意:  

           1> win环境下 Dockerfile文件必须放在某一文件夹下,不能直接放在盘符下,否则会失败,Linux无此问题

      参考https://stackoverflow.com/questions/25422130/error-checking-context-is-accessible-cant-stat-gvfs-please-check-permiss点击打开链接

2> Dockerfile文件名就是Dockerfile  不带后缀,大小写敏感

    2) 项目中集成docker-maven-plugin制作镜像

<properties>
 <docker.host>https://192.168.99.100:2376</docker.host>
                <docker.cert.path>C:\Users\账户名\.docker\machine\machines\default</docker.cert.path>
 <docker.image.prefix>镜像名前缀</docker.image.prefix>
 </properties>        <build>
 <plugins>
 <!-- maven集成docker插件 生成镜像文件 -->
 <plugin>
                <groupId>com.spotify</groupId>
                <artifactId>docker-maven-plugin</artifactId>
                <version>0.4.13</version>
                <configuration>
                 <dockerHost>${docker.host}</dockerHost>
         <dockerCertPath>${docker.cert.path}</dockerCertPath>
                 <!-- 镜像名 -->
                    <imageName>${docker.image.prefix}/${project.artifactId}</imageName>
                    <!-- dockerfile文件地址 -->
                    <dockerDirectory>${project.basedir}/src/main/docker</dockerDirectory>
                    <resources>
                        <resource>
                            <targetPath>/</targetPath>
                            <directory>${project.build.directory}</directory>
                            <include>${project.build.finalName}.jar</include>
                        </resource>
                    </resources>
                </configuration>
            </plugin>
 </plugins> </build>

        项目Dockerfile文件目录

        

docker 容器之间共享端口么 docker容器共享文件夹_docker_04

        注意 :  win环境下需要指定docker宿主机的地址和证书所在位置,这里采用DockerToolbox默认变量设置

                    宿主机地址不正确maven 会报Connection错误

                    证书不正确会报certifaction错误

              为确认变量可以使用docker-machine env 查看

        

docker 容器之间共享端口么 docker容器共享文件夹_docker 容器之间共享端口么_05


    3) 在已运行的容器上直接提交为新镜像


commit