Docker入门:
Docker是容器技术的代表。容器技术是将程序打包隔离的技术,不是最新的技术。但真正让容器技术变成火爆技术,也是是因为docker。
预备知识:
Linux命令行,
Bash
对Docker的认识:
Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。开发者在笔记本上编译测试通过的容器可以批量地在生产环境中部署,包括VMs(虚拟机)、bare metal、OpenStack 集群和其他的基础应用平台。
Docker通常用于如下场景:
• web应用的自动化打包和发布;
• 自动化测试和持续集成、发布;
• 在服务型环境中部署和调整数据库或其他的后台应用;
• 从头编译或者扩展现有的OpenShift或Cloud Foundry平台来搭建自己的PaaS环境。
可以粗糙的理解为轻量级虚拟机。但是docker不是虚拟机。
hypervisor虚拟硬件,在上方创建完全独立的GuestOS。
比如我们拿比较常用的虚拟机和Docker做对比,如下图
Docker在Linux下的安装:
Docker系统有两个程序:docker服务端和docker客户端。其中docker服务端是一个服务进程,管理着所有的容器。docker客户端则扮演着docker服务端的远程控制器,可以用来控制docker的服务端进程。大部分情况下,docker服务端和客户端运行在一台机器上。
CentOS 7 (使用yum进行安装)
# step 1: 安装必要的一些系统工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# Step 2: 添加软件源信息
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# Step 3: 更新并安装 Docker-CE
sudo yum makecache fast
sudo yum -y install docker-ce
# 注意:
# 官方软件源默认启用了最新的软件,您可以通过编辑软件源的方式获取各个版本的软件包。例如官方并没有将测试版本的软件源置为可用,你可以通过以下方式开启。同理可以开启各种测试版本等。
# vim /etc/yum.repos.d/docker-ee.repo
# 将 [docker-ce-test] 下方的 enabled=0 修改为 enabled=1
#
# 安装指定版本的Docker-CE:
# Step 1: 查找Docker-CE的版本:
# yum list docker-ce.x86_64 --showduplicates | sort -r
# Loading mirror speeds from cached hostfile
# Loaded plugins: branch, fastestmirror, langpacks
# docker-ce.x86_64 17.03.1.ce-1.el7.centos docker-ce-stable
# docker-ce.x86_64 17.03.1.ce-1.el7.centos @docker-ce-stable
# docker-ce.x86_64 17.03.0.ce-1.el7.centos docker-ce-stable
# Available Packages
# Step2 : 安装指定版本的Docker-CE: (VERSION 例如上面的 17.03.0.ce.1-1.el7.centos)
# sudo yum -y install docker-ce-[VERSION]
安装校验
root@iZbp12adskpuoxodbkqzjfZ:$ docker
Clien
Version:
.
-
API
:
Go
: go1.
Git commi
a232c8
Buil
Tue Feb
:
:
OS/Arch: linux/amd64
Server:
Version:
.
-
API
:
(minimum
)
Go
: go1.
Git commi
a232c8
Buil
Tue Feb
:
:
OS/Arch: linux/amd64
Experimenta
false
开启docker服务:
sudo systemctlstart docker
附官网完整安装流程链接(比较复杂,供参考):
https://docs.docker.com/engine/installation/linux/docker-ce/centos/#prerequisites
卸载Docker CE
1. 卸载Docker包:
yum remove docker-ce
2. 主机上的图像,容器,卷或自定义配置文件不会自动删除。删除所有图像,容器和卷:
rm
/var/lib/docker
您必须手动删除任何已编辑的配置文件。
docker 架构:
docker在容器内所做的改动都是暂时的。
DOCKER_HOST就是我们处于的那个虚拟机。Registry是互联网的一个SaaS服务。
我们相当于客户端client,键入docker命令。守护进程daemon接收到客户端的命令并进行处理。比如一个pull镜像的命令,daemon会去registry官方镜像仓库拉取下来一个镜像image,image在Docker中可以理解为镜像的概念,比如用“docker images”命令可以查看当前所有的镜像列表,Container是Image在运行时的一个状态。
如果拿虚拟机作一个比喻的话,Image就是关机状态下的磁盘文件,Container就是虚拟机运行时的磁盘文件,包括内存数据。
镜像构建
配置国内加速代理仓库:
https://cr.console.aliyun.com/#/accelerator
复制页面上提供的修改命令,在本地路径配置文件即可。
运行第一个容器:
环境就绪,马上运行第一个容器,执行命令:
docker run -d -p 80:80 httpd
其过程可以简单的描述为:
1. 从 Docker Hub下载 httpd 镜像。镜像中已经安装好了 Apache HTTP Server。
2. 启动 httpd容器,并将容器的 80 端口映射到 host 的 80 端口。
下面我们可以通过浏览器验证容器是否正常工作。在浏览器中输入 http://[your ubuntu hostIP]
可以访问容器的 http 服务了,第一个容器运行成功!我们轻轻松松就拥有了一个 WEB 服务器。随着学习的深入,会看到容器技术带给我们更多的价值。
Docker命令:
docker images 列出image
docker run -p 8080:80 -d daocloud.io/nginx 映射端口
docker ps 查看当前运行容器
docker ps -a 查看所有容器
docker stop XXX(CONTAINER ID) 停止
docker rmi XXX(CONTAINER ID) 移除
docker rm XXX(CONTAINER ID)