
Docker入门
_小鱼塘
理工男,程序员
展开
-
docker学习笔记汇总
一、基本的知识储备1 容器规范为了保证容器生态的健康发展,使不同容器之间彼此兼容,成立了一个叫 Open Container Initiative(OCI) 的组织,目前OCI 发布了两个规范:runtime spec 和 image format spec;2 容器 runtime:runtime 是容器真正运行的地方;Java 程序就好比是容器,JVM 则好比是 runtime。JVM 为 Java 程序提供运行环境;同样的道理,容器只有在 runtime 中才能运行3 容器管理工具原创 2021-05-20 09:33:04 · 327 阅读 · 0 评论 -
Oracle VM VirtualBox中配置ubuntu用Host-Only和NAT方式实现虚机,主机间的相互连接
第一步:此时,通过ip a可以看到多了一个enp0s8第二步:打开文件/etc/network/interfaces,设置enp0s8IP地址# the host-only configureauto enp0s8iface enp0s8 inet static#这个要根据情况修改:#因为VirtualBox分配给主机的IP为192.168.56.1,#只要将虚拟机的设置与主机在同一网段,就可以实现相互访问了address 192.168.56.2 netmask 255.2原创 2021-05-11 19:15:13 · 576 阅读 · 1 评论 -
搭建Docker本地 Registry
官方教程Deploy a registry server | Docker DocumentationDocker Hub 虽然非常方便,但还是有些限制,比如: 需要 internet 连接,而且下载和上传速度慢。 上传到 Docker Hub 的镜像任何人都能够访问,虽然可以用私有 repository,但不是免费的。 安全原因很多组织不允许将镜像放到外网。 一、Run a local registry第一步:启动 registry 容器;docker run.原创 2021-05-10 14:59:36 · 335 阅读 · 0 评论 -
Could not get lock /var/lib/dpkg/lock-frontend - open (11: Resource temporarily unavailable)
问题描述在使用命令brctl show查看当前主机网桥的相关信息时,提示没有安装bridge-utils于是使用命令sudo apt install bridge-utils安装:出现如下错误提示解决方法sudo rm /var/lib/dpkg/lock-frontend sudo rm /var/lib/dpkg/lock最终结果...原创 2021-04-25 09:47:57 · 202 阅读 · 0 评论 -
Ubuntu启动minikube的时候报错
问题如图所示:解决方法:原创 2021-04-23 10:33:19 · 256 阅读 · 0 评论 -
把用户添加进Docker用户组
问题描述使用docker的过程中,很多情况下都需要root权限才可以;问题分析为了避免多次使用sudo命令,故在此将当前用户添加到docker组;解决过程# 添加docker用户组,一般已存在,不需要执行sudo groupadd docker# 将登陆用户加入到docker用户组中sudo gpasswd -a $USER docker# 更新用户组 newgrp docker# 测试docker命令是否可以使用sudo正常使用docker version原创 2021-04-07 10:06:50 · 16510 阅读 · 1 评论 -
Ubuntu安装Docker 时遇到的一个问题
Ubuntu安装Docker 时遇到的一个问题问题描述:ubuntu 的包管理是通过 apt-get 来做的,但是默认的 apt-get 里面是没有包含 docker 的软件包的,我们需要将 Docker 的官方仓库加进来;1 更新 ubuntu 的 apt 源索引:sudo apt-get update2 安装包允许apt通过HTTPS使用仓库sudo apt-get install \ apt-transport-https \ ca-certifi...原创 2020-10-28 15:08:48 · 715 阅读 · 0 评论 -
Docker入门之-存储(三):volume 生命周期管理
Data Volume 中存放的是重要的应用数据,如何管理 volume 对应用至关重要;备份因为 volume 实际上是 host 文件系统中的目录和文件,所以 volume 的备份实际上是对文件系统的备份。还记得前面我们是如何搭建本地 Registry 的吗?所有的本地镜像都存在 host 的 /myregistry 目录中,我们要做的就是定期备份这个目录;恢复vo...原创 2019-12-10 20:59:17 · 253 阅读 · 0 评论 -
Docker入门之-存储(二):数据共享的几种方式
数据共享是 volume 的关键特性;一、容器与 host 共享数据我们有两种类型的 data volume,它们均可实现在容器与 host 之间共享数据,但方式有所区别;对于 bind mount 是非常明确的:直接将要共享的目录 mount 到容器;docker managed volume 就要麻烦点,由于 volume 位于 host 中的目录,是在容器启动时才生成,所以需...原创 2019-12-10 20:58:28 · 635 阅读 · 0 评论 -
Docker入门之-存储(一):两类存储资源
Docker 为容器提供了两种存放数据的资源,一种是由 storage driver 管理的镜像层和容器层,另一种是Data Volume;一、storage driver在学习镜像的时候我们知道,Docker 镜像的分层结构:容器由最上面一个可写的容器层,以及若干只读的镜像层组成,容器的数据就存放在这些层中。这样的分层结构最大的特性是 Copy-on-Write:新数据会直接存放在最...原创 2019-12-09 21:27:30 · 547 阅读 · 0 评论 -
Docker入门之-网络(三):容器如何与外部世界通信
这里涉及两个方向:容器访问外部世界和外部世界访问容器;一、容器访问外部世界在我们当前的实验环境下,docker host 是可以访问外网的:看一下容器是否也能访问外网呢:可见,容器默认就能访问外网,请注意:这里外网指的是容器网络以外的网络环境,并非特指 internet;我们应该理解现象下的本质:busybox 位于docker0这个私有 bridge 网络...原创 2019-12-09 21:27:14 · 1262 阅读 · 0 评论 -
Docker入门之-网络(二):容器间的通信
一、理解容器之间的连通性上次创建了两个 busybox 容器都挂在 my_net2 上,应该能够互通,我们验证一下:可见同一网络中的容器、网关之间都是可以通信的,但是注意,my_net2与默认 bridge 网络能通信吗?两个网络属于不同的网桥,应该不能通信,我们通过实验验证一下:确实 ping 不通,符合预期确实,如果 host 上对每个网络的都有一条路由,同时操...原创 2019-12-09 21:27:07 · 357 阅读 · 0 评论 -
Docker入门之-网络(一):默认网络和自定义网络
一、none和host网络Docker 网络从覆盖范围可分为单个 host 上的容器网络和跨多个 host 的网络,先来重点学习前一种;Docker 安装时会自动在 host 上创建三个网络,我们可用docker network ls命令查看;none 网络故名思议,none 网络就是什么都没有的网络,挂在这个网络下的容器除了 lo,没有其他任何网卡,容器创建时,可以...原创 2019-12-06 19:03:49 · 817 阅读 · 1 评论 -
docker容器内找不到命令,bash: ip: command not found
问题描述在学习Docker网络知识的时候,执行docker exec -it 短id bash,进入到容器中,执行命令ip a查看网络状态的时候,提示bash: ip: command not found;解决方法百度谷歌之后,发现主要原因是docker的base镜像只包含简单的操作系统,其他命令需要自己安装;/usr/local/apache2# apt update &a...原创 2019-12-06 19:03:36 · 4145 阅读 · 1 评论 -
在linux虚拟机上安装docker入门
本文开发环境为Ubuntu 18.04.2LTS 64位系统,通过apt的docker官方源安装最新的Docker CE(Community Edition),即Docker社区版;安装步骤1 检查内核版本,必须是3.10及以上$ uname -a$ cat /proc/version$ cat /etc/issue$ lsb_release -a 2...原创 2019-08-15 14:06:31 · 737 阅读 · 0 评论 -
docker命令不需要敲sudo的方法
最近刚开始接触docker,使用命令时都要额外的输入sudo,特别烦,于是百度谷歌尝试数次,才成功解决,在此记录下解决步骤:1 创建一个docker组$ sudo groupadd docker2 添加当前用户到docker组$ sudo usermod -aG docker $USER//sudo usermod -aG docker yundong3登出,重新...原创 2019-08-15 15:49:57 · 592 阅读 · 0 评论 -
Docker入门之-容器(四)
容器的底层实现技术cgroup 和 namespace 是最重要的两种技术。cgroup 实现资源限额, namespace 实现资源隔离;cgroupcgroup 全称 Control Group。Linux 操作系统通过 cgroup 可以设置进程使用 CPU、内存 和 IO 资源的限额;前面我们看到的--cpu-shares、-m、--device-write-bps实际上...原创 2019-12-05 19:31:34 · 182 阅读 · 0 评论 -
Docker入门之-容器(三)
容器:资源限制一个 docker host 上会运行若干容器,每个容器都需要 CPU、内存和 IO 资源;对于容器,Docker 也提供了类似的机制避免某个容器因占用太多资源而影响其他容器乃至整个 host 的性能;一、内存限额与操作系统类似,容器可使用的内存包括两部分:物理内存和 swap。 Docker 通过下面两组参数来控制容器内存的使用量。-m或--memory:设置内...原创 2019-12-05 19:31:07 · 232 阅读 · 0 评论 -
Docker警告:Your kernel does not support swap limit capabilities or the cgroup is not mounted
问题描述最近在学习Docker,运行docker命令时出现如下警告:百度了很久,才发现,这是在ubuntu或其他基于Debian的系统上才会出现的问题,原因是系统默认未开启swap限制;解决方法首先使用sudo -i获取系统sudo权限其次,修改系统的/etc/default/grub file文件。使用vim在这个文件中添加一行;GRUB_CMDLINE_LI...原创 2019-12-05 19:31:21 · 12593 阅读 · 1 评论 -
Docker入门之-容器(二)
容器的常规操作stop/start/restart 容器容器在 docker host 中实际上是一个进程,docker stop命令本质上是向该进程发送一个 SIGTERM 信号。如果想快速停止容器,可使用docker kill命令,其作用是向容器进程发送 SIGKILL 信号通过docker stop可以停止运行的容器如果想快速停止容器,可使用docker k...原创 2019-12-05 19:30:53 · 399 阅读 · 1 评论 -
Docker入门之-容器(一)
容器的基本操作:运行容器一、运行容器docker run是启动容器的方法,在前面学习Dockerfile 时已经知道,可以通过CMD 、ENDPOINT 指令和docker run命令指定容器启动时执行的命令;如下所示:容器启动时执行pwd,返回的/是容器中的当前目录执行docker ps或docker container ls可以查看 Docker hos...原创 2019-12-05 19:30:46 · 1138 阅读 · 0 评论 -
Docker入门之-镜像(二)
一、镜像命名的最佳实践前面已经学习了如何利用Dockerfile文件构建自己的镜像了,接下来的问题是如何在多个 Docker Host 上使用镜像? 用相同的 Dockerfile 在其他 host 构建镜像。 将镜像上传到公共 Registry(比如 Docker Hub),Host 直接下载使用。 搭建私有的 Registry 供本地 Host 使用 无论采用...原创 2019-12-04 19:38:38 · 150 阅读 · 0 评论 -
Docker入门之--Dockerfile相关操作
先回顾一下通过 Dockerfile 构建镜像的过程: 从 base 镜像运行一个容器。 执行一条指令,对容器做修改。 执行类似 docker commit 的操作,生成一个新的镜像层。 Docker 再基于刚刚提交的镜像运行一个新容器。 重复 2-4 步,直到 Dockerfile 中的所有指令执行完毕 一、调试 Dockerfile包括 D...原创 2019-12-04 19:37:27 · 156 阅读 · 0 评论 -
Docker容器安装软件报E: Unable to locate package的错误
问题描述最近在学习Docker容器,运行ubuntu容器后,发现没有vim,在使用命令apt-get install -y vim的过程中报错错误如下:解决方法:终端执行apt-get update命令,等更新完毕以后再敲命令:apt-get install vim命令即可这个命令的作用是:同步 /etc/apt/sources.list 和 /etc/apt...原创 2019-12-03 16:21:41 · 5089 阅读 · 2 评论 -
Docker入门之-镜像(一)
镜像是 Docker 容器的基石,容器是镜像的运行实例,有了镜像才能启动容器;如果只是使用镜像,直接通过docker命令下载和运行就可以了,但如果我们想创建自己的镜像,或者想理解 Docker 为什么是轻量级的,则要讨论镜像的内部结构;一 、hello-world 镜像hello-world 是 Docker 官方提供的一个镜像,通常用来验证 Docker 是否安装成功;使用...原创 2019-12-03 19:53:48 · 244 阅读 · 0 评论 -
Docker 架构详解和各组件协作运行
Docker 的核心组件包括: Docker 客户端 - Client Docker 服务器 - Docker daemon Docker 镜像 - Image Registry Docker 容器 - Container Docker 采用的是 Client/Server 架构:客户端向服务器发送请求,服务器负责构建、运行和分发容器。客户端和服务...原创 2019-12-03 11:40:43 · 523 阅读 · 0 评论 -
搭建实验环境,运行第一个Docker容器
环境选择容器需要管理工具、runtime 和操作系统,我们的选择如下:管理工具 - Docker Engineruntime - runc操作系统 - Ubuntu安装 DockerDocker 支持几乎所有的 Linux 发行版,也支持 Mac 和 Windows。本节我们将在Ubuntu 18.04.2 LTS 虚拟机中安装 Docker;查看Ubuntu版本:...原创 2019-12-03 10:57:03 · 326 阅读 · 0 评论 -
Docker入门之--基本概念和构成
最近一直在看CloudMan的《每天5分钟玩转 Docker 容器技术》,觉得有必要把一些重点的知识记录总结一下,故有此博文;本文章仅仅用我我自己的学习使用,没有任何商业用途,所以如果涉及到版权啥的,请联系我删除;一谈到容器,大家都会想到 Docker,Docker 现在几乎是容器的代名词,同时,也需要知道围绕 Docker 还有一个生态系统,Docker 是该生态系统的基石,完善的生态系统才...原创 2019-12-03 10:16:01 · 139 阅读 · 0 评论