1、入门介绍nginx
Docker是一个开源引擎,相似于一个集装箱,开发者经过它能够为任何应用建立一个轻量级、环境无关可移植的容器。开发者在本地编译测试过的容器能够在不一样的环境中部署。git
一般适用于以下场景:github
1 - web应用的自动化打包和发布
2 - 自动化测试和持续集成、发布
3 - 在服务型环境中部署和调整数据库或者其余的后台应用
4 - 从头编译或者扩展示有的OpenShift或者Cloud Foundary平台搭建本身的PaaS环境web
Docker系统组成docker
docker服务端+docker客户端
docker服务端:一个后台的服务进程,负责管理全部的容器
docker客户端:docker服务端的远程控制器,负责控制docker的服务端进程
大部分状况下docker服务端和客户端运行在同一台机器数据库
docker镜像与docker容器的关系centos
docker镜像是用于建立docker容器的模板,二者的关系相似于对象与类的关系xcode
Docker镜像(Images) : 用于建立docker容器的模板
Docker容器(Container): 一组封装了应用及其所需环境的沙箱,能够移植到其余平台,环境无关
Docker客户端(Client): 经过命令行或者其余工具使用Docker API与Docker的守护进程(即服务端)通讯
Docker主机(Host):一个物理或者虚拟的机器用于执行Docker守护进程与容器
Docker仓库(Registry): Docke仓库用于保存镜像,能够理解为代码控制中的代码仓库,Docker Hub(https://hub.docker.com)提供了庞大的镜像集合供咱们使用
Docker Machine : Docker Machine是一个简化Docker安装的命令行工具,经过一个简单的命令行,可在相应的平台安装Dockerruby
2、Docker安装
1)MacOS环境安装docker
MacOS下安装方式有两种
Homebrew安装
1 - 首先,咱们须要安装Homebrew这款包管理工具,在终端执行如下命令xcode-select --install;
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"下载
2 - 执行brew cask install docker安装docker
3 - 载入Docker点击Next输入macOS密码网络
2)手动下载安装
1 - 下载连接https://download.docker.com/mac/stable/Docker.dmg
2 - 下载成功点击图标,在安装成功的界面,点击”Got it!“关闭窗口
第一次使用docker须要到cloud.docker.com网站注册一个帐号
3、docker配置国内镜像源
由于使用Docker须要从官方获取镜像,网络传输很是耗时常常发生断线,所以最好配置国内镜像源拉取镜像速度能够获得极大的提高。
国内镜像源列表
DaoCloud: http://fab34f18.m.daocloud.io(须要先注册帐号而后获取本身的加速地址)
网易加速器: http://hub-mirror.c.163.com
官方中国加速器: https://registry.docker-cn.com
ustc的镜像:https://docker.mirrors.ustc.edu.cn
3、Docker的基本命令
镜像操做
1 - 从docker hub官方镜像仓库拉取镜像
docker pull busybox:latest
2 - 推送本地镜像到镜像仓库
1)docker tag busybox daocloud.io/weidai_zm/busybox:latest
latest:版本
daocloud.io/weidai_zm/: 远程仓库
busybox: 本地镜像
2)docker push daocloud.io/weidai_zm/busybox:latest
3 - 查看本地镜像列表
docker images
4 - 查找镜像仓库的某个镜像
docker search centos/nginx
5 - 查看构建镜像所用过的命令
docker history busybox:latest
6 - 删除镜像
docker rmi busybox:latest
容器操做
container为容器建立时指定的name或者系统分配的name
1 - 建立并启动容器,建立交互式伪终端
docker run -it busybox
2 - 建立并启动测试容器(容器在后台运行)
docker run -d busybox
3 - 建立容器可是不运行它
docker create --name mybusybox busybox
4 - 在运行的容器中执行命令
docker exec -it container echo 'hello'
5 - 链接到正在运行的中的容器
docker attach --sig-proxy=false container
6 - 删除一个或者多个容器
docker rm [OPTION] container1[...containerN]
OPTION说明:
-f: 经过SIGKILL信号强制删除一个运行中的容器
docker rm -f db
-l: 移除容器间的网络链接,而非容器自己
eg: docker rm -l db
db - 链接名
-v: 移除与容器,并删除容器挂载的数据卷
eg: docker rm -v busybox
7 - 杀掉一个正在运行中的容器
docker kill -s KILL mybusybox
8 - 启动一个或者几个已经被中止的容器
docker start container
9 - 中止一个运行中的容器
docker stop container
10 - 重启容器
docker restart container
11 - 暂停容器中的全部进程
docker pause container
12 - 恢复容器中的全部进程
docker unpause container
获取容器相关信息
1 - 显示状态为运行的容器
docker ps
2 - 显示全部容器,包括运行中(Up)和退出的(Exited)
docker ps -a
3 - 深刻容器内部获取容器的全部信息,获取特定信息
docker inspect container
根据元数据结构命令以下:
docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' container #获取容器IP地址
4 - 查看容器的日志
docker logs container