搜档网
当前位置:搜档网 › 进入创建好的Docker容器----用xshell连接

进入创建好的Docker容器----用xshell连接

进入创建好的Docker容器----用xshell连接
进入创建好的Docker容器----用xshell连接

解决方法:

成功进入容器,说明容器sshd服务运行正常。

Docker网络配置

Docker网络配置 摘要 当docker启动时,它会在宿主机器上创建一个名为docker0的虚拟网络接口。它会从RFC 1918定义的私有地址中随机选择一个主机不用的地址和子网掩码,并将它分配给docker0。例如当我启动docker几分钟后它选择了172.17.42.1/16-一个16位的子网掩码为主机和它的容器提供了65,534个ip地址。 但docker0并不是正常的网络接口。它只是一个在绑定到这上面的其他网卡间自动转发数据包的虚拟以太网桥。它可以使容器与主机相互通信。每次Docker创建一个容器,它就会创建一对对等接口(peer interface),类似于一个管子的两端--在这边可以收到另一边发送的数据包。Docker会将对等接口中的一个做为eth0接口连接到容器上,并使用类似于vethAQI2QT这样的惟一名称来持有另一个,该名称取决于主机的命名空间。通过将所有veth*接口绑定到docker0桥接网卡上,Docker在主机和所有Docker容器间创建一个共享的虚拟子网。 本文其他部分将会讲解使用Docker选项的所有方式,并且-在高级模式下-使用纯linux网线配置命令来调整,补充,或完全替代Docker的默认网络配置。 Docker选项快速指南 这里有一份关于Docker网络配置的命令行选项列表,省去您查找相关资料的麻烦。 一些网络配置的命令行选项只能在服务器启动时提供给Docker服务器。并且一旦启动起来就无法改变。 一些网络配置命令选项只能在启动时提供给Docker服务器,并且在运行中不能改变: -b BRIDGE或--bridge=BRIDGE 建立自己的网桥 --bip=CIDR 定制docker0 -H SOCKET...或--host=SOCKET... 它看起来像是在设置容器的网络,但实际却恰恰相反:它告诉Docker服务器要接收命令的通道,例如“run container"和"stop container"。 --icc=true|false 容器间通信 --ip=IP_ADDRESS 绑定容器端口 --ip-forward=true|false 容器间通信 --iptables=true|false 容器间通信

docker命令详解

docker [OPTIONS] command Usage: docker [OPTIONS] COMMAND [arg...] docker daemon [ --help | ... ] docker [ -h | --help | -v | --version ] A self-sufficient runtime for containers. Options: --config=~/.docker Location of client config files -D, --debug=false Enable debug mode -H, --host=[] Daemon socket(s) to connect to -h, --help=false Print usage -l, --log-level=info Set the logging level --tls=false Use TLS; implied by --tlsverify --tlscacert=~/.docker/ca.pem Trust certs signed only by this CA --tlscert=~/.docker/cert.pem Path to TLS certificate file --tlskey=~/.docker/key.pem Path to TLS key file --tlsverify=false Use TLS and verify the remote -v, --version=false Print version information and quit attach Attach to a running container 将终端依附到容器上 为后端运行的交互式的容器启用一个终端与之交互。 1.后台有一个可以交互的容器.

Docker常用命令

Docker之常用命令 1. 查看docker信息(version、info) 1.# 查看docker版本 2.$docker version 3. 4.# 显示docker系统的信息 5.$docker info 2. 对image的操作(search、pull、images、rmi、history) 1.# 检索image 2.$docker search image_name 3. 4.# 下载image 5.$docker pull image_name 6. 7.# 列出镜像列 表; -a, --all=false Show all images; --no-trunc=false Don't truncate output; -q, --quiet=false Only show numeric IDs 8.$docker images 9. 10.# 删除一个或者多个镜 像; -f, --force=false Force; --no-prune=false Do not delete untagged parents 11.$docker rmi image_name 12. 13.# 显示一个镜像的历 史; --no-trunc=false Don't truncate output; -q, --quiet=false Only show nume ric IDs 14.$docker history image_name 3. 启动容器(run) docker容器可以理解为在沙盒中运行的进程。这个沙盒包含了该进程运行所必须的资源,包括文件系统、系统类库、shell 环境等等。但这个沙盒默认是不会运行任何程序的。你需要在沙盒中运行一个进程来启动某一个容器。这个进程是该容器的唯一进程,所以当该进程结束的时候,容器也会完全的停止。

