docker client客户端 docker daemon守护进程 docker image镜像 docker container容器 docker registry仓库
docker客户端/守护进程
提供了系统资源的隔离 进程 网络 文件系统 pid 进程隔离 net 管理网络接口 ipc 管理跨进程通信的访问 mnt 管理挂载点 UTS 隔离内核和版本标识
资源限制 优先级设定 资源计量 资源控制
文件系统隔离:每个容器都有自己的root文件系统 进程隔离:每个容器都运行在自己的进程环境中 网络隔离:容器间的虚拟网络接口和IP地址都是分开的 资源隔离和分组:使用cgroup将cpu和内存之类的资源独立分配给每个docker容器
启动容器: docker run image [command] [arg] run 在新容器中执行命令 启动交互式容器:docker run -i -t image /bin/bash
查看容器:docker ps [-a] [-l] docker inspect 自定义容器名: docker run --name=自定义名 -i -t image /bin/bash 重新启动停止的容器: docker start [-i]容器名 删除停止的容器:*不能删除运行中的容器 docker rm 容器名
什么是守护式容器: 能够长期运行 没有交互式会话 适合运行应用程序和服务
以守护形式运行容器: docker run -i -t image /bin/bash ctrl+p+q(退出,但保留后台)
docker logs [-f] [-t][–tail]容器名 -f --follow=true|false 默认false (实时显示最新的日志) -t --timestatamps=true|false 默认false(显示时间戳) –tail=“all” 控制显示结尾的条数
docker top
docker exec [-d] [-i][-t]容器名 [command] [arg]
docker stop 容器名 docker kill 容器名
列出镜像:docker image [optsions] [repository]仓库 查看镜像的详细信息:docker inspect 仓库名:tag名 删除镜像:docker rmi 仓库名+tag名 删除所有镜像:docker rmi $(docker images -q ubuntu) 查找镜像:docker search 拉取镜像:docker pull 推送镜像:docker push
保存对容器的修改,再次使用 自定义镜像的能力 以软件的形式打包并分发服务及其运行环境
dockerfile文件 docker build
查看守护进程:ps -ef|grep docker status docker 使用service命令管理: service docker start service docker stop service docker restart docker的启动选项:
客户端 、守护进程 通过socket 连接
socket方式: unix://var/run/docker.sock (默认方式) tcp://host:port fd://socketft
docker -d [OPTIONS]
/etc/default/docker
-H 选项 配置远程访问
使用DOCKER_HOST 选项,指定客户端访问方式
export DOCKER_HOST="tcp://10.211.55.5:2375"想重新连本机,只需置空即可
export DOCKER_HOST="”指令格式 注释和指令 FROM<镜像名>:必须是已经存在的镜像 基础镜像 必须是第一条非注释指令 MAINTAINER:指定镜像的作者信息,包含镜像的所有者和联系信息 RUN:指定当前镜像中运行的命令 shell模式 exec模式 EXPOSE:指定运行该镜像的容器使用的端口 CMD:执行一个命令,是在容器运行时运行的。指定默认模式下运行的。 EXTERYPOINT:不会被run命令给打断。也是执行命令的一种。
ADD:将文件或目录复制到使用dockerfile构建的镜像中。ADD指令包含类似于tar的解压功能。(如果解压,用add) 如果单纯的复制文件,docker推荐使用COPY COPY: VOLUME:(创建添加卷) WORKDIR:在创建容器时创建工作目录,使用绝对路径(后面的entrypoint 或cmd命令会从这个目录进行执行) ENV:设置环境变量 USER:指定用户来运行 ONBUILD:为镜像添加触发器(当一个镜像被其他镜像作为基础镜像执行时,会在构建过程中插入指令)
从基础镜像运行一个容器 执行一条指令,对容器做出修改 执行类似dockercommit的操作,提交一个新的镜像层 再基于刚提交的镜像运行一个新容器 执行dockerfile中的下一条指令,直至所有指令执行完毕。
查看镜像构建的过程 docker history [image]
docker history [镜像名称]