核心构想
对应用封装 分发 部署 运行生命周期进行管理,达到应用组件“一次封装,处处运行”的目的。
安装 brew cask install docker
三大核心概念
镜像(images 即文件,运行时会生成容器):
比如说Apache应用程序等,本身是只读的,从镜像启动的时候,会在镜像的最上层创建一个可写层。
docker images 来列出所有镜像。
下载镜像:docker pull java:1.8.111
搜索镜像:docker search httpd
重命名: docker tag 8404509de7d9 name:tag
容器:
类似于沙箱,利用容器来运行和隔离应用
docker ps 查看容器内的应用
docker stop 容器ID 停止应用
docker rm 容器ID 移除应用
仓库:
类似于代码仓库,是Doceker集中存放镜像文件的场所
分为公开仓库和私有仓库两种形式。
push命令上传,pull下来。(跟git相似)
集成java:
Dockerfile文件
FROM为使用哪个镜像
VOLUME为挂载路径
ADD为复制文件到镜像中
RUN为初始化时运行的命令
ENV为设置环境变量
ENTRYPOINT为启动时运行的命令
打包 及 推送打包 运行
mvn package docker:build
mvn package docker:build -DpushImage
docker run -p 8080:8080 -t app7
清理image:
1.进入root权限
sudo su
2.停止所有的container,这样才能够删除其中的images:
docker stop $(docker ps -a -q)
如果想要删除所有container的话再加一个指令:
docker rm $(docker ps -a -q)
3.查看当前有些什么images
docker images
4.删除images,通过image的id来指定删除谁
docker rmi <image id>
想要删除untagged images,也就是那些id为<None>的image的话可以用
docker rmi $(docker images | grep "^<none>" | awk "{print $3}")
要删除全部image的话
docker rmi $(docker images -q)
集成redis:
启动 docker run --name some-redis -d redis