CentOS系统下docker的安装配置及使用详解

1 docker简介 Docker 提供了一个可以运行你的应用程序的封套(envelope),或者说容器。它原本是 dotCloud 启动的一个业余项目,并在前些时候开源了。它吸引了大量的关注和讨论,导致 dotCloud 把它重命名到 Docker Inc。它最初是用 Go 语言编写的,它就相当于是加在 LXC(LinuX Containers,linux 容器)上的管道,允许开发者在更高层次的概念上工作。 Docker 扩展了 Linux 容器(Linux Containers),或着说 LXC,通过一个高层次的 API 为进程单独提供了一个轻量级的虚拟环境。Docker 利用了 LXC, cgroups 和 Linux 自己的内核。和传统的虚拟机不同的是,一个Docker 容器并不包含一个单独的操作系统,而是基于已有的基础设施中操作系统提供的功能来运行的。 Docker类似虚拟机的概念,但是与虚拟化技术的不同点在于下面几点: 1.虚拟化技术依赖物理CPU和内存,是硬件级别的;而docker构建在操作系统上,利用操作系统的containerization技术,所以docker甚至可以在虚拟机上运行。 2.虚拟化系统一般都是指操作系统镜像,比较复杂,称为“系统”;而docker开源而且轻量,称为“容器”,单个容器适合部署少量应用,比如部署一个redis、一个memcached。 3.传统的虚拟化技术使用快照来保存状态;而docker在保存状态上不仅更为轻便和低成本,而且引入了类似源代码管理机制,将容器的快照历史版本一一记录,切换成本很低。 4.传统的虚拟化技术在构建系统的时候较为复杂,需要大量的人力;而docker可以通过Dockfile来构建整个容器,重启和构建速度很快。更重要的是Dockfile可以手动编写,这样应用程序开发人员可以通过发布Dockfile 来指导系统环境和依赖,这样对于持续交付十分有利。 5.Dockerfile可以基于已经构建好的容器镜像,创建新容器。Dockerfile可以通过社区分享和下载,有利于该技术的推广。 Docker 会像一个可移植的容器引擎那样工作。它把应用程序及所有程序的依赖环境打包到一个虚拟容器中,这个虚拟容器可以运行在任何一种 Linux 服务器上。这大大地提高了程序运行的灵活性和可移植性,无论需不需要许可、是在公共云还是私密云、是不是裸机环境等等。 Docker也是一个云计算平台,它利用Linux的LXC、AUFU、Go语言、cgroup实现了资源的独立,可以很轻松的实现文件、资源、网络等隔离,其最终的目标是实现类似PaaS平台的应用隔离。 Docker 由下面这些组成: 1. Docker 服务器守护程序(server daemon),用于管理所有的容器。 2. Docker 命令行客户端,用于控制服务器守护程序。 3. Docker 镜像:查找和浏览 docker 容器镜像。 2 docker特性 文件系统隔离:每个进程容器运行在完全独立的根文件系统里。 资源隔离:可以使用cgroup为每个进程容器分配不同的系统资源,例如CPU和内存。

docker试题教学内容

d o c k e r试题

1、什么是容器?(3分) 容器是一种轻量级、可移植、自包含的软件打包技术,使应用程序可以在几乎任何地方以相同的方式运行。 2、容器虚拟化和传统虚拟化的区别是什么?(4分) 容器虚拟化:启动一般是秒级;仅仅kernel所支持的os,系统支持量单机支持上千个容器,磁盘的使用一般为MB 性能接近原生 传统虚拟化:启动一般是分钟级,支持linux,windows,mac操作系统,系统支持量一般为几十个磁盘使用一般为GB 性能弱 3、Namespace 在容器里功能是什么?(3分) Namespace是命名空间隔离,主要就是将用户空间通过namespace技术隔离开,容器内的进程互不影响。共用一个内核 4、Cgroup的功能是什么的?(3分) 资源限制优先级分配资源统计任务控制 5、Docker能不能在32位的系统里运行?(3分) 不能 6、Docker的核心组件有哪些?(3分) 镜像,容器,仓库 7、我们所安装的docker是哪个版本的?写不全不给分。(3分) 18.03.1-ce版本 8、如何搜索docker镜像nginx?(3分) Docker search nginx 9、如何下载centos 镜像?(3分) Docker pull centos 10、运行一个zabbix 的镜像,并打开一个终端。(3分) Docker run -it zabbix /bin/bash 11、让上个题的容器不停止,并后台运行。(3分) 先按ctrl + p 再按 ctrl + q 12、删除现在所有的镜像。(3分) Docker rmi -f‘docker images -q -a’ 13、查看上一个容器的状态。(3分) Docker stats `docker ps -l -q` 14、查看容器的进程。(3分) Docker top 容器id 15、查看容器的统计信息。(3分) Docker stats 容器id

