容器

docker容器中安装vim

主宰稳场 提交于 2019-12-18 01:40:12
在使用docker容器时。有时候里边没有安装vim。敲vim命令时提示说:vim: command not found,这个时候就须要安装vim,但是当你敲apt-get install vim命令时,提示: Reading package lists... Done Building dependency tree Reading state information... Done E: Unable to locate package vim 这时候须要敲:apt-get update。这个命令的作用是:同步 /etc/apt/sources.list 和 /etc/apt/sources.list.d 中列出的源的索引。这样才干获取到最新的软件包。 等更新完成以后再敲命令:apt-get install vim命令就可以。 来源: https://www.cnblogs.com/zhchoutai/p/8440766.html

kubernetes 容器健康及就绪检测

我与影子孤独终老i 提交于 2019-12-18 00:51:20
1.健康检测 exec探测 apiVersion: v1 kind: Pod metadata: name: liveness-exec spec: containers: - name: liveness-demo image: busybox args: #容器初始化执行的命令 - /bin/sh - -c - touch /tmp/healthy; sleep 10; rm -rf /tmp/healthy; sleep 600 #表示,容器一运行就创建一个文件,睡上10s,再删除这个文件 livenessProbe: #健康检测 exec: #ExecAction,在容器中执行特定的命令,命令退出返回0表示成功 #TCPSocketAction,根据容器IP地址及特定的端口进行TCP检查,端口开放表示成功 #HTTPGetAction,根据容器IP、端口及访问路径发起一次HTTP请求,如果返回码在200到400之间表示>成功 command: - cat - /tmp/healthy #这里用exec探测,不停探测"/tmp/healthy"是否存在,不在了就重启 http 探测 apiVersion: v1 kind: Pod metadata: name: liveness-http spec: containers: - name: liveness-http

Docker 镜像的制作

假如想象 提交于 2019-12-17 22:54:49
1、登录docker docker ecex –it 容器名/容器id /bin/bash 例如: docker exec –it tomcat /bin/bash 1)、使用docker attach进入Docker容器,存在多个窗口同步和拥塞问题 sudo docker attach 44fc0f0582d9 2)、使用SSH进入Docker容器(不建议) 3)、使用nsenter进入Docker容器 4)、docker inspect 查看容器信息 sudo docker inspect tomcat 5)、使用docker exec进入Docker容器 sudo docker exec --help sudo docker exec -it tomcat /bin/bash 2、查看容器大小 说明:Docker容器是基于镜像的读写层,它是可读可写的。读写某个文件的时候,是从镜像中将那个文件复制到容器的读写层,然后对复制的文件进行读写,而原文件依然在镜像中。而且,这个容器的读写层也是占用磁盘空间的。 步骤1:先确认容器文件的默认路径 默认情况下为/var/lib/docker/containers 步骤2:进入容器目录 cd /var/lib/docker/containersdu -sh * 步骤3:查看所有容器的大小 du -sh * 步骤3:查看某个容器的大小 du

容器化之后如何节省云端成本?(二十六)

爷,独闯天下 提交于 2019-12-17 21:28:37
前言 Kubernetes的教程一直在编写,目前已经初步完成了以下内容: 1)基础理论 2)使用Minikube部署本地Kubernetes集群 3)使用Kubeadm创建集群 接下来还会逐步完善本教程,比如Helm、ELK、Windows Server容器等等。 目录 Kubernetes主体架构 1.1.主要核心组件 1.1.1. Master组件 1.1.2. 节点(Node)组件 1.1.3. 插件 1.2. 基本概念 1.2.1. 容器组(Pod) 1.2.2. 服务(Service) 1.2.3. 卷(Volume) 1.2.4. 标签(Labels)和标签选择器(Label Selector) 1.2.5. 复制控制器(Replication Controller,RC) 1.2.6. 副本集控制器(Replica Set,RS) 1.2.7. 部署控制器(Deployment) 1.2.8. StatefulSet 1.2.9. 后台支撑服务集(DaemonSet) 1.2.10. 一次性任务(Job) Kubernetes主体架构 k8s的整体架构如下图所示: C:\Users\Lys_Desktop\Documents\Tencent Files\512982554\FileRecv\思维导图1.png 1.1主要核心组件 1.1.1Master组件

