Docker---2.Docker容器使用篇

1. 概念

Docker 有 3 个基本概念,分别是 Image(镜像)Container(容器)以及Repository(仓库)

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

PS:

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

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

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

在这里插入图片描述

概念 说明
Docker 镜像(Images) Docker 镜像是用于创建 Docker 容器的模板,比如 Ubuntu 系统。
Docker 容器(Container) 容器是独立运行的一个或一组应用,是镜像运行时的实体。
Docker 客户端(Client) Docker 客户端通过命令行或者其他工具使用 Docker SDK (https://docs.docker.com/develop/sdk/) 与 Docker 的守护进程通信。
Docker 主机(Host) 一个物理或者虚拟的机器用于执行 Docker 守护进程和容器。
Docker Registry Docker 仓库用来保存镜像,可以理解为代码控制中的代码仓库。Docker Hub(https://hub.docker.com) 提供了庞大的镜像集合供使用。一个 Docker Registry 中可以包含多个仓库(Repository);每个仓库可以包含多个标签(Tag);每个标签对应一个镜像。通常,一个仓库会包含同一个软件不同版本的镜像,而标签就常用于对应该软件的各个版本。我们可以通过 <仓库名>:<标签> 的格式来指定具体是这个软件哪个版本的镜像。如果不给出标签,将以 latest 作为默认标签。
Docker Machine Docker Machine是一个简化Docker安装的命令行工具,通过一个简单的命令行即可在相应的平台上安装Docker,比如VirtualBox、 Digital Ocean、Microsoft Azure。

2. 相关命令

2.1 启动docker

service docker start 

不启动使用docker命令会出现报错

Cannot connect to the Docker daemon at unix:///var/run/docker.sock. 
Is the docker daemon running?

2.2 docker run

命令:docker run,使用Docker在容器内运行一个应用程序。

2.2.1 Docker的Hello World!

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

在这里插入图片描述
命令解析:

  • docker: Docker 的二进制执行文件。

  • run: 与前面的 docker 组合来运行一个容器。

  • ubuntu:15.10 指定要运行的镜像,Docker 首先从本地主机上查找镜像是否存在,如果不存在,Docker 就会从镜像仓库 Docker Hub 下载公共镜像。

  • /bin/echo “Hello world”: 在启动的容器里执行的命令。

2.2.2 部分相关参数

run 的部分相关参数:

  • -t: 在新容器内指定一个伪终端或终端。

  • -i: 允许你对容器内的标准输入 (STDIN) 进行交互。

比如说:开启一个ubuntu系统镜像

root@4HTFKO9PKNWGWU0:~# docker run -i -t ubuntu:15.10 /bin/bash
root@6a7bd21754c5:/# echo "Hello World!"
Hello World!

使用exit退出系统:

root@6a7bd21754c5:/# exit
exit
root@4HTFKO9PKNWGWU0:~#

2.2.3 后台运行的容器模式

dokcer run可以在后台运行,使用命令

docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo hello world; sleep 1; done"

在这里插入图片描述
我们可以通过docker ps列出当前所有 的镜像来查看。

docker ps

在这里插入图片描述
输出详情介绍:

  • CONTAINER ID: 容器 ID。

  • IMAGE: 使用的镜像。

  • COMMAND: 启动容器时运行的命令。

  • CREATED: 容器的创建时间。

  • STATUS: 容器状态。

    • created(已创建)
    • restarting(重启中)
    • running 或 Up(运行中)
    • removing(迁移中)
    • paused(暂停)
    • exited(停止)
    • dead(死亡)
  • PORTS: 容器的端口信息和使用的连接类型(tcp\udp)。

  • NAMES: 自动分配的容器名称。

我们看后台运行的时候大概能理解它是输出了一个Hello World,可以使用docker logs + 容器ID/容器Names来查看容器的标准输出。

docker logs 92927a25d292
docker logs admiring_borg

在这里插入图片描述
在这里插入图片描述

ps: 容器ID容器Namesdocker ps里面找

2.2.4 停止后台运行的容器

使用命令docker stop 容器ID/容器Names

 docker stop admiring_borg

在这里插入图片描述

2.3 容器使用

2.3.1 客户端命令查看

  • 查看所有的命令使用docker
    在这里插入图片描述
  • 命令具体内容使用docker command --help去查看,比如说:
docker stats --help

在这里插入图片描述

2.3.2 容器使用

2.3.2.1 拉取镜像

使用命令docker pull 镜像,常用于本地没有镜像的时候。比如说:拉取ubuntu镜像。
在这里插入图片描述

2.3.2.2 使用容器

docker run -it ubuntu /bin/bash

这里的-it-i -t的缩写。命令的意思是使用ubuntu镜像生成一个交互式的终端容器供予使用。

参数说明:

  • -i: 交互式操作。
  • -t: 终端。
  • ubuntu: ubuntu 镜像。
  • /bin/bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash。

在这里插入图片描述

退出容器命令:exit

在这里插入图片描述

2.3.2.3 已停止容器再启动

查看已停止容器

docker ps -a

在这里插入图片描述


启动已停止容器

docker start 容器ID

在这里插入图片描述


后台运行容器

当我们需要容器在后台运行而不是直接运行的时候加入参数-d即可
在这里插入图片描述
这样就不会直接进入,而我们可以使用docker exec命令去进入后台运行容器。


进入后台容器
  • docker exec:推荐使用,因为此命令会退出容器终端,但不会导致容器的停止。
  • docker attach:使用该命令进入后,如果从容器退出,会导致容器的停止。

docker exec命令使用

docker exec -it 4ea881615c3b /bin/bash

在这里插入图片描述

退出后,容器也还存在
在这里插入图片描述


docker attach 命令使用
在这里插入图片描述


2.3.2.4 导入导出容器

导出容器

docker export

docker export 容器ID > 导出文件名.导出文件类型
例如:
docker export 1e560fca3906 > ubuntu.tar

在这里插入图片描述


导入容器

docker import

在这里插入图片描述


2.3.2.5 删除容器

docker rm -f 容器ID 删除时需要是已经停止的状态。

docker rm -f  4ea881615c3b

在这里插入图片描述

2.3.3 web应用

2.3.3.1 运行一个web应用

在docker容器中运行一个 Python Flask 应用来运行一个web应用

docker pull training/webapp
docker run -d -P training/webapp python app.py

参数说明:

  • -d:让容器在后台运行。

  • -P:将容器内部使用的网络端口随机映射到我们使用的主机上。

启动之后可以通过docker ps或者是docker port 容器ID获取监听端口
在这里插入图片描述

在这里插入图片描述
确定开启了之后可以在web上127.0.0.1:端口号访问docker提供的web服务。

在这里插入图片描述


-p:增加该参数,提供固定的端口访问。

 docker run -d -p 5000:5000 training/webapp python app.py

在这里插入图片描述


2.3.3.2 查看web服务日志

docker logs [ID或者名字] :查看容器内部的标准输出。
在这里插入图片描述

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

2.3.3.3 查看web服务容器内的进程

docker top 	容器ID/容器Name

2.3.3.4 检查服务在docker内的配置信息

docker inspect 容器ID :查看 Docker 的底层信息。它会返回一个 JSON 文件记录着 Docker 容器的配置和状态信息。

3 学习链接

链接

加油~ 迎接新一天~ —swrici

猜你喜欢

转载自blog.csdn.net/Srwici/article/details/125603130