什么是docker
docker中的容器:
- lxc --> libcontainer --> runC
OCI&OCF
OCI
开放式集装箱倡议
- 由Linux基金会主导于2015年6月创立
- 旨在围绕容器格式和运行时制定一个开放的工业化标准
- 它包含两个规范
○ 运行时规范(运行时规范)
○ 图像规格(图像规格
OCF
开放容器格式
runC是一个CLI工具,用于根据OCI规范生成和运行容器
● 容器作为runC的子进程启动,可以嵌入到各种其他系统中,而无需运行守护进程
● runC构建在libcontainer上,这是一种支持数百万Docker引擎安装的容器技术
docker提供了一个专门容纳容器镜像的站点:https://hub.docker.com
docker架构
docker镜像与镜像仓库
为什么镜像仓库名字是Registry而不是repository?在docker中仓库的名字是以应用的名称取名的。
镜像是静态的,而容器是动态的,容器有其生命周期,镜像与容器的关系类似于程序与进程的关系。镜像类似于文件系统中的程序文件,而容器则类似于将一个程序运行起来的状态,也即进程。所以容器是可以删除的,容器被删除后其镜像是不会被删除的。
docker对象
使用docker时,您正在创建和使用图像、容器、网络、卷、插件和其他对象。
- 图像
-
- 图像是只读模板,其中包含创建docker容器的说明。 通常,一个图像基于另一个图像,并进行了一些额外的自定义。您可以创建自己的图像,也可以仅使用其他人创建并在注册表中发布的图像。
- 容器
conntainer是图像的可运行实例。
您可以使用docker API或CLI创建、运行、停止、移动或删除容器。
您可以将容器连接到一个或多个网络,将存储连接到容器,甚至可以基于其当前状态创建新映像。
安装及使用docker
docker安装
[root@localhost ~]# curl -o docker-ce.repo https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 1919 100 1919 0 0 2141 0 --:--:-- --:--:-- --:--:-- 2141
[root@localhost ~]# sed -i 's@https://download.docker.com@https://mirrors.tuna.tsinghua.edu.cn/docker-ce@g' docker-ce.repo
[root@localhost ~]#
[root@localhost ~]# ls
anaconda-ks.cfg docker-ce.repo
[root@localhost ~]# mv docker-ce.repo /etc/yum.repos.d/
[root@localhost ~]# ls
anaconda-ks.cfg
[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# ls
CentOS-Stream-AppStream.repo CentOS-Stream-Extras.repo CentOS-Stream-PowerTools.repo
CentOS-Stream-BaseOS.repo CentOS-Stream-HighAvailability.repo CentOS-Stream-RealTime.repo
CentOS-Stream-Debuginfo.repo CentOS-Stream-Media.repo docker-ce.repo
[root@localhost yum.repos.d]#
[root@localhost yum.repos.d]# cd
[root@localhost ~]#
[root@localhost ~]# yum -y install docker-ce
//会出现报错加上--allowerasing
(try to add '--allowerasing' to command line to replace conflicting packages or '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)
[root@localhost ~]# yum -y install --allowerasing docker-ce
[root@localhost ~]# systemctl enable --now docker.service
Created symlink /etc/systemd/system/multi-user.target.wants/docker.service → /usr/lib/systemd/system/docker.service.
[root@localhost ~]# systemctl status docker.service
● docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
Active: active (running) since Sat 2022-08-06 21:09:45 CST; 33s ago
Docs: https://docs.docker.com
Main PID: 33205 (dockerd)
Tasks: 9
Memory: 43.0M
CGroup: /system.slice/docker.service
└─33205 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
docker加速
docker-ce的配置文件是/etc/docker/daemon.json,此文件默认不存在,需要我们手动创建并进行配置,而docker的加速就是通过配置此文件来实现的。
docker的加速有多种方式:
- docker cn
- 中国科技大学加速器
- 阿里云加速器(需要通过阿里云开发者平台注册帐号,免费使用个人私有的加速器)
[root@localhost ~]# vim /etc/docker/daemon.json
[root@localhost ~]#
[root@localhost ~]#
[root@localhost ~]# cat /etc/docker/daemon.json
{
"registry-mirrors": ["https://ivknqowi.mirror.aliyuncs.com"]
}
[root@localhost ~]#
[root@lo