docker经典入门教程

转载:https://www.sodocs.net/doc/2a3403125.html,/a/1190000000366923 几个月以前,红帽(Red Hat)宣布了在Docker 技术上和dotCloud建立合作关系。在那时候,我并没有时间去学习关于Docker 的知识,所以在今天,趁着这个30 天的挑战,我决定去学习一下Docker 究竟是怎样的。这篇博文并不是说以后怎么在OpenShift 上用Docker 的。请阅读由Mike McGrath 撰写的"关于OpenShift 和Docker 的技术思考"。也可以看看这个Stackoverflow 的问题,了解一下Docker 和OpenShift 的差别。 什么是Docker? Docker提供了一个可以运行你的应用程序的封套(envelope),或者说容器。它原本是dotCloud 启动的一个业余项目,并在前些时候开源了。它吸引了大量的关注和讨论,导致dotCloud 把它重命名到Docker Inc。它最初是用Go 语言编写的,它就相当于是加在LXC(LinuX Containers,linux 容器)上的管道,允许开发者在更高层次的概念上工作。 Docker 扩展了Linux 容器(Linux Containers),或着说LXC,通过一个高层次的API 为进程单独提供了一个轻量级的虚拟环境。Docker 利用了LXC,cgroups 和Linux 自己的内核。和传统的虚拟机不同的是,一个Docker 容器并不包含一个单独的操作系统,而是基于已有的基础设施中操作系统提供的功能来运行的。这里有一个Stackoverflow 的答案,里面非常详细清晰地描述了所有Docker 不同于纯粹的LXC 的功能特性 Docker 会像一个可移植的容器引擎那样工作。它把应用程序及所有程序的依赖环境打包到一个虚拟容器中,这个虚拟容器可以运行在任何一种Linux 服务器上。这大大地提高了程序运行的灵活性和可移植性,无论需不需要许可、是在公共云还是私密云、是不是裸机环境等等。 Docker 由下面这些组成: 1. Docker 服务器守护程序(server daemon),用于管理所有的容器。 2. Docker 命令行客户端,用于控制服务器守护程序。 3. Docker 镜像:查找和浏览docker 容器镜像。它也访问这里得到: https://index.docker.io/ 我为什么要关心这些? Docker 之所以有用,是因为把代码从一个机器迁移到另一个机器经常是困难的。它尝试去使得软件迁移的过程变得更加可信和自动化。Docker 容器可以移植到所有支持运行Docker 的操作系统上。

docker系统运维

Docker手册

目录 1.简介 (3) 2.Docker (3) 2.1.安装 (3) 2.2.Docker常见命令 (9) 2.2.1.Options: (9) https://www.sodocs.net/doc/2a3403125.html,mands: (10) 3.Docker镜像管理 (3) 3.1.搜索Docker镜像 (4) 3.2.查看Docker镜像 (4) 3.3.删除Docker镜像 (5) 3.4.导出Docker镜像 (5) 3.5.导入Docker镜像 (5) 3.6.获取Docker镜像 (5) 4.Docker容器管理 (6) 4.1.启动Docker容器 (6) 4.1.1.新建容器并启动 (6) 4.1.2.启动已终止容器 (7) 4.1.3.守护进程运行 (7) 4.1.4.停止容器 (8) 4.1.5.删除容器 (8) 4.1.6.进入容器 (8)

1.简介 Docker是通过内核虚拟化技术(namespaces及cgroups等)来提供容器的资源隔离与安全保障等。由于Docker通过操作系统层的虚拟化实现隔离,所以Docker容器在运行时,不需要类似虚拟机VM额外的操作系统开销,提高资源利用率。 2.Docker 它只能用在64位的操作系统上。 2.1.安装 Docker软件包已经包括在默认的CentOS-Extras软件源里。因此想要安装docker,只需要运行下面的yum命令: yum install docker 查看docker版本信息:docker version 启动docker:systemctl start docker 加入开机自启动:systemctl enable docker 3.Docker镜像管理 Docker镜像就是一个只读的模板。例如:一个镜像可以包含一个完整的CentOS操作系统环境,里面仅安装了Apache或用户需要的其

