Skip to content

常见问题

无法拉取镜像

DNS解析问题

sudo vim /etc/resolv.conf

添加
nameserver 8.8.8.8
nameserver 8.8.4.4

重启docker
sudo systemctl daemon-reload
sudo systemctl restart docker

更新CA证书

sudo apt-get update
sudo apt-get install --reinstall ca-certificates
sudo update-ca-certificates

配置镜像加速

sudo vim /etc/docker/daemon.json

追加
{
  "registry-mirrors": ["https://<your-accelerator-url>"]
}

重启docker
sudo systemctl daemon-reload
sudo systemctl restart docker

Docker

为什么会有Docker这项技术的广泛使用?

  • 环境:包括OS、SDK、Language Env、System Env
  • 依赖:使得容器内的依赖独立
  • 效率:对比虚拟机,通过容器来进行虚拟化更接近于原生系统运行速度
  • 部署:最终达到全自动化的不挑环境的高质量部署,使得开发者可以有更多的时间注重于核心开发上

Docker主要解决了什么问题?

软件开发中,对于项目的开发、测试、部署环境的自动化与统一化

如何理解Docker的作用?

虚拟化开发的相对面是本地的实体化开发,类似于使用本地虚拟机作为服务器和云服务器之间的关系,当然是云服务器更好用,对应的,也许要更大的学习成本,但熟悉过后就很好用,就像VIM一样

通过docker抓取到的镜像,省去了传统开发的“搜索-下载-解压-安装-配置”的繁琐操作,通过docker进行虚拟化,使得服务可以摒弃原有繁琐耗时的操作,具备相当高的易用性

延伸到集群,基于虚拟化部署的软件通过逻辑编排和整体封装,实现的效果就从2D跃升到了3D

讲讲Docker的架构?

Docker采用CS架构,输入docker version后出现client和server信息,类似于前后端,必须client和server均启动,docker才能正常运行
	docker deamon:服务端守护进程,管理Docker各种资源;接收docker client发送的请求;在终端中的命令本质上都是发送给了docker deamon
	docker client:向deamon发送请求
docker client和docker deamon通过socket或rest API

怎么理解容器化?

APP打包成容器,然后在容器中运行APP的过程
	1. 创建docker file
	2. 构建镜像
	3. 创建 && 运行容器

镜像和容器的关系?

类似于食谱和菜肴、类和实例的关系,一个镜像可以创建一个或者多个容器,一份食谱可以制作出一个或者多个的菜肴

镜像和DockerHub的关系?

类似于up主的视频和B站、project和GitHub、npm包和npm、jar包和中心仓库的关系,镜像可以上传到DockerHub,up主自己做的的视频可以上传到B站

部署失败的情况

部署失败包括APP失败和容器失败两种情况
	容器失败:log查看是否失败,若报错或为空,则容器失败