欢迎来到这篇关于在 CentOS 7 上安装 Docker 的教程。在本篇博客中,我们将介绍在 CentOS 7 操作系统上如何安装 Docker。Docker 是一个开源的应用容器引擎,允许开发者打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上。下面让我们开始吧。

Docker简介

Docker 是一个开源的容器化平台,它可以帮助用户将应用程序和服务打包到 Docker 容器中,并提供一套简单而强大的命令行工具来管理容器和镜像。与传统虚拟机相比,Docker 容器更加轻量级、便捷、高效,并且可以实现跨平台、跨云、快速部署和扩展等优点。

通过 Docker,用户可以创建和运行多个容器,每个容器相互隔离、独立运行,就像是一个轻量级的虚拟机。用户可以使用 Docker 提供的命令行工具来管理容器和镜像,如构建、运行、停止、删除、导入和导出等操作,还可以通过 Docker Hub 等镜像仓库下载和分享 Docker 镜像。

Docker 的应用场景非常广泛,可以用于开发环境搭建、CI/CD 自动化部署、微服务架构、容器云平台、容器编排等方面。在企业级应用中,Docker 已经成为重要的容器化技术之一,并被广泛应用于生产环境。

总之,Docker 是一个非常流行的容器化平台,提供了一种新的方式来构建、发布和运行应用程序和服务,其轻量级、可移植、易于管理和扩展的优点,使其成为越来越多开发者和企业的首选技术。

一个完整的Docker有以下几个部分组成:

  • DockerClient客户端
  • Docker Daemon守护进程
  • Docker Image镜像
  • DockerContainer容器
    CentOS 7 安装 Docker 的详细步骤-LMLPHP

1.更新

yum update -y

2.安装必要的软件包

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

3.添加Docker仓库

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

4.安装

yum install docker-ce

5.安装后的一些常规设置及常用的命令

5.1 启动 Docker

systemctl start docker

5.2 Docker 在系统启动时自动运行

systemctl enable docker

5.3 运行一个 Hello World 镜像

[root@10 ~]# docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
719385e32844: Pull complete
Digest: sha256:4f53e2564790c8e7856ec08e384732aa38dc43c52f02952483e3f003afbf23db
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/

5.4 查看docker运行状态

[root@10 ~]# systemctl status docker
● docker.service - Docker Application Container Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset:                                                            disabled)
   Active: active (running) since 三 2023-09-27 08:47:58 CST; 12min ago
     Docs: https://docs.docker.com
 Main PID: 1536 (dockerd)
    Tasks: 34
   Memory: 146.8M
   CGroup: /system.slice/docker.service
           └─1536 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/contai...

927 08:47:58 10.0.1.37 dockerd[1536]: time="2023-09-27T08:47:58.296317622+..."
927 08:47:58 10.0.1.37 dockerd[1536]: time="2023-09-27T08:47:58.457659247+..."
927 08:47:58 10.0.1.37 dockerd[1536]: time="2023-09-27T08:47:58.570299351+..."
927 08:47:58 10.0.1.37 dockerd[1536]: time="2023-09-27T08:47:58.686028344+..."
927 08:47:58 10.0.1.37 dockerd[1536]: time="2023-09-27T08:47:58.868276595+...6
9月 27 08:47:58 10.0.1.37 dockerd[1536]: time="2023-09-27T08:47:58.868391631+..."
9月 27 08:47:58 10.0.1.37 dockerd[1536]: time="2023-09-27T08:47:58.911613133+..."
9月 27 08:47:58 10.0.1.37 systemd[1]: Started Docker Application Container E...e.
9月 27 08:59:16 10.0.1.37 dockerd[1536]: time="2023-09-27T08:59:16.121080761+..."
9月 27 08:59:22 10.0.1.37 dockerd[1536]: time="2023-09-27T08:59:22.111055567+..."
Hint: Some lines were ellipsized, use -l to show in full.

5.5 docker ps

该命令是用来查询当前容器的

#查询全部状态的容器
docker ps -a 
CONTAINER ID   IMAGE          COMMAND                  CREATED        STATUS       PORTS   NAMES        SIZE                                                                                      SIZE
e90b8831a4b8   nginx          "/bin/bash -c 'mkdir "   11 weeks ago   Up 4 hours           my_nginx     35.58 kB (virtual 109.2 MB)
00c6131c5e30   telegraf:1.5   "/entrypoint.sh"         11 weeks ago   Up 11 weeks          my_telegraf  0 B (virtual 209.5 MB)

5.6 查看docker版本

[root@10 ~]# docker version
Client: Docker Engine - Community
 Version:           24.0.6
 API version:       1.43
 Go version:        go1.20.7
 Git commit:        ed223bc
 Built:             Mon Sep  4 12:35:25 2023
 OS/Arch:           linux/amd64
 Context:           default

Server: Docker Engine - Community
 Engine:
  Version:          24.0.6
  API version:      1.43 (minimum version 1.12)
  Go version:       go1.20.7
  Git commit:       1a79695
  Built:            Mon Sep  4 12:34:28 2023
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.6.22
  GitCommit:        8165feabfdfe38c65b599c4993d227328c231fca
 runc:
  Version:          1.1.8
  GitCommit:        v1.1.8-0-g82f18fe
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

6.安装种常见的错误

错误1:yum-config-manager:找不到命令

[root@10 ~]# yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum-config-manager:找不到命令

解决:

yum -y install yum-utils

7.Docker的使用场景

  1. 应用程序的开发和测试:Docker可以为应用程序提供稳定的运行环境,使开发人员可以轻松在不同的系统上测试和运行软件,而无需考虑与操作系统或其他应用程序的冲突。

  2. 持续集成和持续交付:Docker可以在不同阶段的开发周期中提供完全相同的环境,并且可以在部署到生产服务器之前快速迭代和测试应用程序。

  3. 服务器的管理和部署:Docker可以帮助管理员自动化应用程序的部署和操作,也可以轻松地横向扩展和缩小服务器,以便根据需要扩展或减少服务。

  4. 云计算和容器服务:Docker可以作为云计算平台的基础架构,例如Kubernetes、Mesos或Docker Swarm,提供高度扩展、可靠性和安全性。

  5. 多租户应用程序的隔离:Docker可以为多租户应用程序提供隔离的容器,从而不同租户之间的应用程序和数据可以彼此隔离,提高了安全性。

09-27 09:54