Docker容器原理与实现

Docker容器的原理与实现 周成玉 【摘要】Linux容器(Linux Container,LXC)是docker的核心技术之一,LXC利用chroot、namespace 和cgroup等技术实现资源的隔离和配额,文章剖析了LXC的原理和实现。 【关键词】chroot, namespace, cgroup, LXC 1、概述 海关已经广泛使用虚拟机技术多年,IT资源利用率得到有效提高。近年来,基于Docker的轻量级虚拟化技术正成为IT技术热点之一。与传统虚拟机相比,Docker技术本质上是一种LXC引擎。VM和LXC 关注的问题都是资源的隔离和配额,VM采用CPU、memory、disk等硬件虚拟化技术,LCX则借助了chroot、namespace和cgroups等系统调用。 2、LXC的资源隔离 2.1、chroot chroot(change root directory,更改root目录),最早在1979年的Unix V7使用,并在各个版本的linux 系统中得以保留。在linux系统中,系统默认的目录结构都是以“/”,即根(root)开始的。 通过使用chroot,系统读取到的目录和文件将不在是旧系统根下的而是指定的新位置下的目录结构和文件,这样带来两个好处: (1)增加系统的安全性,限制用户权力。经过chroot之后,在新根下将访问不到旧系统的根目录结构和文件,这样就增强了系统的安全性。在登录(login)前使用chroot,阻止用户访问特定目录。 (2)建立一个与原系统隔离的系统目录结构,方便用户的开发。使用chroot后,系统读取的是新根下的目录和文件,这是一个与原系统根下文件不相关的目录结构。在这个新的环境中,可以用来测试软件的静态编译以及一些与系统不相关的独立开发。 Docker就是利用chroot功能,实现每个容器里看到的文件系统都是一个完整的linux系统。下面来看一个简单shell脚本,将某个进程及其子进程访问根目录限制在“/home/container”目录,该进程及其子进程

Docker实战之容器基础命令系列

从Docker到Kubernetes 第2周

Docker实战之容器基础命令系列 Docker的部署安装Docker配置文件与日志Docker基础命令讲解

Docker 采用Linux (内核)技术,所以只能运行在Linux 上,官方说Linux kernel 至少3.8以上 Boot2Docker 是一个专为Docker 而设计的轻量级Linux 发型包 Windows Mac Linux VM 开发、测试环境(个人) Centos Ubuntu Docker Native CoreOS Atomic More 物理机/Cloud Node

本课程 Centos 7 ,采用Redhat官方的yum源和Docker RPM包安装 从百度云盘下载centos 7镜像 Docker课程所用资料https://www.sodocs.net/doc/2a3403125.html,/s/1jG4FAqq SSH进入虚机后,执行标准化安装过程: yum install docker

Docker 1.8的部署安装 cat >/etc/yum.repos.d/docker.repo <<-EOF [dockerrepo] name=Docker Repository baseurl=https://https://www.sodocs.net/doc/2a3403125.html,/repo/main/centos/7 enabled=1 gpgcheck=1 gpgkey=https://https://www.sodocs.net/doc/2a3403125.html,/gpg EOF yum install docker-engine

设置开机启动Docker Daemon进程systemctl start docker.service systemctl enable docker.service systemctl grep docker查看docker进程的状态 systemctl disable firewalld yum -y install iptables-services systemctl enable iptables systemctl start iptables 换回默认的iptables服务

docker命令语句

Docker基础 这篇基础文章是方便用户在使用cSphere平台之前,了解docker 基础知识。 针对已经有一定的Linux基础知识的用户。 Docker是什么 Docker是一个改进的容器技术。具体的“改进”体现在,Docker 为容器引入了镜像,使得容器可以从预先定义好的模版(images)创建出来,并且这个模版还是分层的。Docker经常被提起的特点: 轻量,体现在内存占用小,高密度 快速,毫秒启动 隔离,沙盒技术更像虚拟机 Docker技术的基础: namespace,容器隔离的基础,保证A容器看不到B容器. 6个名空间:User,Mnt,Network,UTS,IPC,Pid cgroups,容器资源统计和隔离。主要用到的cgroups子系 统:cpu,blkio,device,freezer,memory unionfs,典型:aufs/overlayfs,分层镜像实现的基础Docker组件: docker Client客户端————>向docker服务器进程发起请求,如:创建、停止、销毁容器等操作 docker Server服务器进程—–>处理所有docker的请求,管理所有容器 docker Registry镜像仓库——>镜像存放的中央仓库,可看作是存放二进制的scm Docker安装 Docker的安装非常简单,支持目前所有主流操作系统,从Mac