如何理解LXC与Docker之间的主要区别

删除回忆录丶 提交于 2019-12-17 20:39:55
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 两者的概述 容器技术独立运行并且从主机系统上封装应用程序工作量。把容器想象成可以安装和运行应用程序的主机操作系统里面的操作系统,从实用目的来讲,它就像一个虚拟机。 LXC项目给不同配置和用户空间应用提供最小的容器操作样本来管理容器生命周期, LXC项目的这个特性和Linux内核使模仿机制能够正常启用。 便携性 容器技术将应用从主机操作系统上解耦下来,摘录该程序并且使之在任意支持LXC的系统上都实现轻便化。低调的说法就是:非常好用。用户在这样一个原始和最小库的Linux操作系统上可以在容器里运行任何程序(就像是在容器里运行LAMP堆栈)。 因为应用程序和工作量是相对独立的,所以用户可以运行多版本的语言,比如PHP,Python,Ruby,Apache,这些语言都可以共存,隐藏在容器里。实现云计算,就好比是这些例子和工作量都可以灵活的被移动到别的系统,复制,以及快速配置。 难道虚拟技术就做不到吗? 不不不,虚拟技术也可以做到,但是会有一定程度的性能损失,灵活度也会下降。容器技术不是模仿硬件层次,而是在Linux内核里使用cgroup和namespaces来打造轻便的、将近裸机速度的虚拟技术操作系统环境。因为不是虚拟化存储,所以容器技术不会管底层存储或者文件系统,而是你放哪里,它操作哪里。

docker容器启动参数

喜你入骨 提交于 2019-12-17 19:10:01
docker run [option] 镜像名 [向启动容器中传入的命令] 常用可选参数说明: -i 表示以“交互模式”运行容器 -t 表示容器启动后会进入其命令行。加入这两个参数后,容器创建就能登录进去。即 分配一个伪终端。 --name 为创建的容器命名 -v 表示目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录,即 宿主机目录:容器中目录),可以使 用多个-v 做多个目录或文件映射。注意:最好做目录映射,在宿主机上做修改,然后 共享到容器上。 -d 在run后面加上-d参数,则会创建一个守护式容器在后台运行(这样创建容器后不 会自动登录容器,如果只加-i -t 两个参数,创建后就会自动进去容器)。 -p 表示端口映射,前者是宿主机端口,后者是容器内的映射端口。可以使用多个-p 做多个端口映射 -e 为容器设置环境变量 --network=host 表示将主机的网络环境映射到容器中,容器的网络与主机相同 来源: https://www.cnblogs.com/li-bing/p/9676553.html

使用Dockerfile构建Nginx,Tomcat,MySQL镜像

感情迁移 提交于 2019-12-17 18:26:16
实验环境说明 本机IP地址:192.168.10.157 构建mysql镜像时,验证的主机IP;192.168.10.149 构建Nginx镜像 1、下载基础镜像——centos镜像 docker pull centos 2、创建工作目录 mkdir /opt/nginx cd /opt/nginx/ 3、创建并编写Dockerfile文件 vim Dockerfile FROM centos MAINTAINER this is nginx image <xxy> RUN yum install -y wget proc-devel net-tools gcc zlib zlib-devel make openssl-devel RUN wget http://nginx.org/download/nginx-1.9.7.tar.gz RUN tar zxvf nginx-1.9.7.tar.gz WORKDIR nginx-1.9.7 RUN ./configure --prefix=/usr/local/nginx && make && make install EXPOSE 80 //http EXPOSE 443 //https RUN echo "daemon off;">>/usr/local/nginx/conf/nginx.conf //关闭守护进程

服务器的实现NIO与BIO

