Docker最佳实践(二):安装Docker

前言

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

一、安装 Docker 前准备

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

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

uname -r

在这里插入图片描述

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

1.1 安装 Docker 相关依赖

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

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版本需要先卸载干净,避免发生未知的错误。

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 所有版本及其排序:

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 并检查状态:

systemctl start docker
systemctl status docker

若需开机启动,执行:

systemctl enable docker

查看 Docker 版本信息:

docker version

三、配置 Docker 镜像加速器

3.1 镜像地址介绍

常用国内镜像站点:

3.2 配置国内镜像地址

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

在这里插入图片描述

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

{
    "registry-mirrors": ["配置的加速地址"]
}

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

{
    "registry-mirrors": ["https://registry.docker-cn.com"]
}

目前中国区的镜像不太稳定 可以采用俄国镜像

{
    "registry-mirrors": [
        "https://docker.m.daocloud.io",
        "https://huecker.io",
        "https://dockerhub.timeweb.cloud",
        "https://noohub.ru"
    ]
}

重启 Docker 服务:

systemctl daemon-reload
systemctl restart docker

3.3 测试拉取镜像

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

docker pull mysql:latest

查看已下载的镜像列表:

docker images

四、docker常用命令

4.1 镜像命令

1. 搜索镜像

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

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文件。

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

    docker load -i /path/to/your_image.tar
    

4.2 容器命令

1 启动容器

拉取ubuntu镜像:

docker pull ubuntu

启动Ubuntu容器:

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

进入正在运行的容器:

docker exec -it 容器ID或名称 /bin/bash
3 查看容器

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

docker ps
4 查看所有容器(包括停止的):
docker ps -a
5 其他命令:
  • 查看最近创建的容器:docker ps -l
  • 查看容器编号:docker ps -q
6 停止、启动、重启、删除容器

停止容器:

docker stop 容器ID/名称

启动已停止的容器:

docker start 容器ID/名称

重启容器:

docker restart 容器ID/名称

删除容器:

docker rm 容器ID/名称

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

docker rm -f 容器ID/名称
7 守护式容器

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

docker run -d --name myredis redis
8 端口映射

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

docker run -d -p 6379:6379 --name myredis redis

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

docker run -it --name myUbuntu -p 80:80 -p 8080:8080 Ubuntu /bin/bash

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

4.3 其他命令

Docker 服务相关的命令:
  1. 设置Docker开机自启:

    systemctl enable docker
    
  2. 查看Docker状态:

    systemctl status docker
    
  3. 停止Docker:

    systemctl stop docker
    
  4. 启动Docker:

    systemctl start docker
    
  5. 重启Docker:

    systemctl restart docker
    
Docker 的其他命令:
  1. 查看概要信息:

    docker info
    
  2. 查看帮助文档:

    docker --help
    
  3. 查看命令文档:

    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等等,如有帮助到你,欢迎转发,评论,点赞分享

  • 67
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kimloner

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值