到Windows到各种Linux发行版 具体参考:docker安装 Docker常见命令 容器相关操作 docker create # 创建一个容器但是不启动它 docker run # 创建并启动一个容器 docker stop # 停止容器运行,发送信号SIGTERM docker start # 启动一个停止状态的容器 docker restart # 重启一个容器 docker rm # 删除一个容器 docker kill # 发送信号给容器,默认SIGKILL docker attach # 连接(进入)到一个正在运行的容器 docker wait # 阻塞到一个容器,直到容器停止运行 获取容器相关信息 docker ps # 显示状态为运行(Up)的容器 docker ps -a # 显示所有容器,包括运行中(Up)的和退出的(Exited) docker inspect # 深入容器内部获取容器所有信息 docker logs # 查看容器的日志(stdout/stderr) docker events # 得到docker服务器的实时的事件 docker port # 显示容器的端口映射 docker top # 显示容器的进程信息 docker diff # 显示容器文件系统的前后变化 导出容器 docker cp # 从容器里向外拷贝文件或目录 docker export # 将容器整个文件系统导出为一个tar包,不带layers、tag等信息 执行 docker exec # 在容器里执行一个命令,可以执行bash进入

Docker安装配置步骤详解

Docker安装配置步骤详解 1.安装Docker 使用yum命令安装docker,如yum -y install docker-io 2.配置与启动 vi /etc/sysconfig/docker 启动docker服务: service docker start 将docker加入开机启动 chkconfig docker on 3.测试 docker version:查看docker的版本号,包括客户端、服务端、依赖的Go等

docker info:查看系统(docker)层面信息,包括管理的images, containers数等 4.镜像的获取与容器的使用 镜像可以看作是包含有某些软件的容器系统,比如ubuntu就是一个官方的基础镜像,很多镜像都是基于这个镜像“衍生”,该镜像包含基本的ubuntu系统。再比如,hipache是一个官方的镜像容器,运行后可以支持http和websocket的代理服务,而这个镜像本身又基于ubuntu。 4.1搜索镜像

docker search :在docker index中搜索image 命令:docker search ubuntu12.10 4.2下载镜像 docker pull :从docker registry server 中下拉image 命令:docker pull chug/ubuntu12.10x64 4.3查看镜像 docker images:列出images docker images -a :列出所有的images(包含历史) docker images --tree :显示镜像的所有层(layer) docker rmi :删除一个或多个image 4.4使用镜像创建容器 [root@localhost /]# docker run chug/ubuntu12.10x64 /bin/echo hello world hello world 交互式运行 [root@localhost /]# docker run -i -t chug/ubuntu12.10x64 /bin/bash root@2161509ff65e:/# 4.5查看容器 docker ps :列出当前所有正在运行的container docker ps -l :列出最近一次启动的container

Docker基础分享

Docker 分享 一、什么是Docker Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何影响。几乎没有性能开销,可以很容易地在机器和数据中心中运行。最重要的是,他们不依赖于任何语言、框架或包装系统。Docker 是PaaS 提供商dotCloud 开源的一个基于LXC的高级容器引擎,源代码托管在Github 上, 基于go语言并遵从Apache2.0协议开源。 二、为什么要用Docker Docker作为一种新兴的虚拟化方式,跟传统的虚拟化方式相比具有启动快、资源利用率高、系统开销小等众多的优势。具体来说在以下几个方面有较大优势: 1)更快速的交付和部署(Build once, Run anywhere) 2)更高效的虚拟化 3)更轻松的迁移和扩展 4)更简单的管理 VM技术和容器技术对比 普通虚拟机将整个操作系统运行在虚拟的硬件平台上,进而提供完整的运行环境供应用程序运行,而Docker则直接在宿主平台上加载运行应用程序.本质上他在底层使用LXC启动一个LinuxContainer,通过cgroup等机制对不同的container内运行的应用程序进行隔离,权限管理和quota分配等 三、Docker安装 官方网站上有各种环境下的安装指南,这里简要介绍下各个系统的安装步骤。 1)Window系统安装 目前只支持Win10 64位,Win7上我们通过Boot2Docker 来安装虚拟机和运行Docker.

