Docker 多容器复杂应用的部署

网友投稿 258 2022-10-18

Docker 多容器复杂应用的部署

1.在某个文件中放入一个python flask项目,如flask-redis

2.在docker 控制台进入 flask-redis 目录中

3.由于需要redis,我们将redis单独作为一个容器,创建redis容器:docker run -d --name redis redis

4.将项目build成一个镜像:docker build -t 15091302@qq.com/flask-redis .(注意最后还有一个点,指代镜像的存放位置)

5.为了让redis直接能被用名字访问,在flask-redis中输入docker run -d -p 5000:5000 --link redis --name flask-redis

-e REDIS_HOST=redis    15091302@qq.com/flask-redis

注意这里的5000是Dockerfile中expose配置的端口号5000

6.测试:进入容器中测试:curl 127.0.0.1:5000 ---->打印hello container world!

在主机上测试: curl 127.0.0.1:5000 ------->连接被拒绝

curl 192.168.99.100:5000-------->成功打印(192.168.99.100是主机分配给docker机器的ip)

------------测试手动添加的-e环境变量是否加入到容器中--------------------

进入启动的项目容器flask-redis : docker exec -it flask-redis /bin/bash -

输入env  ,显示了REDIS_HOST=redis也包含在了其中

--------补充理解镜像和容器之间的区别----------

一个Docker镜像可以构建于另一个Docker镜像之上,这种层叠关系可以是多层的。第1层的镜像层我们称之为基础镜像(Base Image),其他层的镜像(除了最顶层)我们称之为父层镜像(Parent Image)。这些镜像继承了他们的父层镜像的所有属性和设置,并在Dockerfile中添加了自己的配置。

Docker镜像通过镜像ID进行识别

镜像可以发布为不同的版本,这种机制我们称之为标签(Tag),如何创建镜像:docker build Dockerfile

Docker容器可以使用命令创建:

它会在所有的镜像层之上增加一个可写层。这个可写层有运行在CPU上的进程,而且有两个不同的状态:运行态(Running)和退出态(Exited)。这就是Docker容器。

当我们有一个正在运行的Docker容器时,从运行态到停止态,我们对它所做的一切变更都会永久地写到容器的文件系统中。要切记,对容器的变更是写入到容器的文件系统的,而不是写入到Docker镜像中的。

--------------------显示容器中的环境变量等参数----------------------------

docker exec -it containerId /bin/sh

env

------------------------------------------------------------------

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Docker容器间的link和端口映射
下一篇:spring jpa集成依赖的环境准备及实体类仓库编写教程
相关文章

 发表评论

暂时没有评论,来抢沙发吧~