什么是Docker?
- 就是个软件容器
- Docker思想
- 集装箱:模仿“虚拟机”
- 标准化:运输方式,存储方式,接口
- 隔离:基于Linux内核,进行资源分组
解决什么问题?
- 程序及其运行环境同时移植
Docker核心技术
- 核心:
- 镜像:应用程序、运行环境的文件。核心是UnionFS(分层文件系统),将不同目录挂载到同一虚拟机下
- 容器(运行程序的地方):本质就是一个进程,相当于一个虚拟机,不过文件系统是分层的。
- 仓库(超级码头) :相当于repository
- 流程:从仓库拉一个镜像到本地执行
- 国内常用的仓库:hub.c.163.com
docker网络隔离
- Brige模式(默认):获得独立的namespace,端口映射
- Host模式:和主机共同使用一个namespace
- None:没有网络
制作自己的镜像
- Dockerfile:怎么做docker镜像的文件
指令
docker images:查看有哪些镜像
docker pull 名字[:tag] :拉取镜像到本地
docker run [OPTIONS] IMAGE[:TAG][COMMAND][ARG]:运行镜像
docker ps :看docker进程
docker exec :向运行中的container执行一个命令
docker run -d -p 8080:80 nginx:启动nginx,容器端口80映射到主机端口8080
docker stop $(docker ps -a -q) :停止所有container
docker rm $(docker ps -a -q) :删除所有container
docker rmi <image id> :删除相应id的docker镜像
docker built -t 镜像名 . :在当前目录创建镜像
实验
编写Dockerfile:
from hub.c.163.com/library/tomcat
COPY SSM.war /usr/local/tomcat/webapps