当前位置:文档之家› docker试题教学内容

docker试题教学内容

docker试题教学内容
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

16、查看容器abc的详细信息。(3分)

Docker inspect abc

17、使用docker build命令有几种方法构建镜像?(3分)

两种 1、通过源代码路径的方式

2、通过标准输入流的方式

18、运行一个容器test2去使用容器test1的数据卷/date(镜像统一是nginx)。(3分)

Docker run -it --name test1 -v /date:/date nginx /bin/bash

Docker run -it --volumes-from test1 --name test2 nginx /bin/bash

19、docker的存储驱动程序有哪些?(3分)

AUES、Btrfs 、 Device mapper、 OverlayFS 、 ZFS 、VFS

20、overlay的文件系统,读取一个文件,文件不在容器里,但存在镜像里,它的工作过程是什么?(3分)

文件不存在于容器(upperdir)中。overlay/overlay2驱动程序执行一个copy_up操作将文件从镜像(复制lowerdir)到所述容器(upperdir)。容器然后将更改写入容器层中的文件的新副本

21、overlay文件系统里有个目录是upperdir,它里面装的是什么?(3分)

Upperdir是容器的可写数据层,里面装的是对容器的更改内容

22、overlay文件系统里有个目录是lowerdir,它里面装的是什么?(3分)

里面装的是镜像

23、docker里有三种方式把数据从宿主机挂载到容器,分别是volmues,bind mounts,tmpfs volumes,有什么区别?(3分)

Volumes方式下:容器内的数据被存放到宿主机(linux)一个特定的目录下

(/var/lib/docker/volumes/)。这个目录只有Docker可以管理,其他进程不能修改。如果想持久保存容器的应用数据,Volumes是Docker推荐的挂载方式。

Bind mounts方式下:容器内的数据被存放到宿主机文件系统的任意位置,甚至存放到一些重要的系统目录或文件中。除了Docker之外的进程也可以任意对他们进行修改;

tmpfs方式下:容器的数据只会存放到宿主机的内存中,不会被写到宿主机的文件系统中,因此不能持久保存容器的应用数据。

24、--net选项后面可以跟哪些参数?(4分)

None、host、bridge、 overlay、 macvlan

25、现在项目需要多个容器之间疯狂交流,需要使用哪个网络?(3分)

Docker overlay网络

26、打开容器test2去链接test1容器,并映射宿主机的80端口到容器的5000端口。(3分)

Docker run -it -v 80:5000 –name test2 --network=container:test1 centos /bin/bash

27、什么是Orchestration?(3分)

编排(Orchestration),描述了自动配置、协作和管理服务的过程。

28、Orchestration的分类有哪些?(3分)

Docker Compose,Docker Machine,Docker Swarm

29、其中compose 使用的步骤是什么?(3分)

使用Compose仅需要三步:

1、使用dockerfile定义你的应用依赖的镜像;

2、使用docker-compose.yml定义你的应用具有的服务;

3、通过docker-compose up命令创建并运行应用;

30、swarm的调度模块的第一阶段,过滤器有几种?(3分)

5种

Constraints,约束过滤器

Affnity,亲和性过滤器

Dependency,依赖过滤器

Health filter,会根据节点状态进行过滤

Ports filter,会根据端口的使用情况过滤

31、k8s的全称是什么?在古希腊话中是什么意思?(4分)

全称是Kubernetes,在古希腊话中是舵手的意思

32、编写dockerfile,实现功能:开启容器就能查看/目录,并且能复写查看/mnt目录。镜像自选(4分)

#Vim dockerfile

FROM centos

RUN ls /

CMD [“ls”,”/mnt”]

Docker容器平台部署指南

Docker容器平台部署指南

目录 1集群配置 (1) 1.1集群组成 (1) 1.2系统和软件版本 (1) 2启动Docker Container (2) 2.1安装docker (2) 2.2制作镜像 (2) 2.3启动Ambari-Server节点 (2) 2.4启动Ambari-Agent节点 (2) 2.5修改hosts (2) 3HDP安装部署 (3)

