Docker 安装和使用

概述

Docker 是一个开放源代码软件,是一个开放平台,用于开发应用、交付应用、运行应用。

Docker允许用户将基础设施中的应用单独分割出来,形成更小的颗粒(容器),从而提高交付软件的速度。

Docker容器与虚拟机类似,但二者在原理上不同。容器是将操作系统层虚拟化,虚拟机则是虚拟化硬件,因此容器更具有便携性、高效地利用服务器。 容器更多的用于表示 软件的一个标准化单元。由于容器的标准化,因此它可以无视基础设施的差异,部署到任何一个地方。另外,Docker也为容器提供更强的业界的隔离兼容。

架构

架构图中组件:

1、Docker daemon(后台进程)

Docker daemon是一个运行在宿主机(DOCKER_HOST)的后台进程,可通过Docker客户端与之通信

2、Client(Docker客户端)

Docker客户端是Docker的用户界面,可以接受用户命令和配置标识,与Docker daemon通信

3、 Images(Docker镜像)

Docker镜像是一个只读模板,它包含创建Docker容器的说明,和系统安装光盘有点像,同理使用Docker镜像运行其中的程序

4、Container(容器)

容器是镜像的可运行实例

镜像和容器的关系有点类似于面向对象中,类和对象的关系

可通过Docker API或者CLI命令来启停、移动、删除容器

5、Registry

Docker Registry是一个集中存储与分发镜像的服务

可借助Docker Registry来避免镜像的手动拷贝

一个Docker Registry可包含多个Docker仓库 ->

每个仓库可包含多个镜像标签 ->

每个标签对应一个Docker镜像

Docker Registry可分为公有Docker Registry和私有Docker Registry

最常用的Docker Registry莫过于官方的Docker Hub,也是默认的Docker Registry

安装

安装环境为:CentOS7

设置yum源

yum install -y yum-utils device-mapper-persistent-data lvm2

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

yum-config-manager --enable docker-ce-edge

yum-config-manager --enable docker-ce-test

配置Docker 镜像源

mkdir /etc/docker

sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "graph":"/home/docker",
  "registry-mirrors": [
       "https://docker.mirrors.ustc.edu.cn",
        "https://reg-mirror.qiniu.com",
        "https://hub-mirror.c.163.com"]
}
EOF

配置国内加速地址,可以提升下载速度

Docker中国区官方镜像:https://registry.docker-cn.com

网易:http://hub-mirror.c.163.com

ustc :https://docker.mirrors.ustc.edu.cn

中国科技大学:https://docker.mirrors.ustc.edu.cn

阿里:形式类似于 https://xxxxx.mirror.aliyuncs.com

需要登录阿里云账号 -> 容器镜像服务 -> 镜像服务 -> 复制加速器地址

安装启动Docker

yum install docker-ce
# 安装Docker

service docker start
# 启动Docker服务

Portainer管理Docker

介绍

  • Portainer 是一款轻量级的图形化管理工具,通过它我们可以轻松管理不同的 docker 环境。Portainer 部署和使用都非常的简单,它由一个可以运行在任何 docker 引擎上的容器组成。
  • Portainer 功能十分全面,提供状态显示面板、应用模板快速部署、容器镜像网络数据卷的基本操作(包括上传下载镜像,创建容器等操作)、事件日志显示、容器控制台操作、Swarm 集群和服务等集中管理和操作、登录用户管理和控制等功能。基本能满足中小型单位对容器管理的全部需求。

安装启动

docker pull portainer/portainer
#拉取镜像

docker volume create portainer_data
#创建Volume,保持数据持久化

docker run -d -p 9000:9000 --name portainer --restart always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer
#启动Portainer

docker命令说明:

docker run:新建并启动容器

-d:静默启动

-p 9000:9000:指定暴露端口为9000

--name portainer:指定容器名称,可自定义

--restart always:指定容器退出后的重启策略为始终重启

-v /var/run/docker.sock:/var/run/docker.sock:获取Docker套接字,

-v portainer_data:/data:数据卷是用来持久化数据的,生命周期独立于容器,Docker 不会在容器被删除后自动删除数据卷

portainer/portainer:指定镜像

关于docker.sock

简单地说,/var/run/docker.sock文件是Docker守护进程(Docker daemon)默认监听的Unix域套接字(Unix domain socket),容器中的进程可以通过它与Docker守护进程进行通信。

例如:Portainer通过绑定的/var/run/docker.sock文件与Docker守护进程通信,执行各种管理操作。

使用Portainer可以轻松创建容器。实际上,HTTP请求是通过docker.sock发送给Docker守护进程的。可以通过curl创建容器来说明这一点。使用HTTP接口运行容器需要两个步骤,先创建容器,然后启动容器。

注意: 绑定Docker套接字之后,容器的权限会很高,可以控制Docker守护进程。因此,这一点必须谨慎使用,只能用于足够信任的容器。

使用

首次使用需要创建密码,进入主页面后,如下图:

在页面上就可以直接进行容器的创建、启动、停止、删除等操作

同时,也可以对Volume、NetWorks进行新增、删除操作

参考

关于/var/run/docker.sock

Docker从入门到实践

你可能感兴趣的:(Docker 安装和使用)