Boot2Docker下载地址:https://https://www.sodocs.net/doc/2a3403125.html,/boot2docker/windows-installer/releases/latest 2)Ubuntu 系统安装 Docker 要求Ubuntu 系统的内核版本高于3.10 ,查看本页面的前提条件来验证你的Ubuntu 版本是否支持Docker。通过uname -r 命令查看你当前的内核版本 步骤如下: 1、获取最新版本的Docker 安装包:wget -qO- https://https://www.sodocs.net/doc/2a3403125.html,/ | sh 2、启动docker 后台服务:sudo service docker start 3、测试运行hello-world:docker run hello-world 3)CentOS系统安装 Docker 要求CentOS 系统的内核版本高于3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持Docker 。 Docker 软件包和依赖包已经包含在默认的CentOS-Extras 软件源里。可以使用yum -y install docker命令安装。 Docker命令结构图 四、镜像 Docker 镜像(Image)就是一个只读的模板,可以基于一个Image快速部署多个相同的容器。镜像相关命令: docker pull :从仓库获取所需镜像(如果不指定注册服务器仓库地址默认从Docker Hub) docker images:显示本地已有镜像

docker命令学习总结

查看docker 系统信息,包括镜像和容器数:docker info 查看docker版本信息:docker version 查看容器: 在线容器信息:docker ps 只显示容器的ID:docker ps -q 显示所有容器信息:docker ps -a 显示运行容器总文件大小:docker ps -s 显示最近创建的容器:docker ps -l 不截断输出:docker ps --no-trunc 镜像操作: 查看本地所有镜像:docker images #也可以用-q参数来只显示ID信息 查看本地镜像摘要信息(DIGEST列):docker images --digests 查看镜像完整信息:docker images --no-trunc 镜像搜索:docker search images_name ##--filter=stars=500 只输出stars>=500的镜像,这项也可以用"-s 500"来替代 ##--no-trunc 输出镜像完整DESCRIPTION信息 ##--automated 只输出automated build类型的镜像 镜像下载:docker pull images_name##-a 拉取所有tagged 镜像 镜像删除:docker rmi images_name or imageID##-f 强制删除(针对基于镜像有运行容器进程) 容器操作: 启动已经被停止的容器:docker start CONTAINER_ID or name 停止容器:docker stop CONTAINER_ID or name 重启容器:docker restart CONTAINER_ID or name 删除容器:docker rm CONTAINER_ID or name 查看容器日志:docker logs (-f) CONTAINER_ID or name #加上-f是动态实时显示 查看容器中运行的进程:docker top CONTAINER_ID or name # 使用镜像创建容器: docker run --name names -d image#容器重命名,并后台模式启动 docker run -it (-p out_port:in_port) image bash #交互模式启动,并在容器内执行bash命令进入容器:docker exec -it CONTAINER_ID or name /bin/bash 退出容器:exit 容器的导入和导出: 容器的导出:docker export CONTAINER_ID or names >newname.tar 例如:docker export my_ubuntu > /tmp/ubuntu.tar 将my_ubuntu的最新镜像打包为ubuntu.tar 容器导入(只能导成image):cat newname.tar|docker import - new_image_name 启动image成容器:docker run -t -i (-p out_port:in_port) new_image_name:latest /bin/bash 镜像的导入和导出: 镜像导出:docker save -o ubuntu.tar my_ubuntu:latest docker save > ubuntu.tar my_ubuntu:latest 镜像导入:docker load --input ubuntu.tar docker load < ubuntu.tar

Docker入门白皮书

《Docker入门白皮书》 中关村在线 https://www.sodocs.net/doc/2a3403125.html, 2015 年08 月

目录 目录 (1) 【一】从dotCloud到Docker——低调奢华有内涵 (2) 1、追根溯源:dotCloud (2) 2、Docker出世:从Docker0.1到Docker1.0 (2) 【二】如何定义Docker? (4) 1、镜像 (5) 2、容器 (5) 3、仓库 (5) 【三】Docker与虚拟化争锋 (6) 【四】Docker:我为什么与众不同 (8) 1、简化程序 (9) 2、避免选择恐惧症 (9) 3、节省开支 (9) 【五】统一标准,建立更有活力的生态系统 (10) 【六】企业对Docker是否认可?安全是关键! (11) 1、命名空间(Namespace) (12) 2、Docker程序本身的抗攻击性 (12) 3、加固内核安全性 (12) 【七】评说Docker (14) 附录一、Docker基本命令 (15) 附录二、Docker最新版(1.8)下载地址: (18)

