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

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容器,再次访问即可

 

 

 

 

 

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值