1.简介
Docker是一个使用Go语言开发的开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的机器上。在Ubuntu系统上开发。
2.什么是docker
Docker is the world's leading software containerization platform.
Docker是世界领先的软件容器化平台。
Docker公司开发,开源,托管在github上。
跨平台,支持Linux,Macos,Windows
3.docker思想
集装箱
标准化(运输方式,存储方式,API接口)
隔离
4.docker解决了什么问题
解决了运行环境不一致的问题
限定应用最大的CPU和内存
docker标准化让快速扩展,弹性伸缩变得简单
5.docker核心技术
镜像:指集装箱(build)
仓库:指超级码头(ship)
容器:运行程序的地方(run)
6.docker镜像(image)
只读,只有最上面一层可写可读writable
联合文件系统
7.docker容器
同一个镜像可以生成多个容器独立运行
8.docker仓库
把镜像传到仓库,在由目的地把镜像拉过去
中央仓库:hub.docker.com https://c.163.com/hub#/home
9.window安装docker
window10(包括window10家庭版)下载地址:https://www.docker.com/products/docker-toolbox
window10以外下载地址:https://www.docker.com/products/docker#/windows
boot2docker.iso下载地址:https://pan.baidu.com/s/1qYyc0ag/
10.linux安装docker
安装教程地址:http://www.imooc.com/article/16448
11.第一个docker镜像
docker pull hello-world 去hub.docker.com下载镜像
docker pull [OPTIONS] NAME[:TAG] 从仓库拉取镜像到本地
docker image [OPTIONS] [REPOSITORY[:TAG]] 查看本机镜像
docker images 查看本机所有镜像列表
12.第一个docker容器
docker run hello-world
docker run [OPTIONS] IMAGE [:TAG] [COMMAND] [ARG...]
docker build
docker pull
13.运行nginx镜像
docker pull hub.c.163.com/library/nginx:latest 下载nginx镜像
docker run hub.c.163.com/library/nginx 前台运行nginx镜像
docker run -d hub.c.163.com/library/nginx 后台运行nginx镜像
docker ps 查看正在运行的容器
docker exec -it a4 bash 进入一个运行的容器中运行命令
exit 退出容器
docker stop a4 停止容器
14.docker网络
网络类型:
Bridge(虚拟出一个网卡通过网桥和主机通信)
Host(和主机使用同一个网卡)
None(不使用网络)
端口映射:把容器端口和宿主主机端口映射
docker run -d -p 8080:80 hub.c.163.com/library/nginx 运行镜像并把主机8080端口和容易80端口映射
docker run -d -P hub.c.163.com/library/nginx 运行镜像并把随机主机端口和容器80端口映射
15.制作自己的镜像
Dockerfile:告诉docker怎样制作镜像,docker build 生成docker镜像,应用http://jrpess.io/
1.docker pull hub.c.163.com/library/tomcat:latest 下载tomcat镜像,因为java应用要运行在tomcat上
2.编辑 Dockerfile
from hub.c.163.com/library/tomcat
MAINTAINER SQQ 111@qq.com
COPY jpress.war /usr/local/tomcat/webapps
3.docker build -t jpress:latest . 构建镜像
16.运行自己的容器
docker run -d -p 8888:8080 jpress 启动tomcat
docker pull hub.c.163.com/library/mysql:latest 下载MySQL镜像
docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=000000 -e MYSQL_DATABASE=jpress hub.c.163.com/library/mysql:latest 启动mysql容器并设置密码和数据库名称
docker restart 6e4b17a51a3c 重启容器