Docker最佳实践(二):安装

前言

大家好,欢迎各位工友。 本篇呢我们就来演示一下如何在CentOS7上安装Docker。

一、安装 Docker 前准备

1. 验证系统内核版本支持

在安装 Docker 前,需验证 CentOS 内核是否支持。执行以下命令:

bash 复制代码
uname -r

确保系统内核版本在 3.10 以上。

1.1 安装 Docker 相关依赖

执行以下命令安装 Docker 运行所需的底层依赖关系的包:

kotlin 复制代码
yum install -y yum-utils device-mapper-persistent-data lvm2
  • yum-utils:提供了额外功能,如包清理、插件等。
  • device-mapper-persistent-data:允许 Docker 使用设备映射技术管理数据存储。
  • lvm2:用于管理逻辑卷的工具。

1.2 配置阿里云 Docker Yum 源

添加阿里云 Docker CE 仓库地址到 yum 仓库列表,注意如果有旧的docker版本需要先卸载干净,避免发生未知的错误。

arduino 复制代码
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

二、安装 Docker

2.1 Docker 版本介绍

目前有两个版本:

  • Docker-CE (Community Edition):社区版(开源免费)。
  • Docker-EE (Enterprise Edition):企业版(闭源收费)。

2.2 安装指定版本的 Docker

查看系统可用的 Docker CE 所有版本及其排序:

bash 复制代码
yum list docker-ce --showduplicates | sort -r

安装指定版本的 Docker CE,示例命令:

复制代码
yum install docker-ce-18.06.3.ce

安装指定版本需加上版本信息,如 yum install docker-ce-18.06.3.ce,不指定版本默认安装最新稳定版

2.3 启动 Docker

启动 Docker 并检查状态:

lua 复制代码
systemctl start docker
systemctl status docker

若需开机启动,执行:

bash 复制代码
systemctl enable docker

查看 Docker 版本信息:

复制代码
docker version

三、配置 Docker 镜像加速器

3.1 镜像地址介绍

常用国内镜像站点:

3.2 配置国内镜像地址

以配置阿里云的容器镜像为例:需要先登录到服务控制台:cr.console.aliyun.com/

编辑配置文件 /etc/docker/daemon.json,将专属的镜像地址添加如下,如果目录【/etc/docker】不存在,先创建 mkdir -p /etc/docker

json 复制代码
{
    "registry-mirrors": ["配置的加速地址"]
}

示例配置Docker中国区官方镜像为:

json 复制代码
{
    "registry-mirrors": ["https://registry.docker-cn.com"]
}

重启 Docker 服务:

复制代码
systemctl daemon-reload
systemctl restart docker

3.3 测试拉取镜像

测试拉取一个较大的镜像(如 MySql):

复制代码
docker pull mysql:latest

查看已下载的镜像列表:

复制代码
docker images

四、docker常用命令

4.1 镜像命令

1. 搜索镜像

在Docker中,通过docker search命令可以搜索镜像,以确定其是否存在。例如,搜索 redis 镜像:

sql 复制代码
docker search redis

搜索结果将列出不同账户或组织提交的镜像,包括名称、描述、受欢迎程度(STARTS)、是否为官方镜像(OFFICIAL)、是否自动化构建(AUTOMATED)等信息。

2. 下载镜像

一旦找到目标镜像,可以使用docker pull命令将其拉取到本地。拉取最新版本的镜像:

复制代码
docker pull 镜像名称

或者可以指定版本来拉取:

复制代码
docker pull 镜像名称:版本tag

3. 查看本地镜像

下载完成后,可以使用docker images命令查看本地所有镜像信息。包括名称、版本标签、镜像ID、创建时间和大小等信息。

4. 删除本地镜像

如果某个镜像不再需要,可以使用docker rmi命令删除。例如,删除 hello-world 镜像:

复制代码
docker rmi 镜像ID

如果删除失败,可能是因为存在以该镜像创建的容器,需先删除相关容器或使用强制删除。

5. 查看镜像容器数据卷占用空间

通过docker system df命令可以查看Docker系统资源使用情况,包括镜像、容器和数据卷所占用空间的情况。

6. 导入和导出镜像

  • 导出镜像:使用docker save命令将本地Docker镜像保存为一个tar文件。

    bash 复制代码
    docker save -o /path/to/your_image.tar your_image_name:tag
  • 导入镜像:使用docker load命令将tar文件中的镜像导入。

    css 复制代码
    docker load -i /path/to/your_image.tar

4.2 容器命令

1 启动容器

拉取ubuntu镜像:

复制代码
docker pull ubuntu

启动Ubuntu容器:

arduino 复制代码
docker run -it --name my-ubuntu ubuntu /bin/bash

解释:

  • docker run: 运行一个新容器。
  • -it: 组合选项,-i表示交互模式,-t为伪终端使输入可见。
  • --name my-ubuntu: 给容器指定名称,可省略。
  • ubuntu: 使用的镜像名称。
  • /bin/bash: 启动Bash shell进行交互操作。

2 退出和进入容器

退出容器两种方式:

  1. 直接退出容器并停止:exit
  2. 退出容器但不停止:Ctrl + P + Q

进入正在运行的容器:

bash 复制代码
docker exec -it 容器ID或名称 /bin/bash

3 查看容器

查看所有正在运行的容器:

复制代码
docker ps

4 查看所有容器(包括停止的):

css 复制代码
docker ps -a

5 其他命令:

  • 查看最近创建的容器:docker ps -l
  • 查看容器编号:docker ps -q

