前言:
1.电子书804页。
2.Docker三剑客Machine、Compose、Swarm。
第一部分-技术入门:
1.git地址:https://github.com/docker/docker。
2.红帽公司的RHEL6.5/CentOS 6.5往上的操作系统、Ubuntu14.04往上的操作系统,都已经在软件源中默认带有Docker软件包。
3.Docker站在前人的的肩膀上,Linux容器(Linux Containers,LXC)技术。
4.Docker最大优势:快速分发和部署。
5.Dockerfile是由一系列命令和参数构成的脚本,这些命令应用于基础镜像并最终创建一个新的镜像。它们简化了从头到尾的流程并极大的简化了部署工作。
6.公有云和私有云的区别:私有云就是你自己的家,只有自己或者你允许的人能住,一般你不愿意外人知道的隐私都放在家里;公有云就是收费景点,买了门票的都能进。
7.Docker以及其他容器技术都属于操作系统虚拟化这个范畴。
第二部分-核心概念和安装配置
1.Docker三大核心概念:镜像(Image)、容器(Container)、仓库(Repository)。
2.镜像可以将它理解为一个只读的模板。一个镜像可以包含一个基本的操作系统环境。
3.容器是从镜像创建的应用运行实例。可以把容器看做是一个简易版的Linux系统环境(包括root用户权限、进程空间、用户空间和网络空间等)以及运行在其中的应用程序打包而成的盒子。
4.镜像自身是只读的。容器从镜像启动的时候,会在镜像的最上层创建一个可写层。
5.Docker仓库类似于代码仓库,它是Docker集中存放镜像文件的场所。
6.Docker官网:https://www.docker.com/
7.Docker目前只能运行在64位平台上,Docker目前支持的最低Ubuntu版本为12.04 LTS,但实际上从稳定性上考虑,推荐至少使用14.04 LTS版本。Ubuntu发行版中,LTS(Long-Term-Support)意味着更稳定的功能和更长期(目前为5年)的升级支持,生产环境中尽量使用LTS版本。
8.sudo是linux系统管理指令,是允许系统管理员让普通用户执行一些或者全部的root命令的一个工具,如halt,reboot,su等等。
9.Ubuntu环境下安装Docker
9.1系统要求
系统使用Ubuntu14.04 64位版本。
用户可以通过如下命令检查自己的内核版本详细信息:
$ uname -a
Linux Host 3.16.0-43-generic #58~14.04.1-Ubuntu SMP Mon Jun 22 10:21:20 UTC
2015 x86_64 x86_64 x86_64 GNU/Linux
Linux Host 3.16.0-43-generic #58~14.04.1-Ubuntu SMP Mon Jun 22 10:21:20 UTC
2015 x86_64 x86_64 x86_64 GNU/Linux
或者:
$ cat /proc/version
Linux version 3.16.0-43-generic (buildd@brownie) (gcc version 4.8.2 (Ubuntu
4.8.2-19ubuntu1) ) #58~14.04.1-Ubuntu SMP Mon Jun 22 10:21:20 UTC 2015
9.2添加镜像源:
首先需要安装apt-transport-https包支持HTTPS协议的源:
$ sudo apt-get install -y apt-transport-https
添加源的gpg密钥:
$ sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys58118E89F3A912897C070ADBF76221572C52609D
获取当前操作系统的代号:
$ lsb_release -c
一般情况下,12.04(LTS)代号为precise,14.04(LTS)代号为trusty,15.04代号为vivid,15.10代号为wily。这里获取的 代号为trusty。
接下来就可以添加Docker的官方apt软件源了
$ sudo cat <<EOF > /etc/apt/sources.list.d/docker.list
deb https://apt.dockerproject.org/repo ubuntu-trusty main
EOF
添加成功后,更新apt软件包缓存
$ sudo apt-get update
9.3开始安装Docker
安装docker
$ sudo apt-get install docker
安装docker.io
$ sudo apt-get install docker.io
安装docker-registry
$ sudo apt-get install docker-registry
启动docker(安装后我的机器上已经启动了)
$ sudo systemctl start docker
10.Windows环境下安装Docker
docker-for-windows官网地址:https://docs.docker.com/docker-for-windows/install/(300多M大小,下载速度超慢,最好挂个VPN)
安装后:查看docker版本是否安装成功。
docker -v
11.配置Docker服务
为了避免每次使用docker命令都要用特权身份,可以将当前用户加入安装中自动创建的docker用户组:
$ sudo usermod -aG docker USER_NAME
12.Ubuntu上Docker日志信息在/var/log/upstart/docker.log。
13.查看docker版本
$ docker version
14.执行代码中以$开头的,表示为普通用户;以#开头的,表示为特权用户(root)。
第三部分:使用Docker镜像
1.可以使用docker pull命令直接从Docker Hub镜像源上下载镜像。
docker pull NAME[:TAG]。NAME是镜像仓库的名称,TAG是镜像标签(往往用来表示版本信息),不填默认为latest(最新版本)。
如:
将从Docker Hub的Ubuntu仓库下载一个最新的Ubuntu操作系统的镜像。
docker pull ubuntu
2.其中镜像的ID信息十分重要,它唯一标识了镜像。在使用镜像ID的时候,一般可以使用该ID的前若干个字符组成的可区分串来替代完整的ID。
3.使用images命令列出镜像
docker images
4.使用tag命令添加镜像标签
docker tag ubuntu:latest myubuntu:latest
5.使用history命令查看镜像历史
docker history ubuntu:14.04
6.搜索镜像
搜索所有自动创建的评价为1+的带nginx关键字的镜像
docker search --automated -s 3 nginx
7.删除镜像
7.1使用标签删除镜像
docker rmi myubuntu:latest
7.2当有该镜像创建的容器存在时,镜像文件默认是无法被删除的
正确的做法是,先删除依赖该镜像的所有容器,再来删除镜像。
docker rm a21c0840213e
然后再使用id来删除镜像
8.创建镜像
包括:基于已有镜像的容器创建、基于本地模板导入、基于Dockerfile创建。
9.导出和载入镜像
9.1导出镜像
docker save -o ubuntu_14.0.4.tar ubuntu:14.04
9.2导入镜像
docker load --input ubuntu_14.04.tar
10.上传镜像
可以首先添加新的标签user/test:latest
docker tag test:latest user/test:latest
然后上传
docker push user/test:latest
第四部分-操作Docker容器
1.新建容器
docker create -it ubuntu:latest
2.启动容器
docker start af
查看一个运行中的容器
docker ps
3.新建并启动容器
docker run ubuntu /bin/echo 'hello word'
启动一个bash终端,允许用户进行交互
docker run -it ubuntu:14.04 /bin/bash
4.守护态运行(后台运行)
docker run -d ubuntu /bin/sh -c "white true;do echo hello world;sleep 1; done"
获取容器输出信息
docker logs ce5
5.中止容器
docker stop ce5
6.进入容器
docker run -itd ubuntu //后台运行
docker ps //查看docker容器
docker exec -it 容器ID /bin/bash //进入ubuntu终端
7.删除容器
只能删除处于中止或退出状态的容器,如果需要删除运行的容器,可以添加-f参数
docker rm ce55426471a
8.导出容器
docker export -o test_for_run.tar ce5
9.导入容器
docker import test_for_run.tar - test/ubuntu:v1.0
第五部分-访问Docker仓库
1.Docker官方维护了一个公共镜像仓库https://hub.docker.com
2.镜像下载
docker pull centos
3.使用其他镜像市场的镜像(a里云的具体参照网上教程)
4.搭建本地私有仓库(在一台电脑上搭建私有仓库,可以放入许多镜像,供其他人下载。)
第六部分 Docker数据管理
1.数据卷:容器内数据直接映射到本地主机环境。
2.数据卷容器:使用特定容器维护数据卷
(本章介绍了通过数据卷和数据卷容器对容器内数据进行共享、备份和恢复等操作,通过这些机制,即使容器在运行中出现故障,用户也不必担心数据发生丢失,只需要快速地重新创建容器即可。)
(该部分知识点暂时还没有实际涉及到,所以仅仅列出章节标题,供日后查询学习。见下方:)
(6.1数据卷
6.1.1在容器内创建一个数据卷
6.1.2挂载一个主机目录作为数据卷
6.1.3挂载一个本地主机文件作为数据卷
6.2数据卷容器
6.3利用数据卷容器来迁数据
6.3.1备份
6.3.2恢复)
第七部分 端口映射与容器互联(暂无学习需要,仅列出目录)
(7.1端口映射实现访问容器
7.1.1从外部访问容器应用
7.1.2映射所有接口地址
7.1.3映射到指定地址的指定端口
7.1.4映射到指定地址的任意端口
7.1.5查看映射端口配置
7.2互联机制实现便捷互访
7.2.1自定义容器命名
7.2.2容器互联)
第八部分 使用Dockerfile创建镜像
原文:http://blog.maptoface.com/post/27