独自空忆成欢 提交于 2019-12-17 18:22:32
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 服务器的实现不止有这两种方式。 先谈谈题主说的这两种服务器模型: 1、收到一个请求就处理,这个时候就不能处理新的请求,这种为阻塞 这个是单线程模型,无法并发,一个请求没处理完服务器就会阻塞,不会处理下一个请求。一般的服务器不会使用这种方式实现。 2、收到一个请求就新开一个线程去处理任务,主线程返回,继续处理下一个任务,这种为非阻塞 首先纠正一个错误,这并不是非阻塞, 它也是阻塞的 。相对第一个模型来说,它解决了主线程阻塞的问题,有了一定程度的并发量,但是在每个新开的线程中还是阻塞的。如果100个人同时访问,将会开100个线程,那1000个人,10000个人呢?频繁开关线程很消耗资源,这样实现的服务器性能依然不高。 除了上面的两种方式,接下来的说说其他更好的方式: 3、类似2的模型,但是不是每次收到请求就开一个新的线程,而是使用线程池 如果不了解线程池,你可能会了解数据库连接池,由于频繁创建、关闭数据库连接会消耗资源,所以会用数据库连接池来保存一定数量的连接,如果需要就从连接池里取连接,不需要则放回连接池,不在频繁创建。线程池也是一样的道理,线程池管理多线程,性能比频繁创建线程高得多。这种方式实现的服务器性能会比2高。不过, 它依然是阻塞的 。线程池的线程数量通常有限制的,如果所有线程都被阻塞(例如网速慢

Docker容器利用Apache httpd部署前端静态页面

岁酱吖の 提交于 2019-12-17 17:05:39
1. 拉取centos镜像 docker search centos docker pull centos :centos7 2.运行镜像将容器跑起来 docker run -d -it -p 10.20.10.153:83:80 --privileged centos:centos7 /usr/sbin/init 注意:端口映射、httpd.service服务注册 3.进入容器 4. yum install httpd 5. 将前端代码frond_end.tar.gz 解压到/var/www/html目录下 httpd.conf配置文件documentroot 的默认目录 注意:查看解压的文件是否正确解压和路径权限够不够 6.不要修改http.conf默认配置 7.启动httpd服务 systemctl start httpd.service systemctl status httpd.service -l 查看服务状态是否正常启动 8.本地访问宿主机 10.20.10.153:83 verify网站是否正常能访问 /var/log/httpd/error_log 来源: CSDN 作者: Chao Hsin-fang 链接: https://blog.csdn.net/weixin_43866211/article/details/103510574

H5 手机 App 开发入门:技术篇

允我心安 提交于 2019-12-17 17:04:49
新人学习手机 App 开发,一开始总要选择一条学习路径。 如果你熟悉 Java 语言,可以学习安卓开发;如果熟悉脚本语言(比如 Python 或 Ruby),可以学习 Swift 语言,进行 iOS 开发;如果像我一样,比较熟悉 Web 网页技术,那么 H5 开发是最容易上手的。 这个系列教程的第一篇,已经介绍过了 手机 App 的种类 。所谓的 H5 页面,其实就是混合 App 的前端,外面是一个原生的壳,里面是 Web 网页。本文紧接上一篇,介绍手机 App 开发的技术栈,尤其是跟 H5 开发相关的技术。 本文由国内最大的在线教育平台之一 "腾讯课堂" 赞助。他们现在启动了 "腾讯课堂101计划" ,推广优质课程资源。希望学习和提高手机 App 开发技术的朋友,可以留意一下本文结尾的安卓课程信息。 一、手机 App 的技术栈 手机 App 的技术栈可以分成三类。 (1) 原生 App 技术栈 (native technology stack) 原生技术栈指的是,只能用于特定手机平台的开发技术。比如,安卓平台的 Java 技术栈,iOS 平台的 Object-C 技术栈或 Swift 技术栈。 这种技术栈只能用在一个平台,不能跨平台。 (2) 混合 App 技术栈 (hybrid technology stack) 混合技术栈指的是开发混合 App 的技术,也就是把 Web