前言
大家好,欢迎各位工友。 本篇呢我们就来演示一下如何在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 镜像地址介绍
常用国内镜像站点:
- 阿里云镜像:https://{your_id}.mirror.aliyuncs.com
- Docker中国区官方镜像: registry.docker-cn.com
- 网易163镜像: hub-mirror.c.163.com
- daocloud镜像:http://{your_id}.m.daocloud.io
- 中科大镜像: docker.mirrors.ustc.edu.cn
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文件。bashdocker save -o /path/to/your_image.tar your_image_name:tag
-
导入镜像:使用
docker load
命令将tar文件中的镜像导入。cssdocker 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 退出和进入容器
退出容器两种方式:
- 直接退出容器并停止:
exit
- 退出容器但不停止:
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 服务相关的命令:
-
设置Docker开机自启:
bashsystemctl enable docker
-
查看Docker状态:
luasystemctl status docker
-
停止Docker:
arduinosystemctl stop docker
-
启动Docker:
sqlsystemctl start docker
-
重启Docker:
systemctl restart docker
Docker 的其他命令:
-
查看概要信息:
docker info
-
查看帮助文档:
bashdocker --help
-
查看命令文档:
bashdocker 具体命令 --help
五、docker 镜像仓库
5.1 制作自己的Docker镜像
制作镜像的方法主要有两种方式:
- 使用
docker commit
命令; - 使用
Dockerfile
文件。
Dockerfile
后面再讲解,下面先讲解使用 docker commit
命令制作镜像。
-
拉取基础镜像并创建容器:
- 使用
docker pull hello-world
命令拉取Ubuntu镜像。 - 通过
docker run -it --name myWord hello-world
命令创建名为my-myWord
的测试容器。
- 使用
-
保存容器为新镜像:
- 使用
docker commit -m="描述信息" -a="作者" 容器ID 镜像名:[版本标签]
命令,将修改后的容器保存为新的镜像。
- 使用
使用 docker images
命令可以看到保存的新镜像。
5.2 上传镜像到阿里云远程仓库
-
创建命名空间:在阿里云上创建Docker仓库命名空间用于区分不同用户或项目的镜像。
-
创建镜像仓库:在命名空间下,创建新的镜像仓库并填写相关信息。
-
上传镜像:
- 登录阿里云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仓库:
当给镜像打上新的标签时,Docker会复制该镜像并创建一个新的镜像,带有新的标签。这样做是为了让同一个镜像可以被不同的标签引用,方便管理和使用。尽管看起来是两个不同的镜像,但它们的实际内容是相同的,即镜像的ID是一样的。在推送镜像到远程仓库时,实际上是推送的带有新标签的这个新镜像。 上传后,可以在镜像版本中看到:
5.3 创建完成,显示仓库的使用命令:
- 拉取远程镜像 :使用
docker pull registry.cn-hangzhou.aliyuncs.com/命名空间/镜像名:[版本号]
命令从阿里云仓库拉取镜像。 - 运行容器:用拉取的镜像创建并运行新容器,享受预装软件带来的便利。
5.4 搭建私有Docker Registry
前面我们使用的是阿里云镜像仓库,个人版只能自己用,企业版本是收费的。我们可以使用工具搭建我们自己的镜像仓库。类似于使用 GitLab 搭建私有的 Git 仓库,供公司内部使用。
Docker 官方提供了 Docker Registry
私有镜像仓库工具, Docker Registry
也是一个 Docker 镜像,所以使用起来比较简单。具体步骤可以自行百度搜索一下,此处不再赘述。
六、总结
上述我们演示了docker的安装以及常见的命令,后面几篇文章我们接着演示一些常用的组件安装,如mysql,nginx、redis等等。