容器的发展和docker 安装与使用

docker是一个后台服务,可以帮助我们在实体机上再虚拟并运行一个操作系统。
docker和虚拟机的不同之处是:

  • docker不像虚拟机模拟硬件让骗取操作系统的信任,而是通过模拟操作系统的进程管理器来骗取软件的信任。

这样的好处是,减少了硬件模拟对计算机的资源消耗。但是不足之处是,目前只要模拟像linux这种开源的操作系统的进程管理,不能模拟微软windows的调度管理。我认为这是linux农村包围城市的初步成效,哈哈。

这样做,可以在对硬件基本没有消耗的情况下,对我们的应用程序搭建一个新的环境,让我们的程序运行在稳定的私立空间之中,这样可以隔离计算机其他程序运行的干扰,理论上最大限度的保证了程序的运行的稳定性。

当然在容器的发展中,docker虽然是先起者,但不是这条路的唯一运动员,针对各种需求,下面是其他几种容器的简介:

  • coreOS rkt, 兼容docker和appc,支持 Kubernets 部署。
  • Mesos 容器引擎。
  • LXC 容器, 比docker出现还早。
  • OpenVZ
  • Containerd

总的来说容器的技术还是非常强大,目前docker还是主流的容器管理器。但所有容器包括docker都只是让程序安全运行的一个工具,就如锄头能够挖地但是和庄稼的成长没有直接关系。


撤了这么多,让我们来看看docker的基本运用。

docker程序的安装:

可以参考Docker新手入门之二:Docker的安装。 有linux各个主流发行版本的docker安装也有windows的。我在的linux内核的Ubuntu操作系统,标示有点考验网速,但是还是安装上了,哈哈。

docker镜像下载:

docker相对于锄头,但是种庄稼还是要如今昂贵的土地,但土地不是天生就有,而是在山坡上,所以要搭建我们的docker环境,首先就得搬来一个山头(愚公移山,1Kb1Kb的搬来,我建议换一个阿里镜像,这样可以1MB1MB的搬了,哈哈)。

docker pull 镜像名字:标签

docker容器运行:
docker容器的运行,相当于开荒,将山头变成土地,在山头上,这个土地还可以继续扩大,功能继续加强,这就是docker容器的魅力。

docker run -it --name 容器名字 -v 主机与镜像共享的目录:在镜像中的目录名字 -p主机与镜像共享的端口:在镜像中的端口/端口协议 镜像名字:镜像标签 运行的程序名字

看着命令这么长,其实可以分开,有的参数其实可以不要,我们先来说说每个参数的大概意义:

命令字段描述是否可选
docker runrun是docker程序启动容器的子命令必选,不解释
-iti:告诉docke我们要交互式运行,t:启动一个虚拟终端(就是黑纸白字那种)一般运行bash控制终端,这个是必选参数
–name 容器名字指定容器的名字可选,如果不指定,容器的名字将会是随机的
-v 主机与镜像共享的目录:在镜像中的目录名字用于与主机的共享目录可选,如果在容器运行的情况下想和容器添加共享目录,可以使用nfs的方式
-p主机与镜像共享的端口:在镜像中的端口/端口协议与主机共享端口,端口协议有udp和tcp可选,docker实现网络通信的方式好像是桥接的虚拟网卡,设置这个端口,外网可以通过主机访问容器的端口,容器运行的时候,好像还不能动态添加共享端口,只有在容器启动的时候指定
镜像名字:镜像标签这个是要指定运行的镜像必选
运行的程序名字启动时在容器中运行的程序可选,启动时,可以不运行任何程序

上面介绍的几个步骤,我们的第一个容器就可以运行了,当然上面这些肯定还是不够的,我们还要查看和管理我们的底盘。

# 查看当前本地已有的镜像
docker image ls 
# 查看当前已有的容器
docker ps -a 
# 如果本地镜像太多,肯定要占用很多磁盘,我们可以删除不用的镜像
docker image rm 镜像名字:标签  / 镜像的唯一ID 
# 容器的关闭
docker stop 容器名字 /容器的唯一ID
# 容器的删除, 只有容器在关闭状态下才能删除
docker rm 容器名字 /容器的唯一ID
# 容器的启动
docker start 容器名字 /容器的唯一ID
# 容器程序的运行,只有在容器启动的状态才能运行容器中的程序
docker exec -it 容器名 程序名字
# 将容器保存为镜像, 一般定制环境的时候需要用到这个,可以做到一次搭建多次使用。
docker commit 容器名 镜像名字:镜像标签
# 镜像的移植,镜像一次搭建,可以多地使用,在线镜像用pull拉去,我们本地的镜像,用save和load
# 保存镜像到本地文件
docker save 镜像名字:标签 -o 文件名.tar
# 本地导入镜像
docker load -i 文件名.tar
docker load < 文件名.tar
# 修改镜像标签
docker tag 镜像名字:标签 /镜像的唯一ID  新的镜像名称:新的标签

当然还是谦虚的说一句,我这里总结docker的命令基本够用了。如果有意见,欢迎留言交流,哈哈。


参考

Docker 核心技术与实现原理
Docker新手入门之二:Docker的安装
外部访问docker容器(docker run -p/-P 指令)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值