Docker容器(一)

一、什么是Docker

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
在这里插入图片描述

二、Docker 的用途

Docker 的主要用途,目前有三大类。

  • 提供一次性的环境。比如,本地测试他人的软件、持续集成的时候提供单元测试和构建的环境。
  • 提供弹性的云服务。因为 Docker 容器可以随开随关,很适合动态扩容和缩容。
  • 组建微服务架构。通过多个容器,一台机器可以跑多个服务,因此在本机就可以模拟出微服务架构。

三、Docker 架构

Docker通过客户端访问守护进程,从而操作Docker容器,而容器是通过镜像创建的,Docker镜像保存在Docker仓库中。
在这里插入图片描述

1、docker client 客户端

Docker 客户端通过命令行或者其他工具使用 Docker SDK 与 Docker 的守护进程通信。

2、docker Daemon 守护进程

Docker是C/S架构的程序,Docker的客户端向守护进程发起请求,守护进程处理完成后返回结果。
Docker客户端既可以在本地访问守护进程,也可以远程访问守护进程。

3、docker Image(镜像)

镜像是Docker容器的基石,容器基于镜像启动和运行,镜像可以看做容器的源代码,保存了用于启动容器的各种条件。

4、docker Container(容器)

Docker容器通过镜像启动,容器是Docker的执行单元,容器中可以运行客户的多个进程。
容器与镜像的关系类似于面向对象编程中的对象与类。

5、docker Registry(仓库)

Docker用仓库保存用户创建的镜像,仓库分共有和私有两种。Docker公司自己提供了最大的公有仓库Docker Hub,可以在Docker Hub上创建账户,保存分享自己创建的镜像。

三、Windows Docker 安装

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

Docker 实质上是在已经运行的 Linux 下制造了一个隔离的文件环境,因此它执行的效率几乎等同于所部署的 Linux 主机。
因此,Docker 必须部署在 Linux 内核的系统上。如果其他系统想部署 Docker 就必须安装一个虚拟 Linux 环境。
在这里插入图片描述
在 Windows 上部署 Docker 的方法都是先安装一个虚拟机,并在安装 Linux 系统的虚拟机中运行 Docker。
Docker Desktop 官方下载地址: https://hub.docker.com/editions/community/docker-ce-desktop-windows

  • 安装完成后打开DOS窗口执行 docker run hello-world 出现如下信息表明安装成功
    在这里插入图片描述

四、基础操作

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

以上命令完整的意思可以解释为:Docker 以 ubuntu15.10 镜像创建一个新容器,然后在容器里执行 bin/echo “Hello world”,然后输出结果。

2、使用docker run -i -t,让 docker 运行的容器实现"对话"的能力
C:\Users\86182>docker run -i -t ubuntu:15.10 /bin/bash
root@c28c8fd6852c:/#
  • 参数解析:
    -t:在新容器内指定一个伪终端或终端。
    -i:允许你对容器内的标准输入 (STDIN) 进行交互。

注意第二行 root@c28c8fd6852c:/#,此时我们已进入一个 ubuntu15.10 系统的容器

在容器中运行命令 cat /proc/version和ls分别查看当前系统的版本信息和当前目录下的文件列表:

C:\Users\86182>docker run -i -t ubuntu:15.10 /bin/bash
root@907ab6969919:/# ls
bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
root@907ab6969919:/# cat /proc/version
Linux version 5.10.16.3-microsoft-standard-WSL2 (oe-user@oe-host) (x86_64-msft-linux-gcc (GCC) 9.3.0, GNU ld (GNU Binutils) 2.34.0.20200220) #1 SMP Fri Apr 2 22:23:49 UTC 2021

exit 命令或者使用 CTRL+D 来退出容器

3、创建一个以进程方式运行的容器
C:\Users\86182>docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo hello world; sleep 1; done"
733509098cc41ad4893b16215e9a5ae15fc55d17bff487f96a49a1fe2c8d8bf2

这个长字符串叫做容器 ID,对每个容器来说都是唯一的,我们可以通过容器 ID 来查看对应的容器发生了什么。

首先,我们需要确认容器有在运行,可以通过 docker ps 来查看:

C:\Users\86182>docker ps
CONTAINER ID   IMAGE          COMMAND                  CREATED              STATUS              PORTS     NAMES
733509098cc4   ubuntu:15.10   "/bin/sh -c 'while t…"   About a minute ago   Up About a minute             cool_bhaskara
  • 参数解析:
    CONTAINER ID:容器 ID。
    IMAGE:使用的镜像。
    COMMAND:启动容器时运行的命令。
    CREATED:容器的创建时间。
    STATUS:容器状态。
    PORTS:容器的端口信息和使用的连接类型(tcp\udp)。
    NAMES:自动分配的容器名称。

在宿主主机内使用 docker logs 命令,查看容器内的标准输出:

C:\Users\86182>docker logs 733509098cc4
hello world
hello world
hello world
hello world
hello world
hello world

docker stop 命令来停止容器

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值