1集群配置 1.1集群组成 本次部署由于虚拟机限制,总共有2个Docker Container,如下所示: 上表中的Docker镜像是利用Dockerfile生成的镜像。首先从Github上克隆https://https://www.doczj.com/doc/418277643.html,/sequenceiq/docker-ambari.git到本地,然后修改其中的Dockerfile,修改方法为在“EXPOSE 8080”前增加: 最后根据这个Dockerfile生成docker镜像。 1.2系统和软件版本 系统采用CentOS6.5,Docker版本为1.1.2,ambari-server和ambari-agent为1.6.0,HDP版本为2.1。

2启动Docker Container 2.1安装docker 使用yum install docker.io安装docker。 2.2制作镜像 制作过程见1.1。 2.3启动Ambari-Server节点 使用命令docker run -d -p 8080 -h amb0.mycorp.kom --name amb0 ambari-stack --tag ambari-server=true建立主机名为amb0.mycorp.kom的container,其中--tag ambari-server=true表示该container上运行ambari-server。 2.4启动Ambari-Agent节点 使用命令docker run -d -e SERF_JOIN_IP=172.17.0.2 --dns 127.0.0.1 --entrypoint /usr/local/serf/bin/start-serf-agent.sh -e KEYCHAIN=$KEYCHAIN --name amb1 -h amb1.mycorp.kom ambari-stack --log-level debug建立主机名为amb1.mycorp.kom的container,其中-e SERF_JOIN_IP=172.17.0.2表示该container上运行ambari-agent需要连接的ambari-server。 以上两步之后运行docker ps -a 可以看到当前正在运行的container,例如: 2.5修改hosts 通过docker inspect命名可以查看各个container的信息,从中获取到各个container的IP地址,然后使用ssh登陆到各节点,修改hosts文件,是每个container 都知道其他container主机名对应的IP地址,例如:

docker安装PXC的MySQL集群

docker安装PXC的MySQL集群 一、MySQL集群安装环境 (一)操作系统 (二)相关插件 1、socat插件用来监视Docker API(必须安装) socat是一个十分强大的命令行工具,它允许你在几乎任何类型的两个数据通道之间中继数据,从而可以嗅探到两个数据通道的通信,进行分析。可以把它看成是一个增强版本的netcat。 安装指令: (1)debian/ubuntu系统安装指令 aitalk@luo:~$ sudo apt-get install socat (2)centos/redhat系统安装指令 aitalk@luo:~$ sudo yum install -y socat 二、安装Percona XtraDB Cluster

(一)docker下载镜像 1、通过docker拉取MySQL aitalk@luo:~$ sudo docker pull percona/percona-xtradb-cluster:5.7.22 未指定版本号,下载默认是lastes版本,这里指定版本号:docker pull percona/percona-xtradb-cluster:5.7.22 2、查看MySQL镜像 aitalk@luo:~$ sudo docker images (二)配置percona-xtradb-cluster相关环境 1、创建自定义网络:(设置固定IP) root@luo:~# docker network create --subnet=172.19.0.0/16 pxc-mysql-network

2、创建 Docker卷 通常我们通过 docker的目录映射机制将业务数据存储到我们的宿主机上。但是PXC集群技术比较特殊,如果为PXC 集群使用了docker的目录映射技术,PXC会闪退,因此要采用另外一种目录映射技术,即使用 docker卷。 (1)MySQL配置文件目录 aitalk@luo:~$ sudo docker volume create v1-etc (2)MySQL数据文件目录 aitalk@luo:~$ sudo docker volume create v1-data (3)MySQL日志文件目录 aitalk@luo:~$ sudo docker volume create v1-logs

docker基础安装使用

Docker基础安装使用 2020-02-22 作者:刘子毅

