0x01、Docker基础
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
而容器是一种轻量级的虚拟技术。
Docker的主要部件:
Docker:开源的容器虚拟化平台
Docker Hub: 用于分享、管理 Docker 容器的 Docker SaaS 平台
0X02、Docker平台的基本构成
基本由三部分组成:
1、客户端:用户使用Docker提供的工具(CLI 以及 API 等)来构建,上传镜像并发布命令来创建和启动容器;
2、Docker 主机:从 Docker registry 上下载镜像并启动容器
3、Docker registry:Docker 镜像仓库,用于保存镜像,并提供镜像上传和下载
0x03、Docker基本语法
三个重要概念:镜像、容器、库
镜像: 是一个包含了应用程序和其运行时依赖环境的只读文件;利用 Union FS 的技术,将其设计为分层存储的架构
容器: 通过一个镜像我们可以构造出很多相互独立但运行环境一样的容器;容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等
仓库: Docker提供了Hub来保存公有或私有的镜像,也允许第三方搭建。每个仓库可以包含多个标签(Tag),每个标签对应一个镜像。
下表清楚的表示出了三者之间的关系
命令分类:
镜像操作:
build Build an image from a Dockerfile
commit Create a new image from a container's changes
images List images
load Load an image from a tar archive or STDIN
pull Pull an image or a repository from a registry
push Push an image or a repository to a registry
rmi Remove one or more images
search Search the Docker Hub for images
tag Tag an image into a repository
save Save one or more images to a tar archive (streamed to STDOUT by default)
history 显示某镜像的历史
inspect 获取镜像的详细信息
容器及其中应用的生命周期操作:
create Create a new container (创建一个容器)
kill Kill one or more running containers
inspect Return low-level information on a container, image or task
pause Pause all processes within one or more containers
ps List containers
rm Remove one or more containers (删除一个或者多个容器)
rename Rename a container
restart Restart a container
run Run a command in a new container (创建并启动一个容器)
start Start one or more stopped containers (启动一个处于停止状态的容器)
stats Display a live stream of container(s) resource usage statistics (显示容器实时的资源消耗信息)
stop Stop one or more running containers (停止一个处于运行状态的容器)
top Display the running processes of a container
unpause Unpause all processes within one or more containers
update Update configuration of one or more containers
wait Block until a container stops, then print its exit code
attach Attach to a running container
exec Run a command in a running container
port List port mappings or a specific mapping for the container
logs 获取容器的日志
容器文件系统操作:
cp Copy files/folders between a container and the local filesystem
diff Inspect changes on a container's filesystem
export Export a container's filesystem as a tar archive
import Import the contents from a tarball to create a filesystem image
Docker registry 操作:
login Log in to a Docker registry.
logout Log out from a Docker registry.
Volume 操作:
volume Manage Docker volumes
网络操作:
network Manage Docker networks
Swarm 相关操作:
swarm Manage Docker Swarm
service Manage Docker services
node Manage Docker Swarm nodes
系统操作:
version Show the Docker version information
events Get real time events from the server (持续返回docker 事件)
info Display system-wide information (显示Docker 主机系统范围内的信息)
0x04、Docker的应用场景
Docker 使用客户端-服务器 (C/S) 架构模式。Docker 客户端会与 Docker 守护进程进行通信。Docker 守护进程会处理复杂繁重的任务,例如建立、运行、发布我们的Docker容器。Docker 客户端和守护进程可以运行在同一个系统上,当然你也可以使用Docker客户端去连接一个远程的Docker守护进程。Docker客户端和守护进程之间通过 socket 或者 RESTful API 进行通信。
Docker的应用场景有:
加速本地开发:快速搭建好开发环境和运行环境。
自动打包和部署应用。
创建轻量级的私有Paas环境。
自动化测试和持续集成。
创建安全沙盒。
0x05、基于centos 7 的安装
查看系统版本
cat /etc/redhat-release
安装docker
yum install docker
检查是否安装成功
docker version
运行docker
service docker start
设置为开机自启
systemctl enable docker.service
在Docker Hub 注册用户,他可以为我们提供私有仓库,我们可以上传存储我们自己的镜像,Docker通过docer search、pull、login和push等命令提供了连接Docker Hub服务的功能
使用sudo docker login 我们可以登录到Docker Hub。(sudo,是允许系统管理员让普通用户执行一些或者全部的root命令的一个工具)
搜索镜像
docker search centos
我们可以看到 docker.io/centos 和docker.io/jdeathe/centos-ssh,第二个表示从jdeathe/的用户仓库中搜索到的,而第一个没有用户空间表示他是可信的顶级命名空间。/字符分割用户镜像和存储库的名称。
下载镜像
docker pull <imagename>