docker是管理容器的一种程序
OCI&OCF OCIOpen Container-initiative 开发的容器协议
- 包含两个规范
- 运行时规范
- 镜像规格
Open Container Format 开发的容器格式
runC 是一个 CLI 工具,用于根据 OCI 规范生成和运行容器
- 容器作为 runC 的子进程启动,可以嵌入到各种其他系统中,而无需运行守护程序
- runC 建立在 libcontainer 之上,libcontainer 是支持数百万个 Docker 引擎安装的相同容器技术
Registry码头,镜像仓库。在docker中仓库的名字是以应用的名称取名的。
镜像是静态的,而容器是动态的,容器有其生命周期,镜像与容器的关系类似于程序与进程的关系。镜像类似于文件系统中的程序文件,而容器则类似于将一个程序运行起来的状态,也即进程。所以容器是可以删除的,容器被删除后其镜像是不会被删除的。
docker 对象使用 Docker 时,您正在创建和使用映像、容器、网络、卷、插件和其他对象。
- 镜像
- 映像是一个只读模板,其中包含有关创建 docker 容器的说明。
- 通常,一个镜像基于另一个镜像,并具有一些额外的自定义。
- 您可以创建自己的镜像,也可以只使用其他人创建并在注册表中发布的镜像。
- 容器
- 容器是运行中的镜像。
- 您可以使用 Docker API 或 CLI 创建、运行、停止、移动或删除容器。
- 可以将容器连接到一个或多个网络,将存储附加到该网络,甚至可以根据其当前状态创建新映像。
阿里云开源镜像站资源目录 (aliyun.com)
[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# ls
CentOS-Base.repo epel-testing-modular.repo
epel-modular.repo epel-testing.repo
epel.repo redhat.repo
[root@localhost yum.repos.d]# wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
[root@localhost ~]# dnf list all|grep docker
[root@localhost ~]# dnf -y install docker-ce
[root@localhost ~]# systemctl enable --now docker
Created symlink /etc/systemd/system/multi-user.target.wants/docker.service → /usr/lib/systemd/system/docker.service.
[root@localhost ~]# systemctl status docker
● docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; en>
Active: active (running) since Sun 2022-04-24 22:07:43 CST>
配置加速器:
[root@localhost ~]# cd /etc/docker/
[root@localhost docker]# ls
key.json
[root@localhost docker]# vi daemon.json
{
"registry-mirrors": ["https://48d04e7v.mirror.aliyuncs.com"]
}
~
[root@localhost docker]# systemctl daemon-reload
[root@localhost docker]# systemctl restart docker
[root@localhost docker]# docker pull httpd
[root@localhost docker]# docker pull httpd:2.4.53
[root@localhost ~]# docker create --name web -p 80:80 httpd
50501123a9f3c040108d1d7440948825d5b0a0904b6f133d7ac85fe224da6ee0
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
[root@localhost ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
50501123a9f3 httpd "httpd-foreground" 26 seconds ago Created web
[root@localhost ~]# docker start web
web
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
50501123a9f3 httpd "httpd-foreground" About a minute ago Up 33 seconds 0.0.0.0:80->80/tcp, :::80->80/tcp web
[root@localhost ~]# systemctl disable --now firewalld
Removed /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@localhost ~]# vi /etc/selinux/config
......
SELINUX=disabled
......
[root@localhost ~]# setenforce 0
httpd部署完毕



