Docker 是一个开源的应用容器引擎,基于 Go 语言 并听从Apache2.0协议开源。
Docker 可让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,而后发布到任何流行的 Linux 机器上,也能够实现虚拟化。
容器是彻底使用沙箱机制,相互之间不会有任何接口,更重要的是容器性能开销极低。html
在没有用docker以前,咱们须要在本地,测试,线上部署相同的环境,相同的软件每一个环境都要安装一次,而且每来一个新同事,相同的环境有要从新安装一遍,很麻烦且过于重复。docker能够完美的解决这个问题
用docker以后咱们只须要在本地,测试,线上分别安装相同的docker,而后在本地搭建环境,将搭建好的环境容器生成docker镜像,只要将这个docker镜像提供给测试和线上便可构建出相同的环境,在代码部署上咱们能够利用docker数据卷将本地项目目录文件直接挂载到测试环境中linux
咱们在官网上看到docker不能在win7上直接安装,须要经过docker toolbox来安装nginx
Requires Microsoft Windows 10 Professional or Enterprise 64-bit. For previous versions get Docker Toolbox.git
so,根据官网的介绍咱们能够在这里https://docs.docker.com/toolbox/overview/直接点击Get Docker Toolbox for Windows
按钮直接下载,若是下载慢的话能够在https://get.daocloud.io/toolbox/下载,我选择DockerToolbox-18.09.1.exe 这个版本。下载完后可直接双击安装
安装的过程当中须要选择安装哪些组件,这里因为我本机已经安装了git和virtual box,因此就不选了,没安装的建议全选
安装完后桌面上多出docker和kitematic两个快捷方式docker
双击Docker Quickstart Terminal,因为咱们没有一块儿安装git,所以弹出须要咱们指定用哪一个bash.exe,这里咱们选择本机安装的Git/bin/bash.exe文件,等一段时间后安装完成,出现以下界面
执行docker-machine ssh default便可登陆上镜像
这里docker启用默认的镜像,ip为192.168.99.100,咱们能够经过xshell登录上此服务器
default镜像默认的用户名是docker密码是tcuser
至此docker在win7上安装完成,shell
虚拟机的默认存储位置是C:\Users\Administrator.docker\machine\machines ,后期docke镜像文件会不断增长,为了给系统盘减负,最好将磁盘移动到其余位置。centos
docker默认的镜像仓库地址是https://hub.docker.com/,但国内的下载速度太过缓慢,最好使用国内镜像,
参考http://guide.daocloud.io/dcs/daocloud-9153151.html#docker-toolbox设置镜像加速bash
在docker官网上咱们能够直接下载Docker Desktop (Mac) 可直接在https://hub.docker.com/editions/community/docker-ce-desktop-mac下载(须要登陆),下载后双击执行docker.dmg正常安装便可
启动docker后在系统菜单栏咱们能够看到docker标志,说明docker安装成功服务器
参考http://guide.daocloud.io/dcs/daocloud-9153151.html#docker-toolbox设置镜像加速
网络
// 列出本地已有镜像 docker images // 从远端下载镜像 docker pull <image name> // 使用镜像建立并启动一个容器(若本地没有该镜像,则会先从远端下载,每次run都会生成一个容器,嗯,轻量~) docker run hub.c.163.com/library/hello-world:latest //列出正在运行的容器 docker ps // 列出全部容器(包括Exited) docker ps -a // 启动指定的容器 docker start <container id> // 中止指定的容器 docker stop <container id> // 中止全部运行中的容器 docker stop $(docker ps -q) // 删除指定容器 docker rm <container id> //删除全部容器 docker rm $(docker ps -aq) //中止并删除容器 docker stop $(docker ps -q) & docker rm $(docker ps -aq) // 删除指定镜像(删除镜像前须先中止并删除容器) docker rmi <image id> // 重启容器 docker restart <container id> // 建立一个新的容器并运行一个命令 docker run [OPTIONS] IMAGE [COMMAND] [ARG...] -a stdin: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项; -d: 后台运行容器,并返回容器ID; -i: 以交互模式运行容器,一般与 -t 同时使用; -p: 端口映射,格式为:主机(宿主)端口:容器端口 -t: 为容器从新分配一个伪输入终端,一般与 -i 同时使用; --name="nginx-lb": 为容器指定一个名称; --dns 8.8.8.8: 指定容器使用的DNS服务器,默认和宿主一致; --dns-search example.com: 指定容器DNS搜索域名,默认和宿主一致; -h "mars": 指定容器的hostname; -e username="ritchie": 设置环境变量; --env-file=[]: 从指定文件读入环境变量; --cpuset="0-2" or --cpuset="0,1,2": 绑定容器到指定CPU运行; -m :设置容器使用内存最大值; --net="bridge": 指定容器的网络链接类型,支持 bridge/host/none/container: 四种类型; --link=[]: 添加连接到另外一个容器; --expose=[]: 开放一个端口或一组端口; // 交互运行 docker run -it centos /bin/bash /bin/bash 是进入到linux中命令行 // 进入容器 docker exec -it centos /bin/bash // 容器拷贝到主机 docker cp <container id>:文件路径 主机目标路径 // 主机拷贝到容器 docker cp 主机文件路径 <container id>:文件路径
1.先设置 win7 到 VirtualBox 中 docker 用的那个虚拟机的共享文件夹
填写好共享文件夹路径和名称。如:共享文件夹路径:E: 共享文件夹名称: e
而后勾选自动挂载和固定分配
2.重启 docker
在上面的镜像容器中咱们能够搭建本身所须要的各类环境,搭建好后可将这个更改后的容器打包成一个镜像,并上传到镜像仓库供你们使用
在搭建好环境的容器中退出时咱们应当使用ctrl+p+q快捷键,而不是exit退出,由于这样直接退出会关闭当前容器
docker commit :从容器建立一个新的镜像。
docker commit -a "name" -m "this is profile" <container id> imageName
这里以阿里云为例,将镜像推送到Registry
$ sudo docker login --username=jesse131 registry.cn-shenzhen.aliyuncs.com $ sudo docker tag [ImageId] registry.cn-shenzhen.aliyuncs.com/mirror-study/study:[镜像版本号] $ sudo docker push registry.cn-shenzhen.aliyuncs.com/mirror-study/study:[镜像版本号]
若是不想经过网络拉去镜像也能够经过U盘拷贝镜像
docker save <container id> -o d:/www/centos.tar
docker load -i d:/www/centos.tar