Docker ToolBox 安装
1、首先,安装Docker ToolBox,其中包含了Docker三剑客: docker , docker-machine 和 docker-compose .
安装完成之后包含了以上命令,并且会安装Oracle的Vm软件VirtualBox,Docker容器的主机将会运行在其中.
创建Docker虚拟机主机
安装完之后,有默认的镜像文件 C:Program FilesDocker Toolboxoot2docker.iso,将其拷贝至自己用户名下默认目录 C:UsersBenjamin.dockermachinecache\, docker-machine默认使用这个目录来创建虚拟主机.有些情况下,boot2docker.iso显示是一个压缩包,也可以直接拷贝使用。
2、打开Docker Toolbox安装终端 Docker Quickstart Terminal ,首次运行会自动创建虚拟主机, 如未自动创建成功可以执行以下命令来创建默认的虚拟主机:
docker-machine rm default docker-machine create -d virtualbox default
等待虚拟机创建完成(可以使用VirtualBox来查看虚拟机的状态).
3、调整虚拟主机相关配置
Docker虚拟主机创建完毕之后,还需要配置一些参数才能正常使用.
以下几项是需要登陆到虚拟机中进行调整的内容,登陆方式为:
docker-machine ssh default
如果不想使用 Docker Quickstart Terminal , 可以在登陆之后调整 docker 用户的密码 ,然后就可以使用一般的ssh客户端,如xShell等来登陆虚拟主机.
sudo passwd docker
本地镜像设置
修改 daemon.json (如果没有则创建一个新的):
sudo vi /etc/docker/daemon.json
修改配置为:
{ "insecure-registries" : ["xxxx.com"] ,
}
也可以使用在线的阿里云或者docker hub上的镜像,需要配置mirror。
4、重启 docker 使配置生效:
sudo /etc/init.d/docker restart
查看 docker info, Insecure Registries列表中应当包含 xxxxxx.com.
如果重启失败,可以在 /var/log/docker.log 中查看日志进行相应的调整.
配置了本地镜像之后,即可使用本地镜像拉取所需要的镜像文件,如:
docker pull registry.xxxxxxxxx/python:3.6.2
TLS禁用
在Windows上使用Docker的其中一个目的是使其与PyCharm结合,形成Python代码的解释器,避免重复的Python解释环境搭建的问题,同时保持Windows开发环境和部署环境所用的Python库的一致性.
默认的docker-machine包含了TLS的认证,虽然能保一定的安全性,但是这导致PyCharm使用Docker的效率很低(目前尚未找到解决版本),因此,我们只能使用不使用TLS认证的docker.
登陆到虚拟主机中,调整 DOCKER_TLS 环境变量:
sudo vi /var/lib/boot2docker/profile
将 DOCKER_TLS 设置为 no :
DOCKER_TLS=no
此项在关机后会失效,开机的时候注意设置
修改完成后重启 docker.
注意: 禁用了TLS 后 docker-machine 不再能获取到对应的信息了.
这时候要继续使用docker命令,需要调整环境变量,
环境变量调整后 docker 命令又可以继续使用了.
虚拟主机共享目录
默认的Docker虚拟主机自动创建了一个用户目录的共享文件夹,如果没有的话需要自己创建.
打开 VirtualBox 的管理工具,编辑共享文件夹:
其中 /c/User/ 是默认添加的,后面可以自己添加盘符和文件路径
重启虚拟主机,然后就可以在虚拟主机上看到相关目录了:
docker-machine restart default
命令详解:
attach 进入一个容器
build 从Dockerfile编译
commit 提交容器
cp 从容器内复制文件到指定的路径上
create 创建容器
diff 可以列出容器内发生变化的文件和目录
events 从服务器拉取个人动态,可选择时间区间
exec 进入容器
export 将指定的容器保存成 tar 归档文件, docker import 的逆操作。导出后导入(exported-imported))的容器会丢失所有的提交历史,无法回滚
history 查看指定镜像的创建历史
images 查看镜像列表
import 从归档文件(支持远程文件)创建一个镜像, export 的逆操作,可为导入镜像打上标签。导出后导入(exported-imported))的容器会丢失所有的提交历史,无法回滚
info 显示系统信息
inspect 查看容器底层信息
kill 结束一个正在运行的容器
load 从 tar 镜像归档中载入镜像, docker save 的逆操作。保存后再加载(saved-loaded)的镜像不会丢失提交历史和层,可以回滚
login 登录Docker HUB
logout 退出Docker HUB
logs 打印出容器的标准输出
port 映射NAT的端口
pause 暂停容器
ps 列出容器
pull 下载一个镜像
push 将镜像推送至远程仓库,默认为 Docker Hub
restart 重启容器
rm 删除容器
rmi 删除镜像
run 运行一个新容器
save 保存镜像
search 搜索镜像
start 启动容器
stop 停止容器
tag 镜像改名
top 查看容器进程
unpause 恢复暂停的容器
version 查看版本
wait 阻塞对指定容器的其它调用方法,直到容器停止后退出阻塞
-i #允许在容器进行交互
-t #分配伪tty终端
-d #在后台运行容器
-P #标示通知Docker所需的网络端口映射从主机映射到我们的容器内
-h #指定容器的hostname
-e #设置容器的环境变量
-a #stdin 指定标准输入输出内容类型,可选 STDIN/STDOUT / STDERR 三项
-w #指定工作目录
-u #指定用户名id
-m #指定内存
--env-file=[] 从指定文件读入环境变量
--restart=always 当容器推出时,自动重启容器
--restart=on-failure:5 当容器推出代码为非0时,docker会尝试自动重启该容器,最多重启5次
--name 指定容器名,容器名在整个docker环境中必须唯一
--dns 指定dns
--cpuset="" 绑定容器到指定CPU运行
--net="bridge" 指定容器运行的网络模式