最近在研究测试环境这块,我们公司使用了一些Docker的东西,算是赶时髦,所以我也就跟着小小的研究了一下,但是没别人研究的深入,浅尝辄止了:
简单来说Docker就是一个虚拟机软件,一个沙盒系统,在沙盒里面可以部署不通内核的虚拟机,由于只有内核和极少的软件,所以到了本地以后基本都要自己定制一下,
定制的方法有两种,一种是从官网拉了镜像以后,然后在本地运行各种更改后提交,打成一个images,一种是使用Dockerfile来自动构建镜像,当然由于我对shell不是特别精通,所以部分软件是用手装的,比较low,以后研究shell了也许会更新一下吧.
再有就是上面提到了images,docker里面是有container和images之分的,container是容器,是使用已经打好的images为基础运行的软件,images顾名思义,镜像,长期装操作系统的人都懂,如果不懂的话自行百度.
docker还有个仓库的概念,如果你不配置的话,那么他就走的官网,如果你配置了,他就会走你配置的仓库,这个文件基本都在/etc/docker/daemon.json ,如果没有的话,就需要你自己创建一个,往里面写入一个仓库的地址就可以了
{ "insecure-registries": ["<ip>:5000"] }
ip:端口号,看自己部署的,跟着需求来就可以.
下面配置好自己的仓库地址以后,就可以开始pull images了,因为我自己用的ubantu,所以就不讲究了,直接贴了:
docker pull ubuntu:tag
上面的tag意思就是版本,如果不填写 冒号后面的tag的话,他会拉取tag是latest的镜像,如果你制定了tag,比如16.04那么他就会拉16.04的版本
在接下来就是坐等拉镜像,可以喝口茶慢慢等,根据自己和仓库的情况时间不定,
如果拉完了,
那么就是运行了,docker的运行很简单:
docker run -itd -p 22:2299 --privileged --name test ubantu:16.4 /bin/bash
像我这种懒人如果不用带端口号的话就是上面的命令了,具体有这些命令什么用,可以用
docker --help 或者 docker cmd --help like docker run --help
功能很多,还是自己去看比较靠谱,网上搜的也未必全,
我这几个命令就是交互式运行,d的意思就是后台运行,-p 的意思就是把镜像内的22端口映射到2299端口,privileged这个命令就是一个特殊权限的意思,如果镜像要在物理机进行一些操作,比如写日志之类的就要带上,如果没有什么特别的操作的话,就可以不用带上.
/bin/bash意思就是执行一个命令,为什么执行这个我不知道,因为我没仔细看,我就知道如果不这么写,有可能镜像会起不来,这个可以去其他博客去研究一下Docker的原理,因为我这个主要是用法,所以就不献丑了.
还有一些常用的命令,补充一下:
dokcer logs containerId or name #查看镜像的log
docker inspect containerId or name #查看镜像配置
docker stop containerId or name #停止
docker start containerId or name #开始
docker exec -it containerId or name /bin/bash #进入镜像内部
docker ps -a #查询容器
docker images #查询镜像
剩下的自己发现去吧.