【应用容器引擎】Docker笔记
一.Docker是什么?
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的linux机器上,也可以实现虚拟化。它是一个轻量级容器技术。
二.Docker应用场景
Web 应用的自动化打包和发布。
自动化测试和持续集成、发布。
在服务型环境中部署和调整数据库或其他的后台应用。
从头编译或者扩展现有的OpenShift或Cloud Foundry平台来搭建自己的PaaS环境。
三.核心概念
Docker主机(Host):安装了Docker程序的机器(Docker直接安装在操作系统之上);
Docker客户端(Client):连接docker主机进行操作;
Docker仓库(Registry):用来保存各种打包好的软件镜像;
Docker镜像(Images):软件打包好的镜像;放在docker仓库中;
Docker容器(Container):镜像启动后的实例称为一个容器;容器是独立运行的一个或一组应用.
四.为什么要用Docker
1、简化程序:Docker 让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,便可以实现虚拟化。Docker改变了虚拟化的方式,使开发者可以直接将自己的成果放入Docker中进行管理。方便快捷已经是 Docker的最大优势,过去需要用数天乃至数周的 任务,在Docker容器的处理下,只需要数秒就能完成。
2、避免选择恐惧症:如果你有选择恐惧症,还是资深患者。Docker 帮你 打包你的纠结!比如 Docker 镜像;Docker 镜像中包含了运行环境和配置,所以 Docker 可以简化部署多种应用实例工作。比如 Web 应用、后台应用、数据库应用、大数据应用比如 Hadoop 集群、消息队列等等都可以打包成一个镜像部署。
3、节省开支:一方面,云计算时代到来,使开发者不必为了追求效果而配置高额的硬件,Docker 改变了高性能必然高价格的思维定势。Docker 与云的结合,让云空间得到更充分的利用。不仅解决了硬件管理的问题,也改变了虚拟化的方式。
五.如何使用Docker
1.docker的安装并启动(这里使用CentOS7安装的)
(1)查看当前linux的内核版本(Docker 运行在 CentOS-6.5 或更高的版本的 CentOS 上,要求系统为64位、系统内核版本为 2.6.32-431 或者更高版本。Docker 运行在 CentOS 7 上,要求系统为64位、系统内核版本为 3.10 以上。)
uname -r
如下图所示:

(2)如果内核版本过低,可以更新系统(更新软件和系统)
yum -y update
(3)安装Docker(默认安装路径是/var/lib/docker)
yum install docker
(4)安装完成后启动Docker进程
systemctl start docker
(5)查看Docker版本号
docker -v
如下图所示:

(6)Docker设置开机自启
systemctl enable docker
2.Docker命令(想了解全部命令的话可以参考其官方文档)
输入 docker 命令来查看到 Docker 客户端的所有命令选项(通过命令 docker command --help 更深入的了解指定的 Docker 命令使用方法)
.Docker的镜像操作
(1)查看镜像(查看docker仓库中的mysql)
docker search mysql
(2)下载镜像(下载mysql)
docker pull mysql
(3)使用 docker images 来列出本地主机上的镜像。(如下图)

REPOSITORY:表示镜像的仓库源
TAG:镜像的标签
IMAGE ID:镜像ID
CREATED:镜像创建时间
SIZE:镜像大小
(4)删除指定id的镜像
docker rmi image-id
4.Docker容器操作(以下列举额的都是常见的操作)
软件镜像——运行镜像——产生一个容器(正在运行的软件)
常见的容器操作:
(1)运行容器(可以不自定义名字,可能需要某些参数,例如mysql需要MYSQL_ROOT_PASSWORD):(一个镜像可以启动多个容器)
docker run --name 自定义运行后容器的名字 -d 镜像的名字:镜像的标签
(2)查看运行中的容器(搭配参数-a可以看到全部容器):
docker ps
如下图:

