Docker简介
Docker是一个开源的应用容器引擎,基于Go语言开发,Docker可以让开发者打包她们的应用以及依赖包到一个轻量级、可移植的容器中,之后发布到任何流行的系统。
Docker是世界领先的软件容器平台,Docker官方的标语是”调试你的应用,而不是调试环境“。在进行多人协作开发时,开发者可以使用Docker来清除所谓“我这儿运行是好的”(worksonmymachine)问题,运维人员使用Docker来并行的运行和管理应拿来获得更优估算密度,基于各自独立的容器,不会由于环境诱因引起应用运行错误。
如右图所示,在工作当中,假如我们面对这样多的服务、多个服务器,以及多种环境,我们应当怎样处理呢?若果还继续用传统的方法打包布署,我们会浪费多少时间?
所以在Docker横空出世之前,应用打包仍然是大部份研制团队的痛点,在Docker出现后,它以更高效的借助系统资源、更高效的借助系统资源、一致的运行环境、持续交付和布署、更轻松的迁移、更轻松的维护和拓展,6大优点迅速火了上去。
Docker的三个核心概念
是一个包含有文件系统的面向Docker引擎的只读模板。任何应用程序运行都须要环境,而镜像就是拿来提供这些运行环境的。比如一个Ubuntu镜像就是一个包含Ubuntu操作系统环境的模板。
类似于一个轻量级的沙盒,可以将其看作一个极简的Linux系统环境(包括root权限、进程空间、用户空间和网路空间等),以及运行在其中的应用程序。Docker引擎借助容器来运行、隔离各个应用。
容器是镜像创建的应用实例docker busybox,可以创建、启动、停止、删除容器,各个容器之间是是互相隔离的,互不影响。
注意:镜像本身是只读的,容器从镜像启动时linux设置环境变量,Docker在镜像的下层创建一个可写层,镜像本身不变。
镜像库房,是Docker拿来集中储存镜像文件的地方。
Docker安装
Docker是开源的商业产品,有两种版本:社区版(CommunityEdition,简写为CE)和企业版(EnterpriseEdition,简写为EE)。企业版包含了一些收费服务,通常用不到。我们下边将会演示DockerCE版本的使用技巧。
Docker支持好多操作系统平台,有你们常用的MicrosoftWindows系列操作系统(Docker不支持Windows10家庭版系统),Linux发行版和MacOS系统。
安装
Windows上有两种安装Docker形式:
第一种:访问Docker网站下载DockerDesktop软件的exe文件,下载地址:%20Desktop%20Installer.exe
第二种:使用Chocolatey包管理工具安装Docker。(包管理工具需自行下载安装)
choco install docker-for-windows
1.切换到管理员权限
su root
2.安装必要的一些系统工具
apt-get updateapt-get -y install apt-transport-https ca-certificates curl software-properties-common
3.安装GPG证书
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
4.写入软件源信息
add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
5.更新并安装Docker-CE
apt-get -y updateapt-get -y install docker-ce
1.切换到管理员权限
su root
2.安装必要的一些系统工具
yum install -y yum-utils device-mapper-persistent-data lvm2
3.添加软件源信息
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
4.更新并安装Docker-CE
yum makecache fastyum -y install docker-ce
macOS上有两种安装Docker形式:
第一种:访问Docker网站下载DockerDesktop的dmg安装包,下载地址:
第二种:使用包管理工具方法来安装Docker,使用Homebrew工具安装Docker。(包管理工具需自行下载安装)
brew cask install docker
Docker常用操作
systemctl start docker
systemctl retart docker
bashsystemctlenabledocker¨G2Gbashsystemctlstatusdocker
Docker加速器配置
我们下载Docker镜像的时侯,默认会访问Docker网站,而Docker网站是在美国布署的linux重启命令,距离比较远下载速率非常慢。我们可以通过设置加速器的方法来加速Docker镜像下载的速率。下边将描述一下使用加速器的步骤:
1.我们这儿选择的是阿里云提供的Docker镜像加速器服务,首先访问阿里云的镜像库房(假如没有阿里云帐号则须要注册):
2.选择“镜像加速器“
3.依据个人的系统平台,选择运行Docker的OS,并根据操作文档的要求更改Docker配置文件,之后重启Docker服务即可完成加速器的配置。
Docker常用命令
Docker的常用命令通常分为:镜像管理、容器管理。
查看Docker版本
docker version
镜像管理命令
下边使用busybox软件作为示例,busybox软件是一个集成了十分多最常用的Linux命令和工具的软件集合。
docker images
下载软件镜像
docker pull busybox:latest
备注:latest表示使用busybox软件的最新版本,所以软件默认下载都是latest版本。
docker save busybox > busybox.tar
备注:把busybox镜像导入为busybox.tar文件,可以把busybox.tar文件复制到别的操作系统上使用,减免下载时网路慢的问题。
docker rmi busybox:latest
备注:镜像通常还会依据版本打包docker busybox,假如有下载一个软件的多个版本就须要指定具体版本信息。如busybox:1.26都会删掉busybox软件的1.26版本的镜像,不会删掉latest版本的镜像。
docker load
备注:使用导入命令导入的镜像,可以通过此命令导出到没有下载此软件的操作系统,便捷网路条件差的情况使用。
docker tag busybox:latest busybox:test
备注:busybox:latest原镜像名,busybox:test要改成的镜像名
容器管理命令
docker run -d --name=busybox busybox:latest ping 114.114.114.114
- `run`:run参数代表启动容器- `-d`:以后台daemon的方式运行- `--name`:指定一个容器的名字,此后操作都需要使用这个名字来定位容器。- `busybox:latest`:容器所使用的镜像名字- `ping 114.114.114.114`:启动容器执行的命令
docker ps
docker ps -a
- `CONTAINER ID`:容器启动的id- `IMAGE`:使用哪个镜像启动的容器- `COMMAND`:启动容器的命令 - `CREATED`:创建容器的时间- `STATUS`:容器启动时间- `PORTS`:容器映射到宿主机的端口- `NAMES`:容器启动的名字
docker start busybox
docker restart busybox
docker stop busybox
docker kill busybox
docker rm -f busybox
docker exec -it busybox ls
备注:-it交互终端
docker cp busybox:/etc/hosts hosts
docker logs -f busybox
以上,更多进阶内容后续进一步阐述。