Docker入门

简介:

  Docker是一个软件容器平台。容器可以在共享的操作系统上运行隔离的应用环境。与VM不同,容器不捆绑完整的操作系统,而是共享宿主机的系统内核和资源,只需提供应用软件工作时所需的库和配置。这使得docker可以做到高效,轻便,自包含的系统,并且应用将始终运行相同,无论它在哪里部署。

  开发人员使可以用Docker来消除相互之间代码协作时的“works on my machine”问题。运营商可以使用Docker在隔离的容器中并行运行和管理应用程序,以获得更好的计算密度。企业可以使用Docker构建灵活的软件传输管道,可以更快,更安全地发布新功能。

  Docker底层基于Linux内核 2.4.19 版本开始包含的NameSpace机制,NameSpace是一种内核级别环境隔离机制。Docker底层使用libcontainer进行容器管理,使用pivot_root切换进程的根目录。

  在Docker之前还有一种基于NameSpace的虚拟化工具LXC,LXC通过Cgroups进行资源管理,使用chroot进行根目录的切换。其实早期Docker是在lxc上面封装了一层并加入了aufs(Union File System)功能,在Docker 0.9.0 版本才引入了libcontainer 替代LXC进行底层容器管理。

Docker入门_第1张图片
docker

官网:https://www.docker.com/

容器虚拟化和主机虚拟化对比
Docker入门_第2张图片
docker
docker 的基本工作流程
Docker入门_第3张图片
docker

Docker应用场景:

web应用的自动化打包和发布;
自动化测试和持续集成、发布;
在服务型环境中部署和调整数据库或其他的后台应用;
从头编译或者扩展现有的OpenShift或Cloud Foundry平台来搭建自己的PaaS环境。

安装

实验主机系统平台:CentOS 7.4

docker从2017年开始提供两个版本,收费的商业版本Docker EE和免费的社区版本Docker CE(moby)。

可以访问下面的链接获取docker相关版本的安装说明:

https://store.docker.com/search?offering=community&q=&type=edition

Docker官方的安装脚本

curl -fsSL get.docker.com -o get-docker.sh
bash get-docker.sh

也可以使用Linux系统的包管理器进行安装,本文使用centos 提供的docker版本,在extras仓库中提供了docker 1.12.6的安装包。这个版本较老是在docker商业化之前的版本。

[root@localhost ~]# yum -y install docker       #安装docker,需要确保extras仓库已开启。
[root@localhost ~]# docker -v                   #查看当前的docker版本。
Docker version 1.12.6, build c4618fb/1.12.6
[root@localhost ~]# systemctl start docker      #启动
docker文件

/etc/docker/daemon.json
/etc/sysconfig/docker-network       启动配置文件
/etc/sysconfig/docker-storage       启动配置文件
/etc/sysconfig/docker-storage-setup 启动配置文件
/usr/bin/docker-containerd-current
/usr/bin/docker-containerd-shim-current
/usr/bin/docker-ctr-current
/usr/bin/docker-storage-setup
/usr/bin/dockerd-current                #docker主程序
/usr/lib/systemd/system/docker-cleanup.service
/usr/lib/systemd/system/docker-cleanup.timer
/usr/lib/systemd/system/docker-storage-setup.service
/usr/lib/systemd/system/docker.service
/usr/lib/udev/rules.d/80-docker.rules
/usr/libexec/docker/docker-proxy-current
/usr/libexec/docker/docker-runc-current

下载镜像

docker的官方镜像站:Docker Hub

Docker入门_第4张图片
image.png
Docker入门_第5张图片
image.png
Docker入门_第6张图片
image.png
Docker入门_第7张图片
image.png
在主机上下载镜像,如果下载时不写标签名默认下载latest版本
[root@localhost ~]# docker pull centos
Using default tag: latest
Trying to pull repository docker.io/library/centos ... 
latest: Pulling from docker.io/library/centos
d9aaf4d82f24: Pull complete 
Digest: sha256:eba772bac22c86d7d6e72421b4700c3f894ab6e35475a34014ff8de74c10872e

你可能感兴趣的:(Docker入门)