docker-compose配合Dockerfile使用
也就是在dockers-compose.yml文件中添加build 指定一下我的Dockerfile文件的路径 例如我的dockers-compose.yml文件在docker-compose文件夹下,而docker-compose文件夹与Dockerfile和项目的war包在同一级目录,也就是Dockerfile文件,在dockers-compose.yml文件的上一级 那么就指定context: ../和dockerfile: Dockerfile 以上../就是上一级目录的意思,Dockerfile就是Dockerfile文件的名称 来看dockers-compose.yml文件
version: 3.1 services: mysql: restart: always build: context: ../ # 指定dockerfile文件的所在路径 dockerfile: Dockerfile # 指定Dockerfile文件名称 image: ssm:1.0.1 #自定义镜像名和版本号 container_name: ssm ports: - 8080:8080 environment: TZ: Asia/Shanghai
来写Dockerfile文件,注意没有后缀
来看位置
全部拖拽到Xterm中:
在/opt目录下新建docker_ssm文件夹
mv命令把docker-compose、Dockerfile、ssm.war全部移动到/opt/docker_ssm目录下 接着cd到docker-compose文件夹下 然后docker-compose up -d命令运行 回车,运行结果如下: WARNING警告的意思是: 可以直接启动基于docker-compose.yml以及Dockerfile文件构建的自定义镜像,使用以下命令:
docker-compose up -d
如果使用Dockerfile文件自定义的镜像不存在,会帮助我们构建出自定义镜像,如果自定义镜像已经存在,会直接运行这个自定义镜像
如果我们想重新构建,输入以下命令 重新构建自定义镜像
docker-compose build
如果想在运行容器前,重新构建,输入以下命令
docker-compose up -d --build
ERROR错误的意思是: 在docker环境上面,配置完docker-compose.yml 配置文件以后,在运行容器之前,我的docker容器里面就已经启动了mysql镜像,8080这个端口已经被占了,进行启动时就会报错。输入以下命令: docker stop 容器id,把mysql关闭就行
数据库
数据库的导入导出和之前一致就行
接着就可以在浏览器访问了 http://192.168.10.8:8080/ssm/