初次体验Docker的坑

最近在做微信小程序,后台用的Springboot。以前一直放在服务器的Tomcat里跑。

感觉不爽,想试下“风靡全球”的Docker来跑一跑。

参考了这位老哥教程:https://blog.csdn.net/caox_nazi/article/details/78366584

没想到遇到很多阻力。

1、首先在我的Centos7(云服务器)上安装Docker -CE

在配置加速器的时候遇到了坑,配置文件少了个符号  命令:sudo vim /etc/docker/daemon.json

坑:

{
"registry-mirrors": ["https://registry.docker-cn.com"]
}

注:一定要配置加速器,不然pull速度(如下图)

配置了加速器。嘻嘻

配置加速器教程:https://blog.csdn.net/u013372487/article/details/77169430

2、安装完毕。

输入docker info

有点东西 ,美滋滋

3、打包本地springboot项目

。。。(按照教程里走)

当当当。。。。坑来了,我嫌教程里jar包名字不好看 ,自己取了个符合自己气质的jar包名,哈哈。然而Dockerfile里什么都没改

完了 出毛病了

4、执行docker打包命令 sudo docker build -t docker .(这里有个点)

完了完了

跳出来一个找不到 docker_spring_boot.jar 的错误。原本没看到,就屁颠屁颠去发布去了。

发布也是用的教程里的-的-d(后台运行)命令。(docker run -d -p 8080:8080 docker

结果错误也没报,发布没成功。本地远程都访问不了 localhost:8080

找了半天,终于发现是Dockerfile问题。于是乎改成和jar包符合。(我的jar包名:bzmovie-docker.jar)

OK.大功告成。

5、发布应用。

最后一个坑。

命令:docker run -d -p 8080:8080 bzmovie

运行此命令,发现还是访问不了。改成9090:9090 ,8081:8081....

还是不行,又找半天,找到发布docker应用的日志,发现tomcat启动在80端口。又想到了docker的端口映射机制:

**************************************************************

 将容器指定端口指定映射到宿主机的一个端口上。

1

docker run -p 8000:80 -it ubuntu /bin/bash

以上指令会将容器的80端口映射到宿主机的8000端口上。

***************************************************************

冷静分析了一下。

(1)假如我想用我的ip:8080 这样访问 

则我应该这样发布

docker run -d -p 8080:80 bzmovie(前面是springboot中tomcat的发布端口。后面我想能访问的端口。并且能同时在多个端口发布同一个应用)

(2)如果我想直接ip访问,即ip:80,命令应该这样

docker run -d -p 8080:80 bzmovie

查看docker进程。果不其然。

至此网站已经能正常访问。本人小菜鸟一枚。啥都没准备就直接把Docker拿过来想开箱即用,遇到了不少坑。在此记录一下,避免下次遇到,同时和大家共勉!嘻嘻

猜你喜欢

转载自blog.csdn.net/qq_18881987/article/details/81266745
今日推荐