一、基本概念、用途、核心思想
1、Docker是什么?
Docker是一个用来装程序及其环境的容器,属于Linux容器的一种封装,提供简单易用的容器使用接口。它是目前最流行的Linux容器解决方案。
2、为什么需要Docker?
环境配置的难题
虚拟机(资源占用多、冗余步骤多、启动慢等缺点)
Docker的基础——Linux容器(和虚拟机相比Linux容器 启动快、占用资源少、体积小)
3、Docker的用途
提供统一的环境
提供快速拓展、弹性伸缩的云服务
防止其他用户的进程把服务器资源占用过多
4、Docker的特点
标准化
运输方式(把程序和环境从一个机器运到另一个机器)
存储方式(程序和环境的存储)
API接口(不需要Tomcat等应用的命令了,都标准化了)
灵活:即使是最复杂的应用也可以集装箱化
轻量级:容器利用并共享主机内核
便携式:可以在本地构建,部署到云,并在任何地方运行
二、Docker的组成、架构、重要概念
1、image镜像
存储:联合文件系统,UnionFS
分层
2、容器
镜像类似于Java中的类,而容器就是实例
容器的这一层是可以修改的,而镜像是不可以修改的
同一个镜像可以生成多个容器独立运行,而他们之间没有任何干扰
3、仓库
docker官方的镜像仓库:hub.docker.com
网易镜像仓库:https://c.163yun.com/hub#/m/home/
仓库分为公有、私有
4、client和deamon
client提供给用户一个终端,用户输入Docker提供的命令来管理本地或远程的服务器
deamon:服务端守护进程,接受Client发送的命令并执行相应的操作
三、第一个Docker容器
1、拉取镜像
docker pull [OPTIONS] NAME[:TAG]
2、查看本地镜像
docker images[OPTIONS] [REPOSITORY[:TAG]]
3、运行镜像
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
4、查看容器
docker ps
5、后台运行容器
docker run -d image:tag
6、进入容器
docker exec -it container_id bash
7、Docker的网络模式
Bridge 桥接
Host 主机
None 没有网络
8、Docker启动容器端口并进行映射
docker run -d -p 8080:80 nginx:latest
docker run -d -P nginx:latest 使用大写的P则映射容器内的所有端口
9、查看端口是否启用
netstat -na|grep 8080
四、制作自己的Docker容器,dockerfile实战
1、编写DockerFile
FROM alpine:latest
MAINTAINER michealyang
CMD echo 'hello my dockerfile'
2、制作镜像
docker build -t hello:v1 .
3、运行镜像
docker run hello