1 参考链接:
两个容器之前互连:https://blog.csdn.net/cmzsteven/article/details/49227323
docker命令大全 :http://www.runoob.com/docker/docker-command-manual.html
2 docker 的安装教程:
Win 7 : http://www.runoob.com/docker/windows-docker-install.html
Centos7 和麒麟系统 : https://www.cnblogs.com/suidouya/p/5718104.html
3 docker的使用
在linux环境中:
先下载基础镜像centos - 》 docker pull centos (从Docker Hub下载)
运行镜像 - 》 docker run -it -v /usr/test:/www -p 8080:80 centos /bin/bash
参数解释 :-it 分配一个伪终端
-p 端口映射
-v 将本机目录挂载到虚拟机上
在centos 安装好php、mysql、apache,开放端口
访问本机ip加8080 看到apache 的首页
生成当前环境的镜像lamp - 》 docker commit 容器进程id lamp
查看镜像 -》 docker images
接下来介绍如何生成tar包
将镜像lamp生成tar包 -》 docker save -o lamp.tar lamp
两边都是linux系统可以scp 获取,使用下面命令:
scp root@172.16.9.190:/lamp.tar /usr/lamp.tar
转化为镜像 -》 docker load < /usr/lamp.tar
运行镜像 - 》 docker run -it -v /usr/test:/www -p 8080:80 lamp /bin/bash
访问本机ip加8080 端口即可看到 apache页面
4扩展
在主机 运行lamp镜像上的脚本:
docker exec -it lamp /bin/sh /root/runoob.sh
5 Dockerfile
Dockerfile 是docker生成镜像的脚本文件。如下图生成python3的镜像
用Dockerfile 生成镜像的好处:
1.体积小,传输方便
缺点:一些系统源缺少,或网络不好时,影响生成镜像时间,严重的就中断生成镜 像;
6注意的地方
用ctrl+d 退出终端 或杀死容器的进程时,在这里存的文件,系统设置等等操作是不会被保存的,要保存则要生成新的镜像。所以数据和文件不要在此虚拟机存,该虚拟机的定位只是运行环境。
7遇到的一些问题
Linux 环境:
⑴安装docker,官网是推荐安装docker-ce,实际安装过程会报缺少container-selinux >=2.9这个依赖,目前找不到可以源来安装这个依赖,所以还是按照本文提供的安装教程来做。
⑵ 在docker虚拟机中开放端口,报权限不够,先设置虚拟机root密码,保存镜像,杀掉该虚拟机进程,用这个命令运行docker run -it -p 8080:80 --privileged=true -v /F/flaskApp/div:/usr/www centos /bin/bash,输入账号密码后就进入虚拟机,重新安装防火墙和开放端口即可。(windows 环境也有这个问题)
Windows 7 环境:
⑴ 使用docker时,要先启动Oracle VM VirtualBox 再启动Docker Quickstart Terminal。因为非linux环境下通过虚拟机安装linux系统再来跑docker。
⑵ Docker Quickstart Terminal 报 “检测程序过程出错” 或 “没有IP” ,先关闭Oracle VM VirtualBox和Docker Quickstart Terminal 程序,打开任务管理器,杀死所以VirtualBox相关的进程,再按顺序打开Oracle VM VirtualBox和Docker Quickstart Terminal。