docker运行自己的容器(以搭建博客镜像为例)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_20009015/article/details/84782147

docker images 查看自己拥有的镜像(这个镜像的构建可以看我上一篇博文https://blog.csdn.net/qq_20009015/article/details/84781163 docker 构建镜像)

运行jpress 镜像构建的容器,因为这个镜像是用tomcat镜像为基础 加上一个叫jpress的博客war包构建成的

所以运行的时候 绑定的端口是tomcat的端口 8080

docker run -d -p 8888:8080 jpress //-d 表示后台应用 -p表示端口绑定 主机端口:容器端口 镜像名称

docker ps 查看启动的容器

netstat -na |grep 8888 查看已经启动的端口

本地访问localhost:8888

发现可以进去tomcat了

访问 http://localhost:8888/jpress 发现已经可以成功进去了

至此 我们的容器就已经运行起来了。

不如干脆点,直接整个博客搭建起来,我们发现还需要数据库

直接在docker里面把mysql也安装进去

在镜像中心 找到mysql

https://c.163yun.com/hub#/m/repository/?repoId=2955

然后下载下来

docker pull hub.c.163.com/library/mysql:latest

然后启动

docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag

docker run -d -p 8889:3306 -e MYSQL_ROOT_PASSWORD=123456 -e MYSQL_DATABASE=jpress hub.c.163.com/library/mysql:latest

//-e 参数表示指定环境变量 MYSQL_ROOT_PASSWORD=123456 初始化密码 MYSQL_DATABASE=jpress 初始化创建数据库

docker ps 可以看到两个容器都已经运行起来了

这个时候我们用navcat客户端工具去连接docker里面的mysql

一样可以连接成功 。 跟正常数据库一样

此时再访问http://localhost:8888/jpress

信息填上

结果报错!!

因为部署的应用环境和mysql环境是互相隔离的,所以需要获取mysql容器的ip才能连接

查看容器ip

docker exec -it 12708b bash 进入容器 12708b为这个装有mysql数据的容器id

cat /etc/hosts查看mysql容器的ip,本机开发环境下访问mysql只需填写宿主机ip即可,但tomcat镜像内的应用访问需要填写mysql容器的ip,因为docker容器环境是互相隔离的

发现该容器的ip是172.17.0.2

成功进来了!!

docker restart 511配置完后后重启tomcat容器,再次访问即可

猜你喜欢

转载自blog.csdn.net/qq_20009015/article/details/84782147
今日推荐