Docker
文章平均质量分 73
虚拟化
凤舞飘伶
这个作者很懒,什么都没留下…
展开
-
如何优雅的终止 Docker 容器
如何优雅的终止 Docker 容器原创 2023-10-11 17:18:59 · 273 阅读 · 0 评论 -
docker
较旧版本的Docker被称为docker或者docker-engine,若是已经安装,必须卸载它们和它们的依赖项。sudo yum -y remove \ docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker...原创 2020-01-10 16:10:55 · 92 阅读 · 0 评论 -
Docker 网络命名空间
docker 常常使用 linux netns 实现网络资源隔离,但使用 ip netns 命令却无法查看,这是因为 docker 默认把创建的网络命名空间链接文件隐藏起来了,导致 ip netns 命令无法读取,可以通过下面的方法复现 docker 的 ip netns 命名空间。# 创建一个带有桥接网络的 docker 容器$ docker run -it -d --rm --name mytest --network bridge cirros /bin/shc093857c756028b4.原创 2021-03-19 14:23:59 · 542 阅读 · 0 评论 -
docker搭建ldap
1.下载镜像docker pull osixia/openldapdocker pull docker.io/osixia/phpldapadmin2.运行镜像docker run -dit --name ldap23 --restart=always -p 389:389 -p 636:636 -e LDAP_ORGANISATION=”test” -e LDAP_DOMAIN=”test.com” -e LDAP_ADMIN_PASSWORD=123456″ osixia/openld原创 2022-04-16 15:19:17 · 1891 阅读 · 0 评论 -
Docker 数据管理介绍
默认容器的数据是保存在容器的可读写层,当容器被删除时其上的数据也会丢失,所以为了实现数据的持久性则需要选择一种数据持久技术来保存数据。官方提供了三种存储方式:Volumes、Bind mounts和tmpfs。前面还介绍了:Docker 服务终端 UI 管理工具数据存储方式从现在开始,我们学习Docker 容器的数据存储方式,你也可以先了解一下Docker 数据持久化的三种方案。Bind mount 会覆盖容器中的文件,而 volume mount 则不会。即如果容器中已有文件,则会将文件同步.原创 2021-03-15 14:11:39 · 85 阅读 · 0 评论 -
infludb镜像
influxDB1.8镜像原创 2023-01-09 17:07:22 · 100 阅读 · 0 评论 -
docker无网安装
#!/bin/shusage(){ echo "Usage: $0 FILE_NAME_DOCKER_CE_TAR_GZ" echo " $0 docker-17.09.0-ce.tgz" echo "Get docker-ce binary from: https://download.docker.com/linux/static/stable/x86_64/" echo "eg: wget https://download.docker.com/linux/stati.原创 2020-07-08 11:02:12 · 660 阅读 · 0 评论 -
docker脚本
#!/bin/bashPROC="$0"RUN_PATH=$(cd "$(dirname "$PROC")"; pwd)PROJECT_NAME="gtms"DATA_IMAGE_NAME="gtms-data"DBSCALE_CHECKER="dbscale-checker"# docker run parametersLOCAL_IP="20.196.87.68"PRIVILEGED="--privileged"SSL="0"PORT="19101"REPO_DIR="/re.原创 2020-07-08 10:53:03 · 598 阅读 · 0 评论 -
容器底层实现技术Namespace/Cgroup
Docker容器实现原理 Docker容器在实现上是通过namespace技术来进行进程隔离,通过cgroup技术实现容器进程可用资源的限制,当docker启动一个容器时,实际是创建了多了namespace参数的进程。NamespaceNamespace:命名空间作用:资源隔离原理:namespace将内核的全局资源进行封装,使得每个namespace都有一份独立的资源,因此不同进程在各自namespace内对同一种资源使用不会相互干扰...原创 2021-03-30 15:16:16 · 382 阅读 · 1 评论 -
如何修改Docker的镜像源
改或新增/etc/docker/daemon.json 文件 vi/etc/docker/daemon.json添加需要修改的国内镜像源镜像源{"registry-mirrors":["http://hub-mirror.c.163.com"]}重启Docker服务Systemctlrestart docker.service方法二修改或新增 /etc/sysconfig/docker,在OPTIONS变量后追加参数 --regist...转载 2021-03-30 15:31:35 · 2803 阅读 · 0 评论 -
10张图带你深入理解Docker容器和镜像
这篇文章希望能够帮助读者深入理解Docker的命令,还有容器(container)和镜像(image)之间的区别,并深入探讨容器和运行中的容器之间的区别。当我对Docker技术还是一知半解的时候,我发现理解Docker的命令非常困难。于是,我花了几周的时间来学习Docker的工作原理,更确切地说,是关于Docker统一文件系统(the union file system)的知识,然后回过头来再看Docker的命令,一切变得顺理成章,简单极了。题外话:就我个人而言,掌握一门技术并合理使用它的.转载 2021-03-02 14:03:46 · 198 阅读 · 0 评论 -
Docker容器间网络通信
自从Docker容器出现以来,容器网络通信就一直是被关注的焦点,也是生产环境的迫切需求。容器网络通信又分为两大方面:单主机容器上的相互通信,和跨主机的容器相互通信。一、Docker单主机容器通信基于对net namespace的控制,docker可以为在容器创建隔离的网络环境,在隔离的网络环境下,容器具有完全独立的网络栈,与宿主机隔离,也可以使容器共享主机或者其他容器的网络命名空间,基本可以满足开发者在各种场景下的需要。按docker官方的说法,docker容器的网络有五种模式:bridge模式,转载 2021-08-04 14:59:29 · 3119 阅读 · 0 评论 -
Docker常用命令
对于这些none标签的images,可以通过下面的脚本进行删除(如果无法删除none的images,一般重启docker服务后即可解决):[root@localhost ~]# vim none_images_rm.sh#!/bin/bashdockerps -a |grep "Exited" |awk '{print $1 }'|xargs docker stopdockerps -a |grep "Exited" |awk '{print $1 }'|xargs dockerrmdocker.原创 2021-08-03 15:11:06 · 467 阅读 · 0 评论 -
监控docker
监控docker原创 2023-01-10 16:22:18 · 323 阅读 · 0 评论 -
docker配置文件
daemon.json{"api-cors-header":"","authorization-plugins":[],"bip":"","bridge":"","cgroup-parent":"","cluster-store":"","cluster-store-opts":{},"cluster-advertise":"","debug":true, #启用debug的模式,启用后,可以看到很多的启动信息。默认false"default-gateway":"","defau原创 2021-08-05 10:56:53 · 696 阅读 · 0 评论 -
Docker目录挂载
Docker容器启动的时候,如果要挂载宿主机的一个目录,可以用-v参数指定。譬如我要启动一个centos容器,宿主机的/test目录挂载到容器的/soft目录,可通过以下方式指定:# docker run -it -v /test:/soft centos /bin/bash这样在容器启动后,容器内会自动创建/soft的目录。通过这种方式,我们可以明确一点,即-v参数中,冒号":"前面的目录是宿主机目录,后面的目录是容器内目录。貌似简单,其实不然,下面我们来验证一下:一、容器目录不可以为原创 2021-06-23 08:56:41 · 3538 阅读 · 0 评论 -
Docker原理剖析
一、简介1、了解Docker的前生LXCLXC为Linux Container的简写。可以提供轻量级的虚拟化,以便隔离进程和资源,而且不需要提供指令解释机制以及全虚拟化的其他复杂性。相当于C++中的NameSpace。容器有效地将由单个操作系统管理的资源划分到孤立的组中,以更好地在孤立的组之间平衡有冲突的资源使用需求。与传统虚拟化技术相比,它的优势在于:(1)与宿主机使用同一个内核,性能损耗小;(2)不需要指令级模拟;(3)不需要即时(Just-in-time)编译...原创 2021-03-13 11:18:00 · 269 阅读 · 0 评论 -
Docker挂了,数据如何找回
docker在实际使用中,让运维人员诟病的,除了安全问题外,大概就是数据的问题了很多人在初用docker的时候,很多时候都忘记或不知道docker中需要保留的数据需要挂载到宿主机文件夹到容器内部对应目录(当然除了挂载宿主机目录,还有其他解决方案,我们后面会有文章介绍)当容器因为某些原因挂掉、无法重新启动的时候,他们就认为数据丢失了,找不回了,这也是很多人对docker的一个认识误区,网上没有一篇文章说docker数据的问题,今天详细解释下,docker数据在哪里首先说一下这边以...转载 2021-04-02 11:28:46 · 1110 阅读 · 0 评论 -
Docker容器网络解析
Docker 容器网络的发展历史在 Dokcer 发布之初,Docker 是将网络、管理、安全等集成在一起的,其中网络模块可以为容器提供桥接网络、主机网络等简单的网络功能。从 1.7 版本开始,Docker正是把网络和存储这两部分的功能都以插件化形式剥离出来,允许用户通过指令来选择不同的后端实现。剥离出来的独立容器网络项目叫 libnetwork。在 1.9 版本时,Docker 又引入了一整套 network 子命令和跨主机网络支持,这允许用户可以根据他们应用的拓扑结构创建虚...原创 2021-03-13 15:04:55 · 352 阅读 · 0 评论 -
Docker 数据持久化的三种方案
容器中的数据可以存储在容器层。但是将数据存放在容器层存在以下问题: 数据不是持久化。意思是如果容器删除了,这些数据也就没了 主机上的其它进程不方便访问这些数据 对这些数据的I/O会经过存储驱动,然后到达主机,引入了一层间接层,因此性能会有所下降 Docker 提供了3种持久化数据的方式: volumes:存于主机文件系统中的某个区域,由Docker管理(/var/lib/docker/volumes/ on linux)。非Docker进程不应该修改这些数据。卷是Dock原创 2021-03-15 14:15:48 · 579 阅读 · 0 评论 -
Docker容器的重启策略
1. Docker容器的重启策略Docker容器的重启策略是面向生产环境的一个启动策略,在开发过程中可以忽略该策略。Docker容器的重启都是由Docker守护进程完成的,因此与守护进程息息相关。Docker容器的重启策略如下:no,默认策略,在容器退出时不重启容器on-failure,在容器非正常退出时(退出状态非0),才会重启容器on-failure:3,在容器非正常退出时重启容器,最多重启3次always,在容器退出时总是重启容器unless-stopped,在容器退出时总是重原创 2021-08-05 14:23:29 · 1705 阅读 · 0 评论 -
DOCKERFILE参数注解
Dockerfile由一行行命令语句组成,并且支持以#开头的注释行。 一般的,Dockerfile 分为四部分:基础镜像信息、维护者信息、镜像操作指令和容器启动时执行指令 指令 描述 格式 from 指定基础镜像,它是最重要的一个且必须为dokefile文件开篇的第一个非注释行,用于为镜像文件构建过程中指定基础镜像,后续的指令运行于此基准镜像所提供的运行环境 默认,docke会在本机寻找指定的镜像,找不到的时候则从docke hub regi...原创 2020-12-17 09:46:43 · 2396 阅读 · 0 评论 -
Docker容器网络
Docker的技术依赖于Linux内核的虚拟化技术的发展,Docker使用到的网络技术有Network Namespace、Veth设备对、Iptables/Netfilter、网桥、路由等。接下来,我将以Docker容器网络实现的基础技术来分别阐述,在到真正的容器篇章节之前,能形成一个稳固的基础知识网。Network Namespace为了支持网络协议栈的多个实例,Linux在网络栈引入了Network Namespace,这些独立的协议栈被隔离到不同的Namespace中,处于不同Name...转载 2021-03-03 15:14:07 · 200 阅读 · 1 评论 -
【Docker】容器镜像有哪些特性
首先解释一下什么是Docker镜像?Docker镜像它其实是一个模板,拥有这个模板我们才能创建我们的Docker容器,镜像里含有启动 docker 容器所需的文件系统结构及其内容,因此是启动一个 docker 容器的基础。docker 镜像的文件内容以及一些运行 docker 容器的配置文件组成了 docker 容器的静态文件系统运行环境:rootfs。可以这么理解,docker 镜像是 docker 容器的静态视角,docker 容器是 docker 镜像的运行状态。我们可以通过下图来理解 do.原创 2021-03-30 10:48:41 · 1045 阅读 · 0 评论 -
Linux namespace之:network namespace
理解network namespacenetwork namespace用来隔离网络环境,「在network namespace中,网络设备、端口、套接字、网络协议栈、路由表、防火墙规则等都是独立的」。因network namespace中具有独立的网络协议栈,因此每个network namespace中都有一个lo接口,但lo接口默认未启动,需要手动启动起来。#-n或--net选项用于创建networknamespace$sudounshare-n/bin/bash#默认...转载 2021-02-25 16:25:28 · 2627 阅读 · 1 评论 -
Linux namespace之:mount namespace
理解mount namespace用户通常使用mount命令来挂载普通文件系统,但实际上mount能挂载的东西非常多,甚至连现在功能完善的Linux系统,其内核的正常运行也都依赖于挂载功能,比如挂载根文件系统/。其实所有的挂载功能和挂载信息都由内核负责提供和维护,mount命令只是发起了mount()系统调用去请求内核。mount namespace可隔离出一个具有独立挂载点信息的运行环境,内核知道如何去维护每个namespace的挂载点列表。即「每个namespace之间的挂载点列表是独立的,各自转载 2021-02-25 15:35:54 · 4482 阅读 · 1 评论 -
Linux namespace之:uts namespace
理解uts namespaceuts(UNIX Time-Sharing System) namespace可隔离hostname和NIS Domain name资源,使得一个宿主机可拥有多个主机名或Domain Name。换句话说,可让不同namespace中的进程看到不同的主机名。例如,使用unshare命令(较新版本Linux内核还支持nscreate命令)创建一个新的uts namespace:#-u或--uts表示创建一个utsnamespace#这个namespace中运行...转载 2021-02-25 14:57:34 · 1267 阅读 · 1 评论 -
Linux namespace概述
操作系统通过虚拟内存技术,使得每个用户进程都认为自己拥有所有的物理内存,这是操作系统对内存的虚拟化。操作系统通过分时调度系统,每个进程都能被【公平地】调度执行,即每个进程都能获取到CPU,使得每个进程都认为自己在进程活动期间拥有所有的CPU时间,这是操作系统对CPU的虚拟化。从这两种虚拟化方式可推知,当使用某种虚拟化技术去管理进程时,进程会认为自己拥有某种物理资源的全部。虚拟内存和分时系统均是对「物理资源」进行虚拟化,其实操作系统中还有很多「非物理资源」,比如用户权限系统资源、网络协议栈资源、文件系转载 2021-02-25 14:45:13 · 8809 阅读 · 1 评论