Docker01----学习资料整理

 

 

 

1.Docker简介

Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源。

Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行
的 Linux 机器上,也可以实现虚拟化。

容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销
极低。

2.Docker的作用

1)Web 应用的自动化打包和发布。

2)自动化测试和持续集成、发布。

3)在服务型环境中部署和调整数据库或其他的后台应用。

4)从头编译或者扩展现有的OpenShift或Cloud Foundry平台来搭建自己的PaaS环境。

3.Docker的优势

对æ¯ä¼ ç»èææº

1)资源利用率高

2)启动速度快

3)一致的运行环境

4)持续交付和部署

5)迁移较容易

4.Docker的版本

Docker 划分为CE 和EE。CE 即社区版(免费,支持周期三个月),EE 即企业版,强调安全,付费使用。Docker在1.13 版本之后,从2017年的3月1日开始,版本命名规则变为:YY.MM .Docker CE 每月发布一个Edge 版本(17.03, 17.04, 17.05…),每三个月发布一个Stable 版本(17.03, 17.06, 17.09…),Docker EE 和Stable 版本号保持一致,但每个版本提供一年维护。

5.Docker中的几个基本概念

1)镜像:简单来说,就是面向对象中的类,相当于一个模板; 本质上来讲,其实是一个文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。镜像不包含任何动态数据,其内容在构建之后也不会被改变。

2)容器:从认识上来说,就是类创建的实例,是依据镜像这个模板创建出来的实体。容器的实质是进程,但与直接在宿主执行的进程不同,容器进程运行于属于自己的独立的命名空间。因此容器可以拥有自己的root 文件系统、自己的网络配置、自己的进程空间,甚至自己的用户ID 空间。容器内的进程是运行在一个隔离的环境里,使用起来,就好像是在一个独立于宿主的系统下操作一样。这种特性使得容器封装的应用比直接在宿主运行更加安全。
3)仓库:从认识上来说,就好像软件包上传下载站,有各种软件的不同版本被上传供用户下载。镜像构建完成后,可以很容易的在当前宿主机上运行,但是,如果需要在其它服务器上使用这个镜像,我们就需要一个集中的存储、分发镜像的服务,Docker Registry 就是这样的服务。

4)分层存储:镜像构建时,会一层层构建,前一层是后一层的基础。每一层构建完就不会再发生改变,后一层上的任何改变只发生在自己这一层。每一层删除的文件会跟随镜像,任何额外的东西应该在该层构建结束前清理掉。分层存储的特征还使得镜像的复用、定制变的更为容易。甚至可以用之前构建好的镜像作为基础层,然后进一步添加新的层,以定制自己所需的内容,构建新的镜像。

6.Docker的架构

Docker 使用客户端-服务器 (C/S) 架构模式,使用远程API来管理和创建Docker容器。

Docker 容器通过 Docker 镜像来创建。

容器与镜像的关系类似于面向对象编程中的对象与类。

