docker 安装
原创2025/7/28大约 4 分钟
之前在收破烂收回来的电脑上安装了一次docker,但是现在外出临时连不上宿舍内网,只能通过虚拟机重新装一次docker来复现docker逃逸,正好可以给新手看看
包含docker下载+换源
截止2025.3.16,下列镜像源均可用。(基于能否成功拉取[hello-world])
| DockerHub可用镜像源汇总 |
|---|
| http://docker.m.daocloud.io |
| http://docker.imgdb.de |
| docker-0.unsee.tech |
| http://docker.hlmirror.com |
| docker.1ms.run |
| func.ink |
| http://lispy.org |
| http://docker.xiaogenban1993.com |
sudo apt update #老规矩先更新
sudo apt install iputils-ping # ping工具
sudo apt install net-tools # 软件包 其中包括ifconfig
sudo apt install nano # nano编辑器
sudo apt install openssh-client # ssh 连接其他服务器ssh
sudo apt install openssh-server # 其他服务器连接本机ssh直接复制版:
sudo apt update && sudo apt install -y iputils-ping net-tools nano openssh-client openssh-server官方一键安装脚本:
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun国内一键安装脚本:
curl -sSL https://get.daocloud.io/docker | sh如果你安装过docker,并且要删了重装的话:
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine \
docker-ce
修改/etc/docker/daemon.json
nano /etc/docker/daemon.json{
"registry-mirrors": [
"https://docker.m.daocloud.io"
],
"dns": ["8.8.8.8", "114.114.114.114"]
}
#或者是
{
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://docker.1panel.live",
"https://hub.rat.dev"
]
}修改完配置文件之后可以重启docker
sudo service docker restart
常用命令
以下是常用的 Docker 命令整理:
镜像管理
docker images:查看本地所有镜像docker pull <镜像名>:<标签>:拉取镜像(默认标签为latest)docker rmi <镜像ID>:删除指定镜像docker build -t <镜像名>:<标签> <路径>:根据 Dockerfile 构建镜像(如docker build -t myapp:v1 .)
容器操作
启动容器
docker run -d -p <主机端口>:<容器端口> --name <容器名> <镜像名>:启动容器(后台模式)- 示例:
docker run -d -p 8080:80 --name web nginx
- 示例:
-v <主机目录>:<容器目录>:挂载数据卷(目录映射)-e <环境变量>:设置环境变量(如-e MYSQL_ROOT_PASSWORD=123)
管理容器
docker ps:查看运行中的容器(加-a查看所有容器)docker stop <容器名/ID>:停止容器docker start <容器名/ID>:启动已停止的容器docker restart <容器名/ID>:重启容器docker rm <容器名/ID>:删除容器(需先停止)
监控与调试
docker logs <容器名/ID>:查看容器日志(加-f实时追踪)docker exec -it <容器名/ID> /bin/bash:进入容器终端(或使用sh)docker inspect <容器名/ID>:查看容器详细信息(如 IP 地址)
网络管理
docker network ls:列出所有网络docker network create <网络名>:创建自定义网络docker network connect <网络名> <容器名>:将容器连接到网络
数据卷管理
docker volume create <卷名>:创建数据卷docker volume ls:列出所有数据卷docker volume inspect <卷名>:查看卷详情
Docker Compose
docker-compose up -d:启动服务(基于docker-compose.yml)docker-compose down:停止并删除容器、网络、卷docker-compose logs:查看服务日志
其他实用命令
docker system prune:清理无用镜像、容器、网络(加-a清理所有未用镜像)docker save -o <文件名>.tar <镜像名>:导出镜像到文件docker load -i <文件名>.tar:从文件加载镜像
如果这个容器是要有命令行交互的,比如是ubuntu或者是debian
# 启动一个 Ubuntu 容器并进入 bash 终端
docker run -it --name my_ubuntu ubuntu /bin/bash
# 启动 Debian 容器
docker run -it --name my_debian debian /bin/bash-it:-i(交互模式) +-t(分配伪终端),使容器支持命令行输入。/bin/bash:指定启动的 Shell(也可用/bin/sh)。
如果容器以及启动并且在后台运行:
docker exec -it my_ubuntu /bin/bash问题集合
curl报错:

输入date确保时间和现在相差不大,然后输入以下命令去更新证书
sudo yum update -y ca-certificates
sudo update-ca-trust force-enable
docker 无法启动:

可以看到这里的日志报错无效的docker引擎
nano /etc/docker/daemon.json直接进docker的配置文件里面改就是了
{
"registry-mirrors": [
"https://docker.m.daocloud.io"
],
"dns": ["8.8.8.8", "114.114.114.114"]
}