Docker实现“build once, run everywhere”

一.docker介绍

        docker是一个用Go语言实现的开源项目,可以让我们方便的创建和使用容器,docker将程序以及程序所有的依赖都打包到docker container,这样你的程序可以在任何环境都会有一致的表现,这里程序运行的依赖也就是容器就好比集装箱,容器所处的操作系统环境就好比货船或港口,程序的表现只和集装箱有关系(容器),和集装箱放在哪个货船或者哪个港口(操作系统)没有关系

        因此我们可以看到docker可以屏蔽环境差异,也就是说,只要你的程序打包到了docker中,那么无论运行在什么环境下程序的行为都是一致的,不会再有“在我的环境上可以运行”,真正实现“build once, run everywhere”。

注意:Docker并非是一个通用的容器工具,它依赖于已存在并运行的Linux内核环境。

二.docker的优势 

  • 灵活性:即使是最复杂的应用程序也可以容器化。
  • 轻量级:容器利用并共享主机内核,使它们在系统资源方面比虚拟机更有效率。
  • 可移植:您可以在本地构建,部署到云上,并在任何地方运行。
  • 松耦合:容器是高度自给自足和封装的,允许您在不影响其他容器的情况下替换或升级其中一个。
  • 可扩展:您可以跨数据中心增加和自动分发容器副本。
  • 安全性:容器对进程应用主动约束和隔离,而不需要用户进行任何配置。

三.docker的架构 

Docker 包括三个基本概念:

  • 镜像(Image):Docker 镜像(Image),就相当于是一个 root 文件系统。比如官方镜像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系统的 root 文件系统。
  • 容器(Container):镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。
  • 仓库(Repository):仓库可看成一个代码控制中心,用来保存镜像。

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

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

四.安装docker 

4.1在centos中运行下面代码

# 1、yum包更新到最新---因为现在的docker更新比较快,而现在我们使用的centos不是最新
yum update
#2、安装需要的软件包,yum-util提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
yum install -y yum-utils device-mapper-persistent-data lvm2
# 3、设置yum源---从哪个网址下载docker软件
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
#4、安装docker ,出现输入的界面都按y
yum install -y docker-ce
# 5、查看docker版本,验证是否验证成功
docker -v

4.2配置镜像加速器

   默认情况下,将来从docker hub (Docker)上下载docker镜像,太慢。一般都会配置镜像加速器。

   这里选择使用阿里镜像加速器

把上面的代码centos中运行一下即可配置成功。

五.docker服务中常用的命令

查看docker服务的状态:  systemctl status docker

关闭docker服务: systemctl stop docker

启动docker服务: systemctl start docker

重启docker服务:  systemctl restart docker

开机自启动docker服务:  systemctl enable docker

5.1 关于docker镜像的命令

(1)搜索镜像----建议在镜像仓库搜索  Docker Hub Container Image Library | App Containerizationicon-default.png?t=N3I4https://hub.docker.com/

docker search 镜像名称  

 (2)拉取指定的镜像到本地

#两种方法
docker pull centos #拉取centos镜像  如果没有使用版本默认为latest
docker pull centos:7 # :7表示版本号

(3) 查看本地的镜像

docker images 

(4)删除镜像

#两种方法

docker rmi imageID  #根据镜像id删除镜像

docker rmi name:tag #根据名称版本号删除镜像

 5.2 关于docker容器的命令

(1) 创建容器并进入容器

#这种方式如果退出容器时,会关闭容器。

docker run -it --name=c1 centos:7 /bin/bash

# -i 保持容器一直运行
# -t 给容器分配伪终端接收命令
# --name 给容器起名字
# centos:7 镜像加版本号
# /bin/bash 进入容器的初始化指令 相当于打开一个shell窗口

 exit 退出容器

(2)查看所有容器

docker ps #查询正在运行的容器

docker ps -a  # 查询所有的容器。

(3)根据镜像创建容器

docker run -id --name=c2 centos:latest  #根据镜像创建容器当不会进入容器内部

(4) 进入指定容器内部 进入容器后再退出则不会关闭容器

 docker exec -it c2  /bin/bash
 c2:容器的名称

 (5) 关闭容器

docker stop #容器id或名称

(6)开启容器

docker start #容器id或名称

(7)删除容器---该容器必须是关闭状态

docker rm #容器id或名称

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值