Docker Client: Docker 客户端通过命令行或者其他工具使用 Docker API (https://docs.docker.com/reference/api/docker_remote_api) 与 Docker 的守护进程通信。

Docker Host: 一个物理或者虚拟的机器用于执行 Docker 守护进程和容器。

Docker Machine:  Docker Machine是一个简化Docker安装的命令行工具,如VirtualBox、 Digital Ocean、Microsoft Azure。

 

7.Docker的安装----CentOS

7.1 Docker的环境要求

Docker支持以下的CentOS版本:

  • CentOS 7 (64-bit)   、  64位、系统内核版本为 3.10 以上
  • CentOS 6.5 (64-bit) 或更高的版本、  64位、系统内核版本为 2.6.32-431 或者更高版本

7.2使用yum安装

#查看内核版本

uname -r

#移除旧版本

sudo yum remove docker \
                   docker-client \
                   docker-client-latest \
                   docker-common \
                   docker-latest \
                   docker-latest-logrotate \
                   docker-logrotate \
                   docker-selinux \
                   docker-engine-selinux \
                   docker-engine
 

#安装必要的系统工具

sudo yum install -y yum-utils device-mapper-persistent-data lvm2
#添加源信息

sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
#更新yum缓存

sudo yum makecache fast

#安装docker-ce

sudo yum -y install docker-ce

#启动Docker后台服务

sudo systemctl start docker

#测试运行

docker run hello-world
(由于本地没有hello-world这个镜像,所以会下载一个hello-world的镜像,并在容器内运行。)
#查看运行的docker镜像

docker image list

#Docker的升级

yum -y upgrade  新版本docker文件

7.3 镜像加速

鉴于国内网络问题,后续拉取 Docker 镜像十分缓慢,我们可以需要配置加速器来解决,我使用的是网易的镜像地址:http://hub-mirror.c.163.com。

新版的 Docker 使用 /etc/docker/daemon.json(Linux) 或者 %programdata%\docker\config\daemon.json(Windows) 来配置 Daemon。

请在该配置文件中加入(没有该文件的话,请先建一个):

{
  "registry-mirrors": ["http://hub-mirror.c.163.com"]
}

#配置完重新启动服务

sudo systemctl daemon-reload

sudo systemctl restart docker

7.4删除Docker-CE

$ sudo yum remove docker-ce
$ sudo rm -rf /var/lib/docker

 

8.Docker的安装2----用CentOS自带的软件源

#Docker 软件包已经包括在默认的 CentOS-Extras 软件源里。

yum install docker-io -y

#查看版本

docker -v

#启动docker

service docker start

#设置开机启动

chkconfig docker on

 


9.Docker Hello World

9.1在容器内运行一个应用程序

docker run ubuntu:15.10 /bin/echo "Hello World"

(Docker 以 ubuntu15.10 镜像创建一个新容器,然后在容器里执行 bin/echo "Hello world",然后输出结果)

参数解析:
    docker: Docker 的二进制执行文件。
    run:与前面的 docker 组合来运行一个容器。
    ubuntu:15.10指定要运行的镜像,Docker先从本地主机上查找镜像是否存在,如果不存在,Docker 就会从镜像仓库 Docker Hub 下载公共镜像。
    /bin/echo "Hello world": 在启动的容器里执行的命令

9.2运行交互式容器
 
docker run -i -t ubuntu:15.10 /bin/bash

cat /proc/version    (查看当前系统的版本)
ll                    (查看文件列表)
Ctrl + D            (退出容器)

参数解析:
    -t:在新容器内指定一个伪终端或终端。
    -i:允许你对容器内的标准输入 (STDIN) 进行交互。
    
9.3 后台模式运行容器

以进程方式运行的容器,返回的是容器ID
docker run -d ubuntu:15.10 /bin/sh -c "while true;do echo hello world;sleep 1;done"

docker ps       (查看在运行的容器)
docker logs  d3f44c894acd (查看容器内的标准输出)
docker stop  d3f44c894acd    (停止容器,参数用容器ID或容器名称都可以)
docker ps -a         (查看所有容器,包括运行的和停止的)
docker start  d3f44c894acd   (启动指定ID的容器)


10.Docker容器的使用

10.1 Docker 客户端
docker        (查看客户端的所有命令选项)
docker stats --help     (查看指定命令的具体使用方法)


10.2运行一个web应用

1)#载入镜像
docker pull training/webapp    (载入镜像)
docker run -d -P training/webapp python app.py   (将容器内部使用的端口映射到使用的主机的默认随机端口上)
docker ps

参数解析:
    -d:让容器在后台运行。
    -P:将容器内部使用的网络端口映射到我们使用的主机上。
    -p:设置端口

浏览器访问: 10.0.0.70:32768    (Docker5000----主机32768)

2)#查看端口映射
docker run -d -p 5000:5000 training/webapp python app.py  (#容器内部的 5000 端口映射到我们本地主机的 5000 端口上)
docker ps

docker port f2e586db4478    (查看指定容器的网络映射端口)


3)#查看web应用程序日志
docker logs -f  f2e586db4478

参数解析:
    -f: 让 docker logs 像使用 tail -f 一样来输出容器内部的标准输出。

4)#查看web应用程序容器的进程
docker top f2e586db4478

5)#检查web应用程序

docker inspect f2e586db4478   (返回一个 JSON 文件记录着 Docker 容器的配置和状态信息。)

6)#停止web应用容器

docker stop f2e586db4478

7)#重启web应用容器

docker start f2e586db4478        (docker restart 命令来重启正在运行的容器)

docker ps -l     (查询最后一次创建的容器)
 #修改容器名称
docker rename  determined_panini   webapp01

