Docker简略
术语
Image
镜像就是一个打包好的文件系统(相当于Java中的类)。一个打包好的Docker镜像是一个迷你的操作系统,仅仅包含运行某个(或者某些)应用的必要依赖。
Image采用分层打包,每层有各自的组件,底层是运行操作系统的最小集合。再往上是某些依赖库的一个个集合。再往上是运行某些软件的集合。采用分层打包是为了方便扩展以及修改,当Image中的某些组件需要升级或者替换时,可以保持其他集合不变。
Container
容器,一个运行镜像的实例(相当于Java中的对象)
Volume
一个文件系统,可以将容器中的文件系统映射到本地机器上。
命令
启动docker
systemctl start docker
帮助命令
docker version
# 查看docker的版本
docker info
# 查看docker信息
docker 命令 --help
# 查看指定docker命令的信息
镜像命令
基础操作
docker images
# 查看本地所有镜像
docker search 容器名
# 搜索容器名
docker pull container-name[:tag]
# 下载
docker -f rmio 镜像id | 镜像name
# 删除镜像
docker image rm 镜像id
创建镜像
docker commit -m="description" -a="author" 容器id 目标镜像名:[TAG]
容器命令
查看容器
docker ps [可选参数]
# 列出正在运行的容器
# -a:列出所有容器,包括未运行的容器
# -q:只列出容器id
docker inspect 容器id | 容器name
# 查看运行中容器进程信息
运行容器
docker run [可选参数] image-name --name container-name
# 新建容器并启动,器名为container-name, 容器的执行镜像为image-name,如果本地不存在该镜像,自动从仓库中下载。
# -d 以后台方式运行:dameon
# -p 指定端口映射:port
# -p 外部端口:内部端口
# -P 随机指定外部端口
# e 传递参数
docker start 容器id | 容器name
# 开启容器,可以用容器id或者name
# 也可以用stop,restart,kill等停止,重启,强制停止容器。
进入容器
docker exec -it 容器id | 容器name /bin/bash
# 以交互界面进入容器, 可以输入容器id也可以输入容器名。
# /bin/bash 表明要进入的shell是/bin/bash
退出容器
ctrl + P + Q
# 容器不停止退出
exit
# 退出容器
常用命令
docker logs -t 容器id
# -t :带时间戳
# -n :打印最近的n行日志
docker cp 本地路径 容器id:容器内路径
删除容器
docker remv 容器id | 容器name
# 删除容器
数据卷命令
数据卷映射
docker run -d -v 本地目录:容器目录 容器id
# 将容器内的目录挂载到指定本地目录,具名挂载
docker run -it -v 容器目录 容器id
# -i interactive
# -t tty
# 将容器内目录挂载到本地目录,不指定本地目录,匿名挂载
DOCKERFILE
自定义镜像配置文件,通过自己写DOCKERFILE,制作想要的镜像。
创建镜像过程
- 编写dockerfile
- docker build 构建镜像
- docker push 发布镜像
语法规则
FROM
指定基文件MAINTAINER
author<email>
具体文件
FROM centos
MAINTAINER author<email>
ENV MYPATH /usr/local
WORKDIR $MYPATH
RUN yum -y install vim
EXPOSE 80
CMD /bin/bash
构建命令
docker build -f mydockerfile-centos -t mycentos:0.1