写在前面:放在两年前,你不认识Docker情有可原。但如果现在你还这么说,不好意思,我只能说你OUT了。你最好马上get起来,因为有可能你们公司很快就会引入Docker。今天就和大家讨论讨论这个备受好评的应用,让我们来揭开他的真面目! 【一】从dotCloud到Docker——低调奢华有内涵 1、追根溯源:dotCloud 时间倒回到两年前,有一个名不见经传的小公司,他的名字叫做:dotCloud。dotCloud公司主要提供的是基于PaaS(Platform as a Service,平台及服务)平台为开发者或开发商提供技术服务,并提供的开发工具和技术框架。 初创企业总是艰难的,dotCloud也是一样。在IBM,亚马逊,谷歌等大公司的挤压下,dotCloud举步维艰。即使2011年拿到了1000万美元的融资,可和上述大公司比起来,也不过是杯水车薪。 随着开源的洪流袭来,在2013年dotCloud 的创始人,28岁的Solomon Hykes做了一个艰难的决定:将dotCloud的核心引擎开源!然而一旦这个基于LXC(Linux Container)技术的核心管理引擎开源,dotCloud公司就相当于走上了一条"不归路"。 可正是这个孤注一掷的举动,却带来了全球技术人员的热潮,众程序员惊呼:太方便了,太方便了。也正是这个决定,让所有的IT巨头也为之一颤。一个新的公司也随之出世,它就是:Docker。 2、Docker出世:从Docker0.1到Docker1.0 一个春秋,跨越了Docker的成名路。 在互联网时代,一夜成名早已不是什么新闻。Docker 这个技术公司,向我们证明了,成为一个"国际巨星",只需要一个月。2013年2月决定开源,到2013

非常详细的 Docker 学习笔记

阅读目录 ? 1.1 Docker 守护进程 ? 1.2 Docker 客户端 ? 1.3 Docker 内部 ? 1.4 libcontainer ? 1.5 命名空间「Namespaces」 ? 1.6 资源配额「cgroups」 ? 3.1 Search images ? 3.2 Pull images ? 3.3 Running an interactive shell ? 3.4 相关快捷键 ? 4.1 docker help ? 4.2 docker search ? 4.3 docker info ? 4.4 docker pull && docker push ? 4.5 docker images ? 4.6 docker rmi ? 4.7 docker run ? 4.8 docker start|stop|kill... ... ? 4.9 Docker 1.3 新增特性和命令 ? 4.10 Docker 1.5 新特性 ? 5.1 自动映射端口 ? 5.2 绑定端口到指定接口 ? 6.1 Docker 四种网络模式 ? 6.2 列出当前主机网桥 ? 6.3 查看当前docker0 ip ? 6.4 运行一个容器 ? 6.5 不同主机间容器通信 ?7.1 FROM ?7.2 MAINTAINER ?7.3 CMD ?7.4 EXPOSE ?7.5 ENV ?7.6 ADD ?7.7 COPY ?7.8 ENTRYPOINT ?7.9 VOLUME ?7.10 USER ?7.11 WORKDIR ?7.12 ONBUILD ?7.13 Dockerfile Examples

docker run命令详解

docker run Usage: docker run [OPTIONS] IMAGE [COMMAND] [ARG...] Run a command in a new container -a -a, --attach=[] Attach to STDIN, STDOUT or STDERR 如果在执行run命令时没有指定-a,那么docker默认会挂载所有标准数据流,包括输入输出和错误。你可以特别指定挂载哪个标准流。 #docker run -a stdin -a stdout -i -t ubuntu:14.04 /bin/bash (只挂载标准输入输出) --add-host --add-host=[] Add a custom host-to-IP mapping (host:ip) 添加host-ip到容器的hosts文件 # docker run -it --add-host db:192.168.1.1 ubuntu:14.04 /bin/bash --blkio-weight --blkio-weight=0 Block IO (relative weight), between 10 and 1000 相对于CPU和内存的配额控制,docker对磁盘IO的控制相对不成熟,大多数都必须在有宿主机设备的情况下使用。主要包括以下参数: –device-read-bps:限制此设备上的读速度(bytes per second),单位可以是kb、mb