创建yum源 [root@bogon ~]# [root@bogon ~]# yum-config-manager --add-repo https://https://www.doczj.com/doc/418277643.html,/linux/centos/docker-ce.repo Loaded plugins: fastestmirror, langpacks adding repo from: https://https://www.doczj.com/doc/418277643.html,/linux/centos/docker-ce.repo grabbing file https://https://www.doczj.com/doc/418277643.html,/linux/centos/docker-ce.repo to /etc/yum.repos.d/docker-ce.repo Could not fetch/save url https://https://www.doczj.com/doc/418277643.html,/linux/centos/docker-ce.repo to file /etc/yum.repos.d/docker-ce.repo: [Errno 14] curl#7 - "Failed connect to https://www.doczj.com/doc/418277643.html,:443; Operation now in progress" [root@bogon ~]# [root@bogon ~]# 链接无法解析改为使用阿里的yum源,操作如下: [root@bogon ~]# yum-config-manager --add-repo https://www.doczj.com/doc/418277643.html,/docker-ce/linux/centos/docker-ce.repo Loaded plugins: fastestmirror, langpacks adding repo from: https://www.doczj.com/doc/418277643.html,/docker-ce/linux/centos/docker-ce.repo grabbing file https://www.doczj.com/doc/418277643.html,/docker-ce/linux/centos/docker-ce.repo to /etc/yum.repos.d/docker-ce.repo repo saved to /etc/yum.repos.d/docker-ce.repo 安装最新的docker [root@bogon ~]# [root@bogon ~]# yum install docker-ce Loaded plugins: fastestmirror, langpacks Existing lock /var/run/yum.pid: another copy is running as pid 9034. Another app is currently holding the yum lock; waiting for it to exit... The other application is: PackageKit Memory : 119 M RSS (1.0 GB VSZ) Started: Fri Feb 21 19:28:47 2020 - 07:27 ago State : Sleeping, pid: 9034 Another app is currently holding the yum lock; waiting for it to exit... The other application is: PackageKit Memory : 119 M RSS (1.0 GB VSZ) Started: Fri Feb 21 19:28:47 2020 - 07:29 ago State : Sleeping, pid: 9034 Another app is currently holding the yum lock; waiting for it to exit... The other application is: PackageKit Memory : 119 M RSS (1.0 GB VSZ) Started: Fri Feb 21 19:28:47 2020 - 08:12 ago

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和内存。

MacOS安装Docker部署.NET Core Web应用程序并迁移到Windows平台

一都编程 Docker深入编程 MacOS安装Docker部署https://www.doczj.com/doc/418277643.html, Core Web应用程序并迁移到Windows平台 作者:李保军

目录 第1节.概述3 第2节.安装DOCKER3 2.1.下载安装包3 2.2.运行安装包4 第3节.安装VISUAL STUDIO FOR MAC7 3.1.下载安装包7 3.2.运行安装包8 3.3.启动程序14 第4节.创建.NET CORE WEB应用程序16 4.1.创建项目16 4.2.运行项目18 第5节.DOCKER部署22 5.1.添加D OCKER支持22 5.2.生成镜像和容器24 5.3.查看镜像和容器27 5.4.运行应用程序29

第6节.迁移到WINDOWS29 6.1.目标操作系统30 6.2.测试项目30 6.3.导出镜像32 6.4.载入镜像34 6.5.编写DOCKER-COMPOSE.YML35 6.6.创建容器37 6. 7.运行应用程序41

