docker 学习

docker 进阶之路

什么是docker?

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

#Docker思想
整体打包可移植
标准api

#Docker解决问题
运行环境不一致所带来的问题
可快速扩展,弹性伸缩

docker 核心

  • 镜像 –docker 集装箱(所有应用打包)
  • 仓库 –码头 把装好的集装箱运到码头
  • 容器 –程序运行时环境
    ###用docker运行一个程序的过程:去仓库把镜像拉到本地,用命令把镜像运行起来变成一个容器
  • Build 构建镜像
  • Ship 运输镜像
  • Run 运行的镜像就是一个容器

####Docker 镜像
利用Linuxde 联合文件系统(Union File System, 简称UnionFS)把所有文件通过文件分层的方式存储到本地。(分层文件系统)

####Docker 容器
容器的本质就是一个进程

####Docker仓库
hub.docker.com 中央仓库地址
c.163.com 网易蜂巢镜像中心

开启docker之旅

 docker pull -->客户端向docker daemon发起请求,如果改images在本地存在,不处理,如果不存在,去远程仓库(hub.docker.com)拉取镜像.
docker run --> 客户端向docker daemon发起请求,如果本地镜像存在,直接启动,不存在,去远程仓库拉取到本地,然后启动
  • 常用命令:
    • docker images (查看本地所有docker镜像)
    • docker pull 镜像名称 (拉取远程服务器镜像到本地)
    • docker run 镜像名称 (启动镜像)
    • docker run -d [container id] (后台运行容器)
    • docker exec -it [container id] bash (进入容器内部,并创建伪终端)
    • which nginx (查找nginx)
    • ps -ef (查看所有进程)
    • docker kill -s KILL [CONTAINER ID] (杀掉一个运行中的容器)
      ###docker 网络
      Bridge(默认模式)
      容器端口映射到主机端口
      启动时,首先创建一个docker0的网桥,和主机进行映射,然后在容器中创建虚拟网卡,和网桥映射
      docker run -d -p [主机端口]:[容器端口] [容器名称]
      docker run -d -P [容器名称] (启动后会从主机随机分配端口映射到容器端口)
      netstat -na | grep [端口]
      Host
      跟主机使用同一块网卡
      None