首页 文章 精选 留言 我的

精选列表

搜索[基础搭建],共10000篇文章
优秀的个人博客,低调大师

Docker基础之四: Docker入门

Docker入门 (对Docker感兴趣的朋友可以加我的微信ghostcloud2016,然后我把你加到我们的一个Docker爱好者群组里面。) 首先我们检查docker是否安装成功: root@gctest:~# docker info Containers: 3 Images: 18 Server Version: 1.9.0 Storage Driver: aufs Root Dir: /var/lib/docker/aufs Backing Filesystem: extfs Dirs: 24 Dirperm1 Supported: false Execution Driver: native-0.2 Logging Driver: json-file Kernel Version: 3.13.0-32-generic Operating System: Ubuntu precise (12.04.5 LTS) CPUs: 1 Total Memory: 979.2 MiB Name: gctest ID: 5RZM:ZIIU:OVNC:AS2Y:P6YZ:ZQBU:PUF2:7DR5:D3Y7:L6M5:X5RF:LQ6P WARNING: No swap limit support 如果安装成功,会显示容器数量、镜像数量、docker版本等信息。可能的失败原因有: docker: command not found 这个是安装失败,参考上一节。 /var/lib/docker/repositories: permission denied 这个可能是用户没有添加到docker组,参考上一节。 $ docker info Cannot connect to the Docker daemon. Is the docker daemon running on this host? 这个是Daemon没有启动成功。 1 下载一个镜像 # Download an ubuntu image $ docker pull Ubuntu 剖析: 该命令首先检查本地有没有ubuntu镜像,如果没有默认会从Docker Hub进行拉取 当下载成功会出现539c0211cd76: Download complete 这个ID是一个缩写的ID,完整的ID可以通过下面的命令获取docker inspect 或者docker images –no-trunc=true 2 运行一个可交互的shell终端 $ docker run -i -t ubuntu /bin/bash 剖析: -i 表示启动一个可交互的容器 –t表示使用pseudo-TTY,关联到容器的stdin和stdout 在终端中,如果输入exit命令将会停止当前容器;因此如果只是取消关联,可以键入ctrl-p或者ctrl-q 你可以在其他终端通过docker ps –a查看已经运行的容器列表 3 运行一个长时间的程序 # Start a very useful long-running process $ JOB=$(docker run -d ubuntu /bin/sh -c "while true; do echo Hello world; sleep 1; done") # Collect the output of the job so far $ docker logs $JOB # Kill the job 稍微延迟点运行 $ docker kill $JOB 剖析: 本例启动了一个容器,而该容器会每隔1秒输出Helo World –d 表示在后台运行 docker logs $JOB表示查看该容器的日志,就是查看标准输出stdout docker kill $JOB表示停掉这个容器 4 查看容器 $ docker ps # 查看运行中的容器 $ docker ps -a # 查看所有容器 5 容器操作 # 创建并启动容器 $ JOB=$(docker run -d ubuntu /bin/sh -c "while true; do echo Hello world; sleep 1; done") # 停止一个容器 $ docker stop $JOB # 启动一个已经创建的容器 $ docker start $JOB # 重启一个容器 $ docker restart $JOB # 停止一个容器 $ docker kill $JOB # 删除一个容器 $ docker stop $JOB # 必须先停止 $ docker rm $JOB 6 导出服务端口 # 将4444端口从容器导出,在容器内部通过nc监听到4444端口(nc是一个简单的监听器,可以接收用户的输入) $ JOB=$(docker run -d -p 4444 ubuntu:12.10 /bin/nc -l 4444) # 通过docker port可以查看主机上哪一个端口映射到了容器的 4444端口(docker默认使用nat映射方式) $ PORT=$(docker port $JOB 4444 | awk -F: '{ print $2 }') # 向主机的端口,发送hello world $ echo hello world | nc 127.0.0.1 $PORT # 确认容器收到了hello world $ echo "Daemon received: $(docker logs $JOB)" 剖析: nc是一个简单的监听指定端口的程序 -p表示导出容器的指定端口,由于没有指定主机端口,因此是随机分配的 外部程序可以通过主机的端口,间接访问容器的4444端口 7 提交(保存)容器到image # Commit your container to a new named image $ docker commit <container> <some_name> # List your images $ docker images 剖析: 容器运行一个Image时,是不会对image做修改的,而是在原始image上通过UnionFS增加了一个文件层用于读写,因此如果我们要想复用容器,就需要将容器commit成一个镜像。很多初学者会误以为启动一个容器后,原始镜像就会随之改变。

优秀的个人博客,低调大师

常用动态路由协议之OSPF基础篇常用动态路由协议之OSPF基础

