1.查看linux内核版本和系统版本
docker的安装和运行对linux版本和系统是有要求的。
查看linux内核版本
uname -a
root@server88:~# uname -a
Linux server88 6.1.0-18-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.76-1 (2024-02-01) x86_64 GNU/Linux
或 cat /proc/version
root@server88:~# cat /proc/version
Linux version 6.1.0-18-amd64 (debian-kernel@lists.debian.org) (gcc-12 (Debian 12.2.0-14) 12.2.0, GNU ld (GNU Binutils for Debian) 2.40) #1 SMP PREEMPT_DYNAMIC Debian 6.1.76-1 (2024-02-01)
查看linux系统版本
lsb_release -a
,即可列出所有版本信息
root@server88:~# lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux 12 (bookworm)
Release: 12
Codename: bookworm
这个命令适用于所有的Linux发行版,包括Redhat、SuSE、Debian…等发行版。
2.找到对应的文档进行安装、升级、卸载
https://docs.docker.com/engine/install/debian/
文档刚开始就说了“先决条件”和“系统要求”,我们需要注意一下。
开发环境可以使用“Docker Desktop”捆绑模式进行快速安装运行,它是一个应用程序。生产环境还是只安装“Docker Engine”吧。
使用 apt 存储库安装
- 设置 Docker 的apt存储库。
# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
# sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
sudo curl -fsSL https://mirrors.nju.edu.cn/docker-ce/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://mirrors.nju.edu.cn/docker-ce/linux/debian \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
(download.docker.com已经连不上了,换了个源 )
- 安装 Docker 软件包。
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
- 通过运行镜像验证安装是否成功
hello-world
:
sudo docker run hello-world
此命令下载测试映像并在容器中运行它。当容器运行时,它会打印一条确认消息并退出。
到这里就已经成功安装并启动了 Docker Engine。
升级、卸载
参照当前页面后续内容。
3. 修改数据目录
当存储目录不足时,我们可以扩容,或者迁移到大目录。
df -h
查看磁盘信息
默认情况下 Docker 会将容器的数据存储在宿主机的 /var/lib/docker 目录下。可以通过修改 Docker 的 dataroot 配置来实现这一目标。我们需要修改 Docker 的配置文件 daemon.json。该文件位于 /etc/docker/ 目录下,如果 daemon.json 文件不存在,我们可以手动创建它。
{
"data-root": "/data/docker"
}
修改完后重新启动docker,执行命令 systemctl restart docker
检验是否修改成功,执行命令 docker info | grep "Docker Root Dir"
,如果输出结果为 /data/docker,那么表示我们已经成功修改了 dataroot。
4. 更换镜像源
创建或修改 /etc/docker/daemon.json
{
"registry-mirrors": ["https://mirrors.nju.edu.cn"]
}
5. docker 常用命令
Docker 常用命令
Docker 是一个流行的容器化平台,用于开发、部署和运行应用程序。以下是一些 Docker 的常用命令及其用途:
Docker 基础操作
- 启动/停止/重启 Docker 服务:
systemctl start docker
:启动 Docker 服务。systemctl stop docker
:停止 Docker 服务。systemctl restart docker
:重启 Docker 服务。systemctl enable docker
:设置 Docker 随系统启动。
镜像管理
- 搜索镜像:
docker search [选项] 镜像名
:在 Docker Hub 中搜索镜像。
- 拉取镜像:
docker pull [选项] 镜像名[:标签]
:从仓库下载镜像。
- 查看本地镜像:
docker images
或docker image ls
:列出所有本地镜像。
- 删除镜像:
docker rmi [选项] 镜像ID或镜像名
:删除指定镜像。
- 构建镜像:
docker build [选项] -t 镜像名:标签 .
:根据 Dockerfile 在当前目录下构建镜像。
容器生命周期管理
- 创建并启动容器:
docker run [选项] 镜像名[:标签] [命令]
:创建一个新的容器并运行一个命令。
- 列出容器:
docker ps
:显示当前正在运行的容器。docker ps -a
:显示所有容器(包括已停止的)。
- 启动/停止/重启容器:
docker start 容器ID或容器名
:启动已停止的容器。docker stop 容器ID或容器名
:停止正在运行的容器。docker restart 容器ID或容器名
:重启容器。
- 进入容器:
docker exec -it 容器ID或容器名 命令
:在运行中的容器内部执行命令。
- 删除容器:
docker rm 容器ID或容器名
:删除已停止的容器。docker rm $(docker ps -a -q)
:删除所有停止的容器。
- 容器状态与日志:
docker inspect 容器ID
:获取容器详细信息。docker logs [-f] 容器ID
:查看容器的日志输出。docker top 容器ID
:查看容器内运行的进程信息。
其他常用命令
- 查看版本和信息:
docker version
:查看 Docker 版本信息。docker info
:查看 Docker 系统信息。docker stats
:宿主机上所有正在运行的容器的资源使用情况。
- 端口映射与网络配置:
docker run -p 主机端口:容器端口 ...
:创建容器时指定端口映射。
- 持久化数据卷管理:
docker volume create 卷名
:创建新的数据卷。-v 卷名:/容器内路径
:将数据卷挂载到容器内指定路径。
- 容器暂停与恢复:
docker pause 容器ID
:暂停容器。docker unpause 容器ID
:恢复被暂停的容器。
- 保存和加载容器快照:
docker save -o 文件名.tar 镜像名
:将镜像保存为 tar 文件。docker load -i 文件名.tar
:从 tar 文件中加载镜像。
以上仅列出了部分常用命令,Docker 功能丰富,实际使用中还有更多高级选项和命令可以探索。