第1节.概述 对于Docker,现在已成为跨平台移植的最佳选择容器了,Docker提供了基于云的Docker和基于桌面本地部署的Docker。 Docker提供了目前三大(Linux、macOS、Windows)流行平台上的安装程序,Docker只是一个运行应用程序的壳子,而在Docker中部署的应用程序与Docker运行所在的平台是没有关系的。 因此,Docker中部署的任何语言(C#/Python/Java/PHP等)开发的应用程序都可以跨平台运行。 本文是基于桌面的Docker在macOS平台上安装并部署https://www.doczj.com/doc/418277643.html, Web应用程序,然后再将应用程序移植到Windows10平台上。 第2节.安装Docker 2.1. 下载安装包 在Docker的官方网站上,在“Get Started”页面上,下载“Docker Desktop”版的Docker安装程序,且平台要选择“for Mac”。

IT技术进阶:Docker容器的四种网络模式

IT技术进阶:Docker容器的四种网络模式 docker容器技术可谓是炽手可热,docker不仅仅改变了传统软件服务的交付流程,更是为云计算和微服务大规模集群管理部署,提供了强有力的技术支撑。当今各大公司企业也是把容器化技术作为不可或缺的技术战略。 Docker 是一个开源的应用容器引擎,基于 Go 语言并遵从Apache2.0协议开源。 Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。 Docker容器是一个开源的应用容器引擎,让开发者可以以统一的方式打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何安装Docker引擎的服务器上,也可以实现虚拟化。 随着云计算的飞速发展以及企业需求的多样化,Docker容器技术成为云计算人才必备的技能之一。很多人想要快速掌握Docker容器技术,接下来就给大家讲解Docker容器的四种网络模式。 1、closed container 封闭式网络模式 没有网络协议栈的通信。 使用none模式,Docker容器拥有自己的Network Namespace,但是,并不为Docker 容器进行任何网络配置。也就是说,这个Docker容器没有网卡、IP、路由等信息,只有lo 网络接口。需要我们自己为Docker容器添加网卡、配置IP等。 2、bridged container 桥接式网络模式 各个容器之间网络协议栈单独分离。 当Docker启动时,会自动在主机上创建一个docker0虚拟网桥,实际上是Linux 的一个bridge,可以理解为一个软件交换机,它会在挂载到它的网口之间进行转发。同时,Docker随机分配一个本地未占用的私有网段(在 RFC1918 中定义)中的一个地址给docker0接口。 当创建一个Docker容器的时候,同时会创建了一对veth pair 接口。这对接口一端在容器内,即eth0;另一端在本地并被挂载到docker0网桥,名称以veth开头。通过这种方式,主机可以跟容器通信,容器之间也可以相互通信。Docker就创建了在主机和所有容器之间一个虚拟共享网络。 3、joined container 联合挂载式网络模式 容器之间可以共享网络协议栈,即可以通过套接字来进行通信。

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

Windows server 2016上的docker容器

Windows server 2016上的docker容器 补: 1.windows server 2016 docker容器安装 首先,安装OneGet PowerShell 模块。 Install-Module -Name DockerMsftProvider -Repository PSGallery –Force 接下来使用OneGet安装最新版的Docker Install-Package -Name docker -ProviderNameDockerMsftProvider 报如下错误: 解决办法: 手动下载docker-1-12-2-cs2-ws-beta.zip (链接地址:https://https://www.doczj.com/doc/418277643.html,/dockercontainer/docker-1-12-2-cs2-ws-beta.zip)放入C:\Users\Administrator\AppData\Local\Temp\DockerMsftProvider目录内,然后再次运行Install-Package -Name docker -ProviderNameDockerMsftProvider命令即可安装完成 最后重启计算机,docker即可使用 (注:安装方法来源于: https://https://www.doczj.com/doc/418277643.html,/zh-cn/virtualization/windowscontainers/deployment/deployment)1.安装容器功能 需要在使用Windows 容器之前启用容器功能。要执行此操作,在提升的PowerShell 会话中运行以下命令。然后输入“Y”重启服务器。 Enable-WindowsOptionalFeature -Online -FeatureName containers –All

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.doczj.com/doc/418277643.html,/boot2docker/windows-installer/releases/latest 2)Ubuntu 系统安装 Docker 要求Ubuntu 系统的内核版本高于3.10 ,查看本页面的前提条件来验证你的Ubuntu 版本是否支持Docker。通过uname -r 命令查看你当前的内核版本 步骤如下: 1、获取最新版本的Docker 安装包:wget -qO- https://https://www.doczj.com/doc/418277643.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适配手册

银河麒麟服务器操作系统D ocker软件适配手册

目录 1概述 (2) 1.1系统概述 (2) 1.2环境概述 (2) 1.3DOCKER及相关软件简介 (2) 1.4架构及原理 (2) 1.4.1优点 (4) 2使用方法 (4) 1)安装DOCKER及相关软件 (4) 2)设置开机自启动并启动DOCKER-CE (4) 3)DOCKER容器使用 (5) 3.1DOCKER客户端 (5) 3.2运行一个应用 (5) 3.3查看应用容器 (5) 3.4网络端口的快捷方式 (6) 3.5查看应用程序日志 (6) 3.6查看应用程序容器的进程 (6) 3.7检查应用程序 (7) 3.8停止应用容器 (8) 3.9重启应用容器 (8) 3.10移除应用容器 (8) 4)DOCKER容器连接 (8) 1.1网络端口映射 (9) 1.2DOCKER容器连接 (10) 1.2.1容器命名 (10) 5)DOCKER镜像使用 (10) 3.1列出镜像列表 (10) 3.2获取一个新的镜像 (11) 3.3查找镜像 (12) 3.4创建镜像 (12) 3.5更新镜像 (12)