6 停止、启动、重启、删除容器

停止容器:

arduino 复制代码
docker stop 容器ID/名称

启动已停止的容器:

sql 复制代码
docker start 容器ID/名称

重启容器:

复制代码
docker restart 容器ID/名称

删除容器:

bash 复制代码
docker rm 容器ID/名称

强制删除容器(包括运行中的):

bash 复制代码
docker rm -f 容器ID/名称

7 守护式容器

以后台方式运行Redis并指定名称:

arduino 复制代码
docker run -d --name myredis redis

8 端口映射

将宿主机端口映射到Redis容器端口:

arduino 复制代码
docker run -d -p 6379:6379 --name myredis redis

多端口映射示例(Ubuntu容器):

css 复制代码
docker run -it --name myUbuntu -p 80:80 -p 8080:8080 Ubuntu /bin/bash

其他内容如重启策略、查看日志、查看信息、文件拷贝、导入导出等操作略过,以上是核心命令和操作。

4.3 其他命令

Docker 服务相关的命令:

  1. 设置Docker开机自启:

    bash 复制代码
    systemctl enable docker
  2. 查看Docker状态:

    lua 复制代码
    systemctl status docker
  3. 停止Docker:

    arduino 复制代码
    systemctl stop docker
  4. 启动Docker:

    sql 复制代码
    systemctl start docker
  5. 重启Docker:

    复制代码
    systemctl restart docker

Docker 的其他命令:

  1. 查看概要信息:

    复制代码
    docker info
  2. 查看帮助文档:

    bash 复制代码
    docker --help
  3. 查看命令文档:

    bash 复制代码
    docker 具体命令 --help

五、docker 镜像仓库

5.1 制作自己的Docker镜像

制作镜像的方法主要有两种方式:

  • 使用 docker commit 命令;
  • 使用 Dockerfile 文件。

Dockerfile 后面再讲解,下面先讲解使用 docker commit 命令制作镜像。

  1. 拉取基础镜像并创建容器

    • 使用docker pull hello-world命令拉取Ubuntu镜像。
    • 通过docker run -it --name myWord hello-world命令创建名为my-myWord的测试容器。
  2. 保存容器为新镜像

    • 使用docker commit -m="描述信息" -a="作者" 容器ID 镜像名:[版本标签]命令,将修改后的容器保存为新的镜像。

使用 docker images 命令可以看到保存的新镜像。

5.2 上传镜像到阿里云远程仓库

  1. 创建命名空间:在阿里云上创建Docker仓库命名空间用于区分不同用户或项目的镜像。

  2. 创建镜像仓库:在命名空间下,创建新的镜像仓库并填写相关信息。

  1. 上传镜像

    • 登录阿里云Docker仓库:docker login --username=用户名 registry.cn-hangzhou.aliyuncs.com
    • 给本地镜像打标签:docker tag 本地镜像ID registry.cn-hangzhou.aliyuncs.com/命名空间/镜像名:[版本号]
    • 推送镜像至远程仓库:docker push registry.cn-hangzhou.aliyuncs.com/命名空间/镜像名:[版本号]

当给镜像打上新的标签时,Docker会复制该镜像并创建一个新的镜像,带有新的标签。这样做是为了让同一个镜像可以被不同的标签引用,方便管理和使用。尽管看起来是两个不同的镜像,但它们的实际内容是相同的,即镜像的ID是一样的。在推送镜像到远程仓库时,实际上是推送的带有新标签的这个新镜像。 上传后,可以在镜像版本中看到:

5.3 创建完成,显示仓库的使用命令:

  1. 拉取远程镜像 :使用docker pull registry.cn-hangzhou.aliyuncs.com/命名空间/镜像名:[版本号]命令从阿里云仓库拉取镜像。
  2. 运行容器:用拉取的镜像创建并运行新容器,享受预装软件带来的便利。

5.4 搭建私有Docker Registry

前面我们使用的是阿里云镜像仓库,个人版只能自己用,企业版本是收费的。我们可以使用工具搭建我们自己的镜像仓库。类似于使用 GitLab 搭建私有的 Git 仓库,供公司内部使用。

Docker 官方提供了 Docker Registry 私有镜像仓库工具, Docker Registry 也是一个 Docker 镜像,所以使用起来比较简单。具体步骤可以自行百度搜索一下,此处不再赘述。

六、总结

上述我们演示了docker的安装以及常见的命令,后面几篇文章我们接着演示一些常用的组件安装,如mysql,nginx、redis等等。

相关推荐
君不见,青丝成雪19 小时前
网关整合验签
大数据·数据结构·docker·微服务·系统架构
oneslide1 天前
Kubernetes环境部署Redis集群
redis·容器·kubernetes
企鹅侠客1 天前
k8s之Headless浅谈
云原生·容器·kubernetes
SHIPKING3931 天前
【Docker安装】Windows10专业版安装教程
运维·docker·容器
编程的一拳超人1 天前
Docker核心概念、常用命令与实战指南
运维·docker·容器
编程的一拳超人1 天前
Docker 核心命令速查表(精细分类版)
运维·docker·容器
风吹一夏v1 天前
Docker 部署 GitLab 和 GitLab Runner 指南
docker·容器·gitlab
曦樂~1 天前
【Docker】网络
docker·容器·php
刘晓倩1 天前
Docker Desktop(Windows/Mac)零外网部署 Dify 极简指南
macos·docker·容器
Lucis__1 天前
从基本用法到迭代器实现—list重难点突破
c++·容器·list