8)#移除web应用容器

docker rm  f2e586db4478

注:删除容器时,容器必须是停止状态,否则会报错


11.Docker镜像使用

#列出主机上的镜像
docker images

各个选项说明:

    REPOSITORY:表示镜像的仓库源
    TAG:镜像的标签
    IMAGE ID:镜像ID
    CREATED:镜像创建时间
    SIZE:镜像大小

#预先下载镜像
    docker pull ubuntu:13.10

#查找镜像
 docker search httpd
 
 选项说明:
     NAME:镜像仓库源的名称
    DESCRIPTION:镜像的描述
    OFFICIAL:是否docker官方发布
    
#下载镜像
docker pull httpd
docker run httpd

#更新镜像
docker fun -t -i ubuntu:15.10 /bin/bash

运行的容器内进行更新:apt-get update

docker commit -m="has update" -a="runoob"  e218edb10161  runoob/ubuntu:v2
docker images
docker run -t -i runoob/ubuntu:v2 /bin/bash

参数解析:

    -m:提交的描述信息
    -a:指定镜像作者
    e218edb10161:容器ID
    runoob/ubuntu:v2:指定要创建的目标镜像名

以下是对提供的参考资料的总结,按照要求结构化多个要点分条输出: 4G/5G无线网络优化与网规案例分析: NSA站点下终端掉4G问题:部分用户反馈NSA终端频繁掉4G,主要因终端主动发起SCGfail导致。分析显示,在信号较好的环境下,终端可能因节能、过热保护等原因主动释放连接。解决方案建议终端侧进行分析处理,尝试关闭节电开关等。 RSSI算法识别天馈遮挡:通过计算RSSI平均值及差值识别天馈遮挡,差值大于3dB则认定有遮挡。不同设备分组规则不同,如64T和32T。此方法可有效帮助现场人员识别因环境变化引起的网络问题。 5G 160M组网小区CA不生效:某5G站点开启100M+60M CA功能后,测试发现UE无法正常使用CA功能。问题原因在于CA频点集标识配置错误,修正后测试正常。 5G网络优化与策略: CCE映射方式优化:针对诺基亚站点覆盖农村区域,通过优化CCE资源映射方式(交织、非交织),提升RRC连接建立成功率和无线接通率。非交织方式相比交织方式有显著提升。 5G AAU两扇区组网:与三扇区组网相比,AAU两扇区组网在RSRP、SINR、下载速率和上传速率上表现不同,需根据具体场景选择适合的组网方式。 5G语音解决方案:包括沿用4G语音解决方案、EPS Fallback方案和VoNR方案。不同方案适用于不同的5G组网策略,如NSA和SA,并影响语音连续性和网络覆盖。 4G网络优化与资源利用: 4G室分设备利旧:面对4G网络投资压减与资源需求矛盾,提出利旧多维度调优策略,包括资源整合、统筹调配既有资源,以满足新增需求和提质增效。 宏站RRU设备1托N射灯:针对5G深度覆盖需求,研究使用宏站AAU结合1托N射灯方案,快速便捷地开通5G站点,提升深度覆盖能力。 基站与流程管理: 爱立信LTE基站邻区添加流程:未提供具体内容,但通常涉及邻区规划、参数配置、测试验证等步骤,以确保基站间顺畅切换和覆盖连续性。 网络规划与策略: 新高铁跨海大桥覆盖方案试点:虽未提供详细内容,但可推测涉及高铁跨海大桥区域的4G/5G网络覆盖规划,需考虑信号穿透、移动性管理、网络容量等因素。 总结: 提供的参考资料涵盖了4G/5G无线网络优化、网规案例分析、网络优化策略、资源利用、基站管理等多个方面。 通过具体案例分析,展示了无线网络优化中的常见问题及解决方案,如NSA终端掉4G、RSSI识别天馈遮挡、CA不生效等。 强调了5G网络优化与策略的重要性,包括CCE映射方式优化、5G语音解决方案、AAU扇区组网选择等。 提出了4G网络优化与资源利用的策略,如室分设备利旧、宏站RRU设备1托N射灯等。 基站与流程管理方面,提到了爱立信LTE基站邻区添加流程,但未给出具体细节。 新高铁跨海大桥覆盖方案试点展示了特殊场景下的网络规划需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值