一、前言
记录时间 [2024-4-6]
前置文章:Docker学习笔记(一):入门篇,Docker概述、基本组成等,对Docker有一个初步的认识
在上文中,笔者进行了Docker
概述,介绍其历史、优势、作用,以及基本组成。通过此,相信大家对Docker
有了一个初步的认识。接下来就进入Docker
的安装、环境配置,和简单使用了。
文章为零基础学习Docker
做了一些准备:
Docker
学习视频(狂神说系列)Docker
官方文档(官方文档超级详细)Docker
远程仓库(相当于镜像商店)Docker
参考笔记(一篇实用型Docker
笔记)Linux
云服务器/虚拟机(文章中使用了阿里云服务器,创建虚拟机参考这个)FinalShell
远程连接工具(下载地址,选择Windows
版本,安装就默认步骤,如果提示安装WinPcap
那就装一下咯)
二、Docker 安装前准备
1. 安装 Centos7 系统
将服务器/虚拟机的操作系统设置成Centos7
,注意版本选择7
,查文档可知CentOS 7
是Docker Engine
安装所需要的。
版本选择完毕后,设置远程连接,选择root
权限连接,即Workbench
密码登录(初次使用要设置下密码)。这一步主要是为后面连接FinalShell
做准备。
虚拟机可以连接FinalShell
,也可以在VMware
软件中直接运行操作。
2. 连接 FinalShell
启动FinalShell
,点击新标签页左侧的文件夹标识,再选择白色文件夹,新建SSH
连接。
在新建SSH
连接界面,输入主机IP
,即服务器/虚拟机的IP
地址,服务器IP
地址选公网,虚拟机启动后输入如下命令查看。
ip addr show
然后输入用户名和密码,点击确定。然后快速连接即可。
3. 系统环境查看
查看系统内核:
uname -r
结果如下:
# 系统内核是 3.10 以上
[root@hostname ~]# uname -r
3.10.0-957.21.3.el7.x86_64
查看系统版本:
cat /etc/os-release
结果如下:
# 系统版本
[root@hostname ~]# cat /etc/os-release
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"
CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"
三、Docker 安装和配置
1. 卸载旧版本
如果之前安装过旧版本Docker
的话,先进行卸载:
注意:命令中的斜杠\
是在一条命令没写完但是要进行换行情况下使用,如果命令写在同一行就不需要斜杠。
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
2. 通过仓库安装
Install using the rpm repository.
下载需要的安装包
yum install -y yum-utils
设置镜像仓库
官方仓库如下:(不推荐,下载东西超级慢)
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
更新 yum 索引
yum makecache fast
安装 Docker
最新版:
# docker-ce 社区版 ee 企业版
yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
如果想要安装其他版本,就附带版本号VERSION_STRING
:
yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io docker-buildx-plugin docker-compose-plugin
3. 启动 Docker
systemctl start docker
4. 查看 Docker 版本
docker version
使用docker version
查看是否安装成功:
[root@hostname ~]# docker version
Client: Docker Engine - Community
Version: 26.0.0
API version: 1.45
Go version: go1.21.8
...
Server: Docker Engine - Community
Engine:
Version: 26.0.0
API version: 1.45 (minimum version 1.24)
Go version: go1.21.8
...
5. 卸载 Docker(了解)
# 1. 卸载依赖
yum remove docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras
# 2. 删除资源
rm -rf /var/lib/docker
rm -rf /var/lib/containerd
# /var/lib/docker 为 docker 的默认工作路径
6. 阿里云镜像加速(非必要)
这一步推荐安装1.10.0
以上版本的Docker
客户端使用。可以更快地下载镜像。
登录阿里云,选择容器镜像服务,找到镜像加速器,根据文档配置即可。
# registry-mirrors 中写入加速器地址,每个人的都不一样
# 1. 打开配置文件目录
sudo mkdir -p /etc/docker
# 2. 编辑配置文件
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://......"]
}
EOF
# 3. 重启服务
sudo systemctl daemon-reload
# 4. 重启 Docker
sudo systemctl restart docker
四、简单测试 hello-world
1. 具体操作
测试命令:
docker run hello-world
我们来观察一下hello-world
的实现过程:
[root@hostname ~]# docker run hello-world
# 1. 本地没找到 hello-world 镜像
Unable to find image 'hello-world:latest' locally
# 2. 远程仓库拉取 hello-world 镜像
latest: Pulling from library/hello-world
# 3. 签名信息:拉取完成
2db29710123e: Pull complete
Digest: sha256:2498fce14358aa50ead0cc6c19990fc6ff866ce72aeb5546e1d59caac3d0d60f
Status: Downloaded newer image for hello-world:latest
# 4. 运行 hello-world 成功
Hello from Docker!
This message shows that your installation appears to be working correctly.
2. 查看镜像
查看hello-world
镜像:
docker images
结果如下:
[root@hostname ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest feb5d9fea6a5 2 years ago 13.3kB
五、镜像运行流程
六、Docker 底层原理
Docker
如何工作?
- 如图,
Docker
是一个Client-Server
结构的系统,Docker
的守护进程运行在主机上,客户端通过Socket
访问。 Docker-Server
接收到Docker-Client
的指令,就会执行这个命令。
七、总结
本文讲述了Linux
中Docker
的安装、环境配置,和简单使用。还介绍了镜像运行流程和Docker
底层原理,讲述了Centos7
系统镜像的设置,讲述了FinalShell
远程连接云服务器/虚拟机的方式。接下来是关于Docker
使用的基本命令。
一些参考资料
狂神说系列Docker
教程:https://www.bilibili.com/video/BV1og4y1q7M4/
Docker
参考笔记:https://blog.csdn.net/qq_58141314/article/details/131020932
Docker
官网:https://www.docker.com/
Docker
官方文档:https://docs.docker.com/engine/install/centos/
Docker
远程仓库:https://hub.docker.com/
FinalShell
下载:http://www.hostbuf.com/t/988.html
阿里云网址:https://www.aliyun.com/