docker(进阶)
docker ubuntu 一键按照包已经上传到资源中,可以去下载哦!
docker-compose.yml
docker run 起动一个容器或者多个容器有时候参数会很多,那么如果使用交互的命令行,不易管理和维护。
参数
version '2'
services:
severName(服务名字):
restart: always (运行docker-compose 是否重启)
image: imgeName:tag(镜像名)
ports: (端口映射)
- "21:21"
- 9090:80
- 4559:4559
- 4560:4560
- 4561:4561
- 4562:4562
- 4563:4563
- 4564:4564
environment:(系统环境变量)
- FTP_USER=guoyun
- [email protected]
hostname: nginx (主机名名字)
volumes:(目录挂载)
- /ftp/images:/files (前面是宿主机:docker容器中的目录)
depends_on: (配置中各个服务的起动顺序)
- 服务名
comman: 服务起动后执行的命令
serverName2:
.....
Registry
私有仓库
是一个服务,可以使用docker 起动起来以后提供一个端口,默认是5000.这样就可以对外提供,docker私有仓库服务了。
使用私有仓库 docker push/pull 域名或ip/镜像名。
一键打包脚本
在linux 系统上可以是使用,git +maven +docker 来做一个一键打包脚本。
/project/demo 目录下
git clone xxx
首先将 代码克隆下面
cd /project/demo
git reset --hard
git pull
git checkout $SERVER_VERSION
git pull
mvn clean package -Dmaven.test.skip=true
使用maven 打包
使用 Docker build + Dokcerfil 将打好的war 添加到 容器的中
使用docker-compose up -d 起动
上面就是一个一键打包脚本的思路。这样部署一个项目会节省非常多的时间。甚至可以做一个定时任务,执行这个。sh 脚本。
注(总结)
docker 挂载 不能挂载运行以后生成文件.
例如如果 将一个 war 包加入到镜像中,如果想吧这个tomcat解析以后的包映射出来是不行的.
docker-compose stop 都是找当前目录下的docker-compose.yml 然后去删除这个文件生成的docker 容器.其他的这样的命令 同样的道理.
导出镜像使用 save load
docker load < /home/myubuntu-save-1204.tar
docker save 9610cfc68e8d > /home/myubuntu-save-1204.tar
导出容器使用 explord import
福利
想要java web 学习资源的 可以加我微信。