其中CONTAINER ID是容器的ID
NAMES是容器的名字
(3)停止运行当前容器
docker stop CONTAINER ID/NAMES
(4)删除容器
docker rm CONTAINER ID
(5)端口映射(在启动的时候添加端口映射:-p是将主机的端口映射到容器内部的端口 -d是后台运行)
docker run --name -d -p 8081:8080 镜像的名字:镜像的标签
(6)查看容器日志
docker logs CONTAINER ID/NAMES
(7)进入容器
docker exec -it mysql /bin/bash
(8)docker inspect : 获取容器/镜像的元数据。
(9)docker system prune:清理未使用的容器数据。
【应用容器引擎】Docker笔记的更多相关文章
- 你不得不了解的应用容器引擎---Docker
最近突然想搭一个redis集群玩玩,因为公司的电脑同时开2个虚拟机就卡的不行,所以我就想到用Docker开启多个redis-server来搭建.然后在网上找着找着发现,使用Docker,哪需要搭建啊, ...
- 【开发工具 docker】值得学习的应用容器引擎docker安装
概述: Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源. Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后发布到任何 ...
- Java框架Spring Boot & 服务治理框架Dubbo & 应用容器引擎Docker 实现微服务发布
微服务系统架构实践 开发语言Java 8 框架使用Spring boot 服务治理框架Dubbo 容器部署Docker 持续集成Gitlab CI 持续部署Piplin 注册中心Zookeeper 服 ...
- Kubernetes将弃用Docker!与 containerd容器引擎
时间戳:2022-06-07 20:32:19 星期二 撰写文档参考:(阿良-腾讯课堂)Kubernetes将弃用Docker 参考博客k8s入坑之路(3)containerd容器 container ...
- Docker笔记(八):数据管理
前面(哪个前面我也忘了)有说过,如果我们需要对数据进行持久化保存,不应使其存储在容器中,因为容器中的数据会随着容器的删除而丢失,而因通过将数据存储于宿主机文件系统的形式来持久化.在Docker容器中管 ...
- Docker笔记(九):网络管理
Docker的应用运行在容器中,其相互之间或与外部之间是如何通信的,涉及到哪些知识点,本文对相关内容进行整理.因网络这块牵涉的面较多,因此只从日常使用或理解的角度出发,过于专业的就不深入探讨了. 1. ...
- Docker笔记(十一):Dockerfile详解与最佳实践
Dockerfile是一个文本文件,包含了一条条指令,每条指令对应构建一层镜像,Docker基于它来构建一个完整镜像.本文介绍Dockerfile的常用指令及相应的最佳实践建议. 1. 理解构建上下文 ...
- 史上最全面的Docker容器引擎使用教程
目录 1.Docker安装 1.1 检查 1.2 安装 1.3 镜像加速 1.4 卸载Docker 2.实战Nginx 3.Docker命令小结 4.DockerFile创建镜像 4.1 Docker ...
- Centos7下安装与卸载docker应用容器引擎
Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源. Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后发布到任何流行的 Li ...
随机推荐
- LeetCode 43. 字符串相乘(Multiply Strings) 大数乘法
题目描述 给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式. 示例 1: 输入: num1 = "2" ...
- nginx查看并发数量
cat >> /etc/nginx/conf.d/status.conf << EOF server{ listen ; server_name www.test2.com; ...
- C# 中的字符串内插
$ 特殊字符将字符串文本标识为内插字符串. 内插字符串是可能包含内插表达式的字符串文本. 将内插字符串解析为结果字符串时,带有内插表达式的项会替换为表达式结果的字符串表示形式. 此功能在 C# 6 及 ...
- QA Issue: PN: startUp is upper case, this can result in unexpected behavior. [uppercase-pn]
(借用一下) 该错误直接导致生成开机启动程序无法启动,既无法生成S99***快捷链接. 解决方法:仅仅将recpie lib-Test改成lib-test就可以了,即不要有大写字母. 附启动方法: S ...
- Pytorch调整学习率
每隔一定的epoch调整学习率 def adjust_learning_rate(optimizer, epoch): """Sets the learning rate ...
- pandas的.columns和.index
可以通过.columns和.index着两个属性返回数据集的列索引和行索引 设data是pandas的一个DataFram类型的数据集. 则data.index返回一个index类型的行索引列表,da ...
- elasticsearch 冷热数据的读写分离
步骤 一.冷热分离集群配置 比如三个机器共六个node的es集群. 每个机器上各挂载一个ssd 和 一个sata.每个机器需要启动两个es进程.每个进程对应不同类型的磁盘. 关键配置: node.ma ...
- 【VS开发】ActiveX控件如何定制属性?
在很多场合下会存在这样的需求,那就是使用方在实际使用控件之前就想控件已经做了相应的处理比如加载的控件版本不正确等,或者需要在加载时才确定能够使用的功能集:这个时候传统的配置文件已经无法满足这种类型的需 ...
- 微信小程序购物车实现
1,wxml <view class="miniCart-wrap {{isIpx?'is-ipx':''}}"> <view class="miniC ...
- python 并发编程 多线程 线程理论
操作系统比作一家公司,进程相当于一个部门 线程相当于一个部门的成员 进程之间是互相隔离的 一 什么是线程 1. 每启动一个进程 至少有一个线程, 在传统操作系统中,每个进程有一个地址空间,而且默认 ...