或者gb。 ●–device-read-iops:通过每秒读IO次数来限制指定设备的读速度。 ●–device-write-bps:限制此设备上的写速度(bytes per second),单位可以是kb、mb 或者gb。 ●–device-write-iops:通过每秒写IO次数来限制指定设备的写速度。 ●–blkio-weight:容器默认磁盘IO的加权值,有效值范围为10-100。 ●–blkio-weight-device:针对特定设备的IO加权控制。其格式为DEVICE_NAME:WEIGHT 存储配额控制的相关参数,可以参考Red Hat文档中blkio这一章,了解它们的详细作用。 磁盘IO配额控制示例 blkio-weight 要使–blkio-weight生效,需要保证IO的调度算法为CFQ。可以使用下面的方式查看:root@ubuntu:~# cat /sys/block/sda/queue/scheduler noop [deadline] cfq 使用下面的命令创建两个–blkio-weight值不同的容器: docker run -ti –rm –blkio-weight 100 ubuntu:stress docker run -ti –rm –blkio-weight 1000 ubuntu:stress 在容器中同时执行下面的dd命令,进行测试: time dd if=/dev/zero of=test.out bs=1M count=1024 oflag=direct 最终输出如下图所示: device-write-bps 使用下面的命令创建容器,并执行命令验证写速度的限制。 docker run -tid –name disk1 –device-write-bps /dev/sda:1mb ubuntu:stress 通过dd来验证写速度,输出如下图示:

docker实战(v1)

Docker实战 王建飞

Docker 简介 Docker 是什么 Docker 是一个开源的应用容器引擎,可以自动化地部署应用到可移植的的容器中,这些容器独立于硬件、语言、框架、打包系统。一个标准的Docker容器包含一个软件组件及其所有的依赖——二进制文件,库,配置文件,脚本等等。Docker扩展了LXC,使用高层的API,提供轻量虚拟化解决方案来实现进程间隔离。可以运行在任何支持cgroups跟AUFS 的64位Linux内核上。 同时,Docker基于Go语言开发,代码托管在Github上,并遵循Apache 2.0开源协议。Docker容器可以封装任何有效负载,几乎可以在任何服务器之间进行一致性运行。换句话说,开发者构建的应用只需一次构建即可多平台运行。运营人员只需配置他们的服务,即可运行所有的应用。 Docker的常用案例包括: ●自动打包和部署应用 ●创建轻量、私有的PaaS环境 ●自动化测试和持续集成/部署 ●部署并扩展Web应用、数据库和后端服务器 下面的图片比较了Docker 和传统虚拟化方式的不同之处,可见容器是在操作系统层面上实现虚拟化,直接复用本地主机的操作系统,而传统方式则是在硬件层面实现。 Docker 优势和劣势

作为一种新兴的虚拟化方式,Docker 跟传统的虚拟化方式相比具有众多的优势。 首先,Docker 容器的启动可以在秒级实现,这相比传统的虚拟机方式要快得多。其次,Docker 对系统资源的利用率很高,一台主机上可以同时运行数千个Docker 容器。 容器除了运行其中应用外,基本不消耗额外的系统资源,使得应用的性能很高,同时系统的开销尽量小。传统虚拟机方式运行10 个不同的应用就要起10 个虚拟机,而Docker 只需要启动10 个隔离的应用即可。 具体说来,Docker 在如下几个方面具有较大的优势。 更快速的交付和部署 对开发和运维(devop)人员来说,最希望的就是一次创建或配置,可以在任意地方正常运行。 开发者可以使用一个标准的镜像来构建一套开发容器,开发完成之后,运维人员可以直接使用这个容器来部署代码。Docker 可以快速创建容器,快速迭代应用程序,并让整个过程全程可见,使团队中的其他成员更容易理解应用程序是如何创建和工作的。Docker 容器很轻很快!容器的启动时间是秒级的,大量地节约开发、测试、部署的时间。 更高效的虚拟化 Docker 容器的运行不需要额外的hypervisor 支持,它是内核级的虚拟化,因此可以实现更高的性能和效率。 更轻松的迁移和扩展 Docker 容器几乎可以在任意的平台上运行,包括物理机、虚拟机、公有云、私有云、个人电脑、服务器等。这种兼容性可以让用户把一个应用程序从一个平台直接迁移到另外一个。 更简单的管理 使用Docker,只需要小小的修改,就可以替代以往大量的更新工作。所有的修改都以增量的方式被分发和更新,从而实现自动化并且高效的管理。 对比传统虚拟机总结 Docker体系结构

相关主题