1. 什么是Docker,主要解决什么问题
Docker 是一个容器化平台,解决了应用在不同环境中运行不一致、部署复杂、资源占用高等问题,实现“一次构建,到处运行”。
2. 使用阿里源安装Docker
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io通过docker --version查看是否安装成功

额外:配置镜像加速器
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
镜像加速器地址
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
3. 什么是镜像、什么是容器、什么是仓库
1. 镜像(Image)
定义:镜像是一个静态的、只读的模板,包含了运行某个软件所需的操作系统、代码、库和配置文件等。
作用:用于创建容器。可以理解为“应用程序的安装包”。
示例:
nginx:latest,python:3.11,library/ubuntu
2. 容器(Container)
定义:容器是镜像的一个运行实例,是一个动态的、可执行的应用环境。
特点:轻量、隔离、可移植,每个容器都有自己的文件系统、网络、进程空间等。
示例:从
nginx:latest镜像启动的 Web 服务器就是一个容器。
3. 仓库(Registry / Repository)
定义:仓库是用来集中存储和管理镜像的地方。一个仓库可以包含多个版本的镜像(通过标签区分)。
常见仓库:
官方仓库:Docker Hub
国内加速器:阿里云、腾讯云、华为云提供的私有仓库
4. docker的默认配置文件在哪里
/etc/docker/daemon.json
5. 如果配置国内可用镜像源
在/etc/docker/daemon.json中写入
{
"registry-mirrors": ["https://<your_accelerate_address>.mirror.aliyuncs.com"]
}
6. 在下载镜像前为机器做一个快照,随时可以恢复初始状态
在vmware中

7. 如何下载镜像,下载一个nginx的镜像
通过docker pull
docker pull nginx通过docker images可查看有什么镜像

8. 镜像的tag有什么作用,如果不指定tag,会有默认tag吗
在 Docker 中,Tag 是对某个镜像版本的标识符。它通常用于表示镜像的具体版本或用途。如果在使用 docker pull 或 docker run 时不显式指定 Tag,Docker 会默认使用一个名为 latest 的标签
9. 如何导出本地的镜像并导入其他机器中
要将本地的 Docker 镜像导出并导入到其他机器中,可以使用 docker save 和 docker load 命令。
10. 在讨论Docker时,提到的宿主机是什么含义
宿主机是指运行 Docker 引擎并承载容器的物理机或虚拟机。
11. 容器中运行的进程可以在宿主机中看到吗
容器中运行的进程可以在宿主机中看到。
12. 宿主机可以直接kill掉容器中的进程吗
宿主机可以直接使用 kill 命令终止容器中的进程,因为容器本质上是宿主机上的一个或多个进程。
13. 什么情况下容器会退出
容器会在其主进程退出、被杀、执行完成、资源限制触发或系统异常等情况下退出。可通过 docker logs 和 docker inspect 分析具体原因。
14. 如何查看容器的日志
通过docker log
15. Docker有哪些常用命令,分别有什么作用
1. 镜像相关命令
2. 容器相关命令
3. 系统与信息查看命令
4. 清理与维护命令
5. 容器编排相关命令(Compose)
16. 一个服务使用Docker运行跟宿主机上直接运行相比,会产生多少额外损耗
使用 Docker 运行服务的性能损耗非常低,大多数场景下 CPU、内存、IO、网络等开销都在 1%-5% 以内,且可以通过合理配置进一步优化。
17. 使用Nginx镜像启动一个容器
docker run -d --name test-nginx nginx:latest
18. 如何重启、停止、启动、删除容器
# 查看容器状态
docker ps -a | grep my-nginx
# 停止容器
docker stop my-nginx
# 启动容器
docker start my-nginx
# 重启容器
docker restart my-nginx
# 删除容器
docker rm my-nginx
19. 如何进入容器内部,如何从容器中退出到宿主。
使用 docker exec -it 进入容器
docker exec -it <容器名或容器ID> bash输入exit或者ctrl+d
20. 容器被删除后,容器中的内容还存在吗
如果容器未挂载任何持久化卷,删除容器后其内部的所有修改和数据都会丢失;如果使用了 Volume 或 Bind Mount,则数据仍保留在宿主机上。