1概述 1.1系统概述 银河麒麟服务器操作系统主要面向军队综合电子信息系统、金融系统以及电力系统等国家关键行业的服务器应用领域,突出高安全性、高可用性、高效数据处理、虚拟化等关键技术优势,针对关键业务构建的丰富高效、安全可靠的功能特性,兼容适配长城、联想、浪潮、华为、曙光等国内主流厂商的服务器整机产品,以及达梦、金仓、神通、南大通用等主要国产数据库和中创、金蝶、东方通等国产中间件,满足虚拟化、云计算和大数据时代,服务器业务对操作系统在性能、安全性及可扩展性等方面的需求,是一款具有高安全、高可用、高可靠、高性能的自主可控服务器操作系统。 1.2环境概述 服务器型号长城信安擎天DF720服务器 CPU类型飞腾2000+处理器 操作系统版本Kylin-4.0.2-server-sp2-2000-19050910.Z1 内核版本 4.4.131 docker版本18.06.1~ce 1.3docker及相关软件简介 Docker是一个开源的应用容器引擎,基于Go语言并遵从Apache2.0协议开源。Docker可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。 容器是完全使用沙箱机制,相互之间不会有任何接口,更重要的是容器性能开销极低。 1.4架构及原理 架构如下图所示:

实现docker容器的SDN网络

docker容器的SDN网络实战 实验原理 1.over lay network over lay network 以物理IP网络为承载网的私有VPN网络,其原理是将私有的IP报文,封装为GRE或者VXLAN协议,在物理的TCP/IP网络上传输。 2.ovs

OVS是overlay network的开源实现,为一款功能强大的虚拟交换机,支持VLAN划分、流量监控、QOS等功能。 3.利用docker+ovs实现容器SDN网络

安装docker,将docker网桥连接到虚拟交换机的br0网桥上。并且,在不同主机的虚拟交换机br0网桥之间建立GRE隧道,实现不同主机的docker0网关互通。 实验步骤 1.准备 2台主机,操作系统系统版本均为CentOS Linux release 7.2.1511 (Core),内核版本 3.10.0 2台主机均已安装docker,docker版本为1.9.1 主机1 IP地址 192.168.137.33,docker0网关地址为 172.17.42.1/24 主机2 IP地址 192.168.137.34,docker0网关地址为 172.17.43.1/24 默认情况下 172.17.42.0/24 和 172.17.43.0/24 两个网络互不相通,也就是说2台主机的容器互相不能联通,但通过OVS交换机可实现基于物理IP网络的逻辑IP网络,实现容器间的互通 2.第1台主机配置 关闭selinux 安装ovs 重启主机 ovs-vsctl add-br br0 ovs-vsctl add-port br0 gre1 -- set interface gre1 type=gre option:remote_ip=192.168.137.34 #添加br0到本地docker0, 使得容器流量通过OVS流经tunnel brctl addif docker0 br0

Docker安装使用手册

RHEL7下Docker安装使用手册 1、首先要关闭selinux,因为它会干扰lxc的正常功能: [root@localhost ~]# vim /etc/selinux/config # This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded. SELINUX=disabled # SELINUXTYPE= can take one of these two values: # targeted - Targeted processes are protected, # minimum - Modification of targeted policy. Only selected processes are protected. # mls - Multi Level Security protection. SELINUXTYPE=targeted [root@localhost ~]# reboot 2、安装EPEL repository [root@localhost ~]#yum install https://www.doczj.com/doc/418277643.html,/fedora/epel/beta/7/x86_64/epel-release-7-0.2.noarch.rpm 该安装包是通过从docker官网上的安装方法上获得的资源路径。 3、安装docker-io [root@localhost ~]# yum install docker-io 4、启动docker [root@localhost ~]# service docker start 5、下载镜像,这里以ubuntu镜像为例 [root@localhost ~]# docker pull ubuntu 国内下载较慢 6、测试运行 [root@localhost ~]# docker run ubuntu /bin/echo hello world hello world [root@localhost ~]# docker run -i -t ubuntu /bin/bash root@5e671b8324e5:/# ls bin dev home lib64 mnt proc run srv tmp var boot etc lib media opt root sbin sys usr root@5e671b8324e5:/# exit [root@localhost ~]#

