docker容器相关操作

back

Docker


Docker是时下热门的容器技术,Docker是os层虚拟化架构(虚拟出来的操作系统和宿主机操作系统共享一个内核)的一种体现产品。

容器化技术(我们可以把tomcat,redis,nginx……安装docker容器中),可以方便对软件的环境(开发环境/测试环境/生产环境……)进行搬运,可以极大的减少部署成本。且各个容器之间是相互隔离的,减少软件之间的影响。

Docker 架构

Docker 包括三个基本概念:

镜像(Image):Docker将应用程序及其所需的依赖、函数库、环境、配置等文件打包在一起,称为镜像。为一个只读模板。

容器(Container):镜像中的应用程序运行后形成的进程就是容器,只是Docker会给容器做隔离,对外不可见。容器可以被创建、启动、停止、删除、暂停等。

仓库(Repository):仓库用来保存镜像。

容器与镜像的关系类似于面向对象编程中的对象与类。

在安装好并启动了Docker之后,我们可以使用在命令行中使用Docker命令操作Docker,比如我们使用如下命令打印Docker的版本信息。

docker verion
其结果如下:

从上面的图中,我们看到打出了两个部分的信息:Client和Server。

这是因为Docker跟大部分服务端软件一样(如MySQL),都是使用C/S的架构模型,也就是通过客户端调用服务器,只是我们现在刚好服务端和客户端都在同一台机器上而已。

因此,我们可以使用下面的图来表示Docker的架构,DOCKER_HOST是Docker Server,而Clinet便是我们在命令中使用Docker命令。

Docker Engine

Docker Server为客户端提供了容器、镜像、数据卷、网络管理等功能,其实,这些功能都是由Docker Engine来实现的。

1.dockerd:服务器守护进程。

2.Client docker Cli:命令行接口

3.REST API:除了cli命令行接口,也可以通过REST API调用Docker

Docker安装

1.查看是否已安装docker,如安装,卸载旧版本极其相关依赖

yum list installed | grep docker
yum remove docker \
     docker-client \
     docker-client-latest \
     docker-common \
     docker-latest \
     docker-latest-logrotate \
     docker-logrotate \
     docker-engine \
     docker-ce

2.安装docker

yum install -y yum-utils
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

3.启动及查看

systemctl start/status/stop docker
docker version

注册中心Registery

类似于maven仓库,集中存放镜像文件的场所,一个Registry中会有多个Repository

仓库Repository是对于其中的镜像进行分类管理,一个Repository中会有多个不同tag的Image

Registry分为公有(public)和私有(private)两种形式

最大的公有Registry是Docker Hub,存放了数量庞大的镜像供用户下载使用https://hub.docker.com

国内的公开Registry包括USTC、网易云、DaoCloud、AliCloud等

配置国内镜像(USTC)

在宿主机器编辑文件: vi /etc/docker/daemon.json
在该配置文件中加入(没有该文件的话,就建一个:
{
    "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn","https://hub-mirror.c.163.com","https://registry.docker-cn.com"]
}
systemctl daemon-reload
systemctl restart docker