根据上篇文章,我们认识了动态路由的中RIP协议和IS-IS两种协议,这次我们来简单认识下动态路由协议的第三种OSPF。 OSPF(开放式最短路径优先) 在自治系统(AS)中,OSPF与RIP和IS-IS一样,都属于内部网关协议(IGP)中的其中一种。 OSPF的工作过程 建立邻居关系,通过学习链路状态信息形成链路状态数据库,根据Dijkstra算法算出最短路径树,最后形成路由表。 OSPF区域定义 OSPF在AS内可以划分多个区域,每个OSPF路由器只能维护所在区域的完整链路状态信息。 区域也分为骨干区(area0)和非骨干区(除area0以外的其他区域) Router ID是OSPF区域内唯一标识路由器IP地址,优先选取loopback接口ip地址,然后在选取物理接口最大的ip地址。 OSPF的DR和BDR的选举方法 先比优先级(优先级为0则不参与选举),再比Router ID(越大越优) 第一大的为DR,第二大的为BDR OSPF的组播地址 224.0.0.5 224.0.0.6 OSPF网络类型 点到点网络 广播多路访问网络 非广播多路访问网络 点到多点网络 OSPF数据包类型 OSPF特点 一、可适应大规模网络 二、路由变化收敛速度快 三、无路由环 四、支持变长子网掩码VLSM 五、支持区域划分 六、支持以组播地址发送协议报 OSPF配置方式 ## 以ensp的ospf2-4样式中为例:以ensp的ospf2-4样式中为例: 第一步配置ip: AP1: int serial 2/0/0 ip address 10.12.0.1 255.2525.255.0 ip add 10.0.1.1 255.255.255.0 AP2: int serial 2/0/1 ip add 10.23.0.2 255.255.255. int gigabitethernet 0/0/0 ip add 10.0.24.2 255.255.255.0 int serial 2/0/0 ip add 10.12.0.2 255.255.255.0 int loopback 0 ip add 10.0.2.2 255.255.255.0 AP3: int serial 2/0/0 ip add 10.0.23.3 255.255.255.0 int serial 2/0/1 ip add 10.0.35.3 255.255.255.0 int loopback 0 ip add 10.0.3.3 255.255.255.0 AP4: int gigabitethernet 0/0/0 ip add 10.0.24.4 255.255.255.0 int loopback 0 ip add 10.0.4.4 255.255.255.0 AP5: int serial 2/0/0 ip add 10.0.24.5 255.255.255.0 int loopback 0 ip add 10.0.4.5 255.255.255.0 注意:华为路由器端口是默认开启的,思科路由器默认端口是关闭的需要进入端口执行no shutdown进行开启端口 第二步: 设置OSPF动态路由 华为: AP1: ospf router-id 10.0.1.1 area 0.0.0.2 network 10.0.12.1 0.0.0.0 network 10.0.1.1 0.0.0.0 AP2: ospf router-id 10.0.2.2 area 0.0.0.0 network 10.0.23.2 0.0.0.0 network 10.0.2.2 0.0.0.0 area 0.0.0.2 network 10.0.12.2 0.0.0.0 area 0.0.0.3 network 10.0.24.2 0.0.0.0 AP3: ospf router-id 10.0.3.3 area 0.0.0.0 network 10.0.23.3 0.0.0.0 network 10.0.3.3 0.0.0.0 area 0.0.0.1 network 10.0.35.3 0.0.0.0 AP4: ospf router-id 10.0.4.4 area 0.0.0.4 network 10.0.24.4 0.0.0.0 network 10.0.4.4 0.0.0.0 AP5: ospf route-id 10.0.5.5 area 0.0.0.5 network 10.0.35.5 0.0.0.0 network 10.0.5.5 0.0.0.0 思科 AP1: router ospf 1 router-id 10.0.1.1 network 10.0.12.1 0.0.0.0 area 2 network 10.0.1.1 0.0.0.0 area 2 AP2: router ospf 1 router-id 10.0.2.2 network 10.0.23.2 0.0.0.0 area 0 network 10.0.2.2 0.0.0.0 area 0 network 10.0.12.2 0.0.0.0 area 2 network 10.0.24.2 0.0.0.0 area 3 AP3: router ospf 1 router-id 10.0.3.3 network 10.0.23.3 0.0.0.0 area 0 network 10.0.3.3 0.0.0.0 area 0 network 10.0.35.3 0.0.0.0 area 1 AP4: router ospf 1 router-id 10.0.4.4 network 10.0.24.4 0.0.0.0 area 3 network 10.0.4.4 0.0.0.0 area 3 AP5: router ospf 1 route-id 10.0.5.5 network 10.0.35.5 0.0.0.0 area 1 network 10.0.5.5 0.0.0.0 area 1 第三步:网络测试 (只要路由条目都有,能够ping通所以ip表示ospf动态路由设置完成) ping测结果: 路由条目:

资源下载

更多资源
优质分享App

优质分享App

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

用户登录
用户注册