Docker学习期间容易碰上的问题

111 阅读3分钟

引言

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。——百度百科

Docker作为一个应用容器引擎,可以很方便快速的在Linux上部署我们所需要的服务,如果你有使用在Linux上安装MySQL,作为初学者的你,肯定觉得十分的复杂繁琐。而使用Docker就只需要下载一个MySQL镜像,运行相关命令就可以运行了。十分的方便快捷,不仅是运维所需要学习的技术,更是后端需要掌握的技术。(本人的服务器上绝大多数的服务都运行在Docker上。。。)

下面就是我个人认为学习Docker比较容易碰上的问题。

Docker下载镜像速度过慢

于Docker配置的网站是国外的,所以访问起来非常的慢。我们需要访问我们国内提供的镜像网站来加速我们的docker下载速度。

其实不止Docker很多其他的资源也是提供镜像网站的。

虚拟机上安装了docker之后使用docker search mysql查询所提供的mysql镜像。再使用docker pull mysql:5.7 下载mysql镜像,发现下载速度过慢。

原因:docker镜像仓库网站是国外的,所导致的下载速度过慢。

解决:使用阿里云提供的镜像下载网站

cr.console.aliyun.com/cn-hangzhou…点击链接进入到阿里云网站。

image-20200115095756092

image-20200115095857774

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  # 填写自己的镜像地址
  "registry-mirrors": ["https://xxxxxx.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

Docker方式启动Tomcat,访问首页出现404错误

使用docker下载tomcat之后,以docker方式启动tomcat,访问首页出现404错误。虚拟机防火墙响应端口都已打开,并将主机8080端口映射到了tomcat容器的8080端口。

明明运行成功,查看日志也没有任何报错。为什么没有出现我们熟悉的界面呢???

原因:进入到tomcat的目录中webapps文件夹,发现里面是空的。tomcat默认的欢迎页面实际上放在的路径应该是:webapps/ROOT/index.jsp或者index.html.发现旁边还有个webapps.dist的文件,进入才发现原本应该在webapps中的文件在都在webapps.dist文件中。

image.png

解决:将webapps.dist文件夹改为webapps。原webapps文件夹删除或改成别的名字

查看正在运行的容器,并获取容器iddocker ps

image-20200115104336295

使用命令: docker exec -it 运行的tomcat容器ID /bin/bash 进入到tomcat的目录

image-20200115104955964

使用命令:rm -rf webapps删除webapps文件夹

image-20200115105216511

使用命令:mv webapps.dist webapps将webapps.dist重命名为webapps

image-20200115105322495

成功访问~~

总结

  1. 遇到网络下载过于缓慢,可以尝试去寻找相关的镜像网站进行加速。
  2. Tomcat启动后,会将webapps下面的war包自动解压,每个文件夹下就是一个web 服务。默认访问路径为/对应的是root目录,而主界面对应的是该目录下的index.jsporindex.html