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