一、简介
Docker是一个开源的应用容器引擎,使用Go语言开发,基于Linux内核的CGroup、Namespace、Union FS等技术实现的一种系统级虚拟化技术。
特性
- 更高效的利用系统资源:由于容器不需要进行硬件虚拟以及运行完整操作系统等额外开销,Docker 对系统资源的利用率更高。无论是应用执行速度、内存损耗或者文件存储速度,都要比传统虚拟机技术更高效。因此,相比虚拟机技术,一个相同配置的主机,往往可以运行更多数量的应用。
- 更快速的启动时间:传统的虚拟机技术启动应用服务往往需要数分钟,而Docker 容器应用,由于直接运行于宿主内核,无需启动完整的操作系统,因此可以做到秒级、甚至毫秒级的启动时间。大大的节约了开发、测试、部署的时间。
- 一致的运行环境:开发过程中一个常见的问题是环境一致性问题。由于开发环境、测试环境、生产环境不一致,导致有些bug 并未在开发过程中被发现。而Docker 的镜像提供了除内核外完整的运行时环境,确保了应用运行环境一致性,从而不会再出现「这段代码在我机器上没问题啊」这类问题。
- 持续交付和部署:Docker是build once,run everywhere. 使用Docker 可以通过定制应用镜像来实现持续集成、持续交付、部署。开发人员可以通过Dockerfile 来进行镜像构建,并结合持续集成(CI) 系统进行集成测试,而运维人员则可以直接在生产环境中快速部署该镜像,甚至结合持续部署(CD) 系统进行自动部署。
- 更轻松的迁移:Docker 使用的分层存储以及镜像的技术,使得应用重复部分的复用更为容易,也使得应用的维护更新更加简单,基于基础镜像进一步扩展镜像也变得非常简单。此外,Docker 团队同各个开源项目团队一起维护了一大批高质量的官方镜像,既可以直接在生产环境使用,又可以作为基础进一步定制,大大的降低了应用服务的镜像制作成本。使用Dockerfile 使镜像构建透明化,不仅仅开发团队可以理解应用运行环境,也方便运维团队理解应用运行所需条件,帮助更好的生产环境中部署该镜像。
组件
二、安装部署
安装说明
安装需求:
-
Linux kernel(内核) 3.10+
- Linux kernel cgroups and namespaces
由于Docker是建立在linux中两种核心技术之上:namespace与Cgroup,而User namespace出现的版本是3.8,所以安装docker需要内核版本大于3.10,centos6内核版本是2.6所以无法在其上使用docker。
centos7安装
1. 安装依赖
2.添加仓库
3. 查看docker版本列表
4. 安装指定版本的docker(可忽略,直接安装最新版)
5.安装最新版docker
Debian&Ubuntu
1. 更新包管理
2. 添加https包信任
3. 添加docker官方GPG 证书
4. 写入软件信息
4. 更新并安装docker
5.若安装指定版本采用如下方式
docker-ce | 5:18.09.0~3-0~debian-stretch | https://download.docker.com/linux/debian stretch/<span style="color: #000000;">stable amd64 Packages
docker-ce | 18.06.1~ce~3-0~debian | https://download.docker.com/linux/debian stretch/<span style="color: #000000;">stable amd64 Packages
docker-ce | 18.06.0~ce~3-0~debian | https://download.docker.com/linux/debian stretch/<span style="color: #000000;">stable amd64 Packages
<span style="color: #008000;">#<span style="color: #008000;">安装
sudo apt-get install docker-ce=
运行docker
停止防火墙、关闭selinux
配置镜像加速
运行docker
Engine:
Version: 18.09.2<span style="color: #000000;">
API version: 1.39 (minimum version 1.12<span style="color: #000000;">)
Go version: go1.10.6<span style="color: #000000;">
Git commit: 6247962<span style="color: #000000;">
Built: Sun Feb 10 03:47:25 2019<span style="color: #000000;">
OS/Arch: linux/amd64
三、docker基本操作
容器操作
1.启动容器
- -i:--interactive,交互式启动
- -t:--tty,分配终端
- -v:--volume,挂在数据卷
- -d:--detach,后台运行
- --name:容器名字
- --network:指定网络
- --rm:容器停止自动删除容器
- -P:自动暴露所有容器内端口,宿主随机分配端口
- -p:指定端口映射,将容器内服务的端口映射到宿主机的指定端口,可以使用多个-p
2.查看容器
docker ps [OPTIONS]
- -a:--all ,查看所有容器,包括退出和其他状态的
- -n::--last int,显示最后n个创建的容器
- -l,:--latest ,显示最近的容器
3.查看容器具体信息
docker inspect [OPTIONS] NAME|ID [NAME|ID…]
示例:
4.停止容器
5.启动已停止的容器
docker start [OPTIONS] CONTAINER [CONTAINER…]
- -a:--attach 附加终端
- -I:--interactive 交互式
6.删除容器
- -f: --force 强制删除
Ps:删除所有容器
7. 暂停某个容器
docker pause CONTAINER [CONTAINER…]
示例:
8.恢复暂停的容器
docker unpause CONTAINER [CONTAINER…]
9.查看容器日志
docker logs [OPTIONS] CONTAINER
常用选项:
- -t,--timestamps :显示日志时间
10.在已运行的容器中运行命令
- -d:--detach ,后台运行命令
- -e,--env list 设置env
- -i,--interactive 启用交互式
- -t,--tty 启用终端
- -u,--user string 指定用户 (格式:
[: ]) - -w,--workdir string 指定工作目录
示例:
11.容器导出
- -o,--output 导出的文件名称
其他导入示例
12.将容器提交为镜像
- -a,--author 指定作者
- -m,--message 本次提交的信息
- -p,--pause 提交为镜像时候暂停容器
- -c,--change list 修改镜像某些属性,列如启动命令
镜像操作
在老版本中镜像操作也是使用的docker命令,新版本进行了分组,可使用docker image 来进行镜像操作。
1.搜索镜像
docker search [OPTIONS] TERM
- --limit 限制搜索的结果条目数量,默认显示25条
2.下载镜像
TAG不写默认为最新版本latest
3.查看镜像
- -a: 查看所有已下载的镜像
- -f: --filter,过滤某些镜像
4.删除镜像
docker image rm [OPTIONS] IMAGE [IMAGE...] 或者docker rmi IMAGE
5. 镜像导出
docker save [OPTIONS] IMAGE [IMAGE...]
- -o,--output 输出到文件
6.镜像导入
常用选项:
- -i,--input 指定文件来源
7.查看镜像信息
docker image inspect [OPTIONS] IMAGE [IMAGE...]
其他
运行信息查看docker info
版本信息查看 docker version
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。