Docker Toolbox 应用
一.挂载共享文件夹
1.配置VirtualBox
打开Virtual Box ,选择设置-->共享文件夹
正常安装docker toolbox后会有默认的共享文件夹 将本地C:/Users 挂载在docker host机 /c/Users里
点击新建共享文件夹,选择要挂载的目录,填写名称,选择自动挂载和固定分配。ok即可
2.docker宿主机mount挂载
进入Docker界面,执行docker-machine ssh 访问docker宿主机,
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 连接宿主机
docker-machine ssh (default) //toolbox安装默认实例名 default 可省略
2. 启动镜像命令
docker 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
docker 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文件目录
注意 : win环境下需要指定docker宿主机的地址和证书所在位置,这里采用DockerToolbox默认变量设置
宿主机地址不正确maven 会报Connection错误
证书不正确会报certifaction错误
为确认变量可以使用docker-machine env 查看
3) 在已运行的容器上直接提交为新镜像
docker commit [容器ID] [镜像名]