Docker安装Mysql5.7图解

Docker安装mysql 5.7图解 1.在Docker仓库查找mysql5.7.24镜像 命令: docker search mysql:5.7.24 截图: 2.从Docker仓库拉取mysql5.7.24镜像 命令: docker pull mysql:5.7.24 截图: 3.查看本地镜像列表 命令: docker images 或 docker image ls 截图:

4.通过镜像来运行一个容器 命令: docker run # 后台运行 -d # 映射端口号 -p 3306:3306 # 设置mysql登录密码 -e MYSQL_ROOT_PASSWORD=123456 # 当前容器名称 --name mysql5.7.24 # 运行方式关机后自动重启 --restart always mysql:5.7.24 截图: 5.查看容器 命令: docker ps 或 docker ps –a 截图: 6.测试mysql安装是否成功 通过mysql可视化工具进行连接 服务器地址:当前主机IP地址 用户名:root 密码:123456 此步骤请自行测试 7.停止容器 命令: docker stop mysql5.7.24

docker ps –a 截图: 8.启动容器 命令: docker start mysql5.7.24 docker ps 截图: 9.重启容器 命令: docker restart mysql5.7.24 docker ps 截图: 10.删除容器 命令: docker ps –a docker stop mysql5.7.24

docker学习笔记docker私有仓库搭建

Docker学习笔记——Docker私有仓库搭建 和Mavan的管理一样,Dockers不仅提供了一个中央仓库,同时也允许我们使用registry搭建本地私有仓库。 使用私有仓库有许多优点: 节省网络带宽,针对于每个镜像不用每个人都去中央仓库上面去下载,只需要从私有仓库中下载即可; 提供镜像资源利用,针对于公司内部使用的镜像,推送到本地的私有仓库中,以供公司内部相关人员使用。 接下来我们就大致说一下如何在本地搭建私有仓库。 目前Docker Registry已经升级到了v2,最新版的Docker 已不再支持v1。Registry v2使用Go语言编写,在性能和安全性上做了很多优化,重新设计了镜像的存储格式。此文档是在v1的基础上写的,如果需要安装registry v2,只需下载registry:2.2即可,或者可以下载后面的安装脚本运行安装。 环境准备 环境:两个装有Docker的Ubuntu虚拟机 虚拟机一:192.168.112.132 用户开发机

虚拟机二:192.168.112.136 用作私有仓库 此处我们准备了两个虚拟机,分别都安装了Docker,其中132机器用作开发机,136机器用作registry私有仓库机器。环境准备好之后接下来我们就开始搭建私有镜像仓库。 搭建私有仓库 首先在136机器上下载registry镜像 $ sudo docker pull registry 下载完之后我们通过该镜像启动一个容器 $ sudo docker run -d -p 5000:5000 registry 默认情况下,会将仓库存放于容器内的/tmp/registry目录下,这样如果容器被删除,则存放于容器中的镜像也会丢失,所以我们一般情况下会指定本地一个目录挂载到容器内的 /tmp/registry下,如下: $ sudo docker run -d -p 5000:5000 -v /opt/data/registry:/tmp/registry registry可以看到我们启动了一个容器,地址为:192.168.112.136:5000。 测试

docker compose

