前言
fighting
Docker使用nsenter工具进入容器
1.下载nsenter工具
2.解压util-linux-2.33.tar.gz
3.进入cd util-linux-2.33目录,输入命令进行check
4.输入,对nsenter进行编译
5.复制nsenter到
6.查看nsenter的版本
7.docker inspect命令会提取出容器或者镜像最顶层的元数据,我们可以通过获取容器的进程id,然后再通过进入到容器中。
8.获取12dfffb03859容器的pid,
9.进入容器.
10.我们把以上繁琐的操作写成docker-enter.sh
11.在设置别名,然后保存配置,再查看设置别名是否生效
image.png
image.png
13.感觉用nsenter有点麻烦,其实可以用,如果出现的错误,这是由于容器中的PATH 路径问题,使用/bin/su 即可。
Docker Compose介绍
Dockerfile可以让用户管理一个单独的应用容器;而Docker Compose则允许用户在一个模板(yaml格式)中定义一组相关联的应用容器(被称为一个project,即项目),例如一个web服务容器再加上redis服务容器,nginx服务容器等。
docker compose.png
搭建Docker-Compose环境
1.下载安装docker-compose
image.png
2.下载docker补全命令
image.png
Docker-compose部署Python Flask项目
1.创建app.py
2.同目录下创建requirements.txt文件,添加项目依赖的python包
3.创建网络cmazxiaoma_net
4.创建Dockerfile
5.创建docker-compose.yml
7.后台启动应用
image.png
image.png
8.测试同一应用下的redis和web服务是否能ping通。
image.png
9.docker-compose相关的命令如下:
Docker-compose部署SpringBoot项目
1.项目目录
目录结构.png
2.nginx.conf
4.Dockerfile
5.setting.xml中需要更改的配置
repository.png
alimaven.png
6.application-docker.properties
7.添加linux规则,把要挂载的目录添加到selinux白名单。
8.启动应用,浏览界面成功!
image.png
nginx上面的图片.png
Docker-Compose顺序问题
虽然可以通过 来定义服务启动的顺序,但是无法确定服务是否启动完成。因此会出现这样一个现象,redis服务启动比较慢,当项目已经启动起来,但是redis还没有初始化好,这样当项目连接redis的时候就会出现连接数据库的异常。
针对这样的问题,有两种解决方案:
参考文章
1. 2.