docker 基本组成 容器 镜像 仓库
docker是c/s架构
镜像是容器的基石,层叠的只读文件系统,bootfs,rotfs(root)
联合加载一次加载多个文件系统,add emacs add apache
容器通过镜像启动,容器中可以运行客户的一个或多个进程
启动和执行阶段
可写文件系统
写时赋值
镜像栈
registry仓库 保存用户构建的镜像 分为共有和私有
docker hub
架设私有的仓库
docker依赖的linux内核特性
namespaces命名空间
封装 代码隔离
系统资源的隔离
进程 网络 文件系统
进程隔离 管理网络接口 管理挂载点 管理跨进程通讯的访问 隔离内核和版本
control groups控制组
用来分配资源
来源于google
资源限制
优先级设定
资源计量
资源控制 将进程组挂起
docker容器的能力
文件系统的隔离:每个容器都有自己的root文件系统
进程隔离:每个容器都运行在自己的进程环境中
网络隔离,容器间的虚拟网络接口和ip地址都是分开的
资源隔离和分组:使用cgroups技术将cpu和内存之类的资源独立分配给每个docker容器
二 docker的安装和配置
1、ubuntu中安装docker docker依赖于linux内核
安装ubuntu维护的版本
sudo apt-get install -y docker.io
安装docker维护的版本
sudo apt-get install -y curl
curl -sSL https://get.docker.com/ubuntu/ | sudo sh
2、在windows中安装docker
linux容器技术
操作系统级别的虚拟化
依赖于linux内核的namespace和cgroups
boot2docker for windows
安装Boot2Docker
1、访问下载github上的boot2docker
2、安装boot2docker
容器的基本操作
docker run IMAGE [COMMAND] [ARG]
docker run ubuntu echo “hello world”
启动交互式容器
docker run -i -t IMAGE /bin/bash
docker run --name=container001 -it IMAGE /bin/bash
查看容器
docker ps -a
docker inspect 容器名
守护式容器
启动交互式容器 退出是使用ctrl+p ctrl+q
再次进入 docker attach 容器名字
docker run -d IMAGE [command] [ARG]
查看容器日志
docker logs 容器名
查看容器进程
docker top 容器名
在运行的容器内启动新的进程或服务
docker exec -it 容器名 服务名(nginx)
docker stop 容器名
在容器中部署静态网站
设置容器的端口映射 run -P -p
docker run -p 80 --name web -it ubuntu /bin/bash
sudo apt-get install -y nginx
sudo apt-get install -y vim
容器中使用 ps -ef命令查看当前进程
查看容器端口映射情况
docker port 容器名
docker镜像
容器基石
层叠的只读文件系统
repository 仓库
registry 仓库 包括repository
tag 镜像标签
同一个镜像文件打标签
查看镜像、容器
docker inspect
查找镜像
在docker hub上获取
docker search 命令
获取镜像
docker pull ubuntu:14.04
推送镜像
docker push 镜像名
构建镜像
docker commit container
docker服务启动配置文件
/etc/default/docker
docker服务停止启动命令
service docker start
service docker stop
service docker restart