1.一、Compose安装 2. 3.在安装compose之前,要确保已经安装了docker1.3或以上版本 4.在Linux64位系统上安装compose: 5. 6.curl -L https://https://www.doczj.com/doc/418277643.html,/docker/compose/releases/download/1.1.0/docker-com pose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose 7.chmod +x /usr/local/bin/docker-compose 8. 9.注:当然可以选择安装command completion(见二) 10.uname -s和uname -m中的两个引号是键盘上ESC下面的那个按键 11.此时,compose已经安装成功,使用命令docker-compose --version可以查看 12.如果是在OS X系统上,则需要执行如下步骤(未亲测): 13. 14.二、Compose命令补全 15. 16.安装命令补全 17. 18.确保bash completion已经安装,如果当前使用非最小安装的Linux,bash completion已经 OK了,如果是在MAC上,可以使用brew install bash-completion来安装 19.将completion脚本放在/etc/bash_completion.d/(在MAC上是 /usr/local/etc/bash_completion.d/) 20. 21.curl -L https://https://www.doczj.com/doc/418277643.html,/docker/compose/1.1.0/contrib/compl etion/bash/docker-compose > /etc/bash_completion.d/docker-compose 22. 23.在下次登录时,Completion功能已经可以使用 24.可用的补全取决于在命令行的输入,会补全: 25.* 可用的Docker-compose命令 26.* 对于某一特别命令可用的选项 27.* 在一个给定的上下文条件(比如:具有运行或停止状态的实例的服务或者基于镜像的服 务 VS 基于Dockerfile的服务)下,给出有可行的服务名称,对于docker-compose scale,补全服务名称时会自动有”=”附加上去 28.* 对于可选项的参数,比如:docker-compose kill -s会完成一些信号,比如SIGUP和 SIGUSR1 29. 30.拥有了这项功能以后,Compose更快更少输入了呢!Happy working! 31.三、Compose使用实例 32. 33.在本例中将会实现启动nginx服务及一个数据卷容器,并将该数据卷容器作为nginx的静态文 件 34.1.创建compose文件夹 35.sudo mkdir composetest 36.cd composetest

docker

核心概念 yum install -y docker-io 如果是centos7 yum install -y docker 启动docker /etc/init.d/docker start docker images //查看本地都有哪些镜像 docker tag centos syk123 //为centos镜像设置标签为syk123再使用docker images查看会多出来一行改行的image id和centos的一样 docker search (image-name) //从docker仓库搜索docker镜像后面是关键词 docker run -t -i centos /bin/bash //用下载到的镜像开启容器-i表示让容器的标准输入打开-t表示分配一个伪终端要把-i -t 放到镜像名字前面 当该镜像发生修改后我们可以把该镜像提交重新生成一个新版本进行在本地。 docker ps //查看运行的容器 docker rmi centos //用来删除指定镜像其中后面的参数可以是tag如果是tag时实际上是删除该tag只要该镜像还有其他tag就不会删除该镜像。当后面的参数为镜像ID时则会彻底删除整个镜像连通所有标签一同删除 docker ps -a //查看所有容器包括已经退出的。 三、创建镜像基于已有镜像的容器创建

运行docker run后进入到该容器中我们做一些变更比如安装一些东西然后针对这个容器进行创建新的镜像 docker commit -m "change somth" -a "somebody info" image_id //通过docker images获取id 新镜像名字 例如 docker commit -m "install httpd" -a "syk" 2c74d574293f centos_net-tools 这个命令有点像svn的提交-m 加一些改动信息-a 指定作者相关信息 2c74d这一串为容器id再后面为新镜像的名字 cat centos-6-x86.tar.gz |docker import - centos-6-x86 把现有镜像导出为一个文件 docker save -o syk-centos.tar centos-6-x86 我们还可以用该文件恢复本地镜像 docker load --input aming-centos.tar 或者 docker load < aming-centos.tar docker push image_name //可以把自己的镜像传到dockerhub官方网站 一、我们怎么更方便的进去已经start的容器呢? nsenter:可以通过这个命令进去docker的images里 首先获取一个容器的id: docker inspect --format " ``.`State`.`Pid`" centos_with_nettools 获取一个id 10592 nsenter --target 10592 --mount --yts --ipc --net 这样就进去了,当然这样很麻烦,所以可以写一个脚本: cat in.sh CNAME=$1 CPID=$(docker inspect --format " ``.`State`.`Pid`" $CNAME) nsenter --target $CPID --mount --uts --ipc --net 设置权限: chmod +x in.sh 使用:./in.sh centos_with_nettools 二、查看docker网络

相关主题
文本预览
相关文档 最新文档