> 文档中心 > Docker的安装和使用

Docker的安装和使用


CentOS Docker 安装

卸载较旧版本

较旧的 Docker 版本称为 docker 或 docker-engine 。如果已安装这些程序,请卸载它们以及相关的依赖项。

rpm -qa | grep docker #查看是否有依赖项

安装 Docker Engine-Community

使用Docker仓库进行安装

在新主机上首次安装 Docker Engine-Community 之前,需要设置 Docker 仓库。之后,您可以从仓库安装和更新 Docker。

设置仓库

安装所需的软件包。yum-utils 提供了 yum-config-manager ,并且 device mapper 存储驱动程序需要 device-mapper-persistent-data 和 lvm2。

sudo yum install -y yum-utils \  device-mapper-persistent-data \  lvm2

使用以下命令来设置稳定的仓库。

sudo yum-config-manager \    --add-repo \    https://download.docker.com/linux/centos/docker-ce.repo

安装最新版本的Docker Engine-Community

sudo yum install docker-ce docker-ce-cli containerd.io

Docker 安装完默认未启动。已经创建好 docker 用户组,但该用户组下没有用户。

要安装特定版本的 Docker Engine-Community,请在存储库中列出可用版本,然后选择并安装:

1、列出并排序您存储库中可用的版本。此示例按版本号(从高到低)对结果进行排序。

yum list docker-ce --showduplicates | sort -rdocker-ce.x86_64  3:18.09.1-3.el7docker-ce-stabledocker-ce.x86_64  3:18.09.0-3.el7docker-ce-stabledocker-ce.x86_64  18.06.1.ce-3.el7      docker-ce-stabledocker-ce.x86_64  18.06.0.ce-3.el7      docker-ce-stable

2、通过其完整的软件包名称安装特定版本,该软件包名称是软件包名称(docker-ce)加上版本字符串(第二列)。版本号是从第一个冒号(:)一直到第一个连字符,并用连字符(-)分隔。例如:docker-ce-18.09.1。

sudo yum install docker-ce- docker-ce-cli- containerd.io

启动 Docker

sudo systemctl start docker

Docker默认是从DockerHub拉取镜像,我们可以配置加速地址从国内拉取。

Docker 的基本操作

获取帮助信息
docker 查看 Docker 客户端的所有命令选项
docker stats --help 查看指定的 Docker 命令使用方法。

容器使用

获取镜像
如果我们本地没有 ubuntu 镜像,我们可以使用 docker pull 命令来载入 ubuntu 镜像:

docker pull ubuntu

我们还可以直接像下面的例子一样,直接启动容器,如果没有使用docker pull预下载镜像,在通过镜像启动容器的同时,会下载镜像。

docker images #查看本地镜像

启动容器

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

runoob@runoob:~$ docker logs 2b1b7a428627 #除了容器ID还可以用容器名称

以下命令使用 ubuntu 镜像启动一个容器,启动的同时会进入到容器里面,可以执行一系列的操作我们也可以不带任何参数的启动一个容器:

docker run -it ubuntu /bin/bash

参数说明:

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

以上命令会让我们直接进入到容器里面,要退出终端,直接输入 exit 或 Ctrl + d。退出终端后,容器也将会停止。

容器的启动和停止

docker start 容器名称/容器ID
docker stop 容器名称/容器ID
docker restart 容器名称/容器ID
docker ps -a 查看所有的容器(包括停止和启动的容器,不加a只看启动的容器

docker ps 输出详情介绍

runoob@runoob:~$ docker psCONTAINER ID IMAGE    COMMAND...  5917eac21c36 ubuntu:15.10    "/bin/sh -c 'while t…"    ...

输出详情介绍:

CONTAINER ID: 容器 ID。

IMAGE: 使用的镜像。

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

CREATED: 容器的创建时间。

STATUS: 容器状态。

状态有7种:

  • List item
  • created(已创建)
  • restarting(重启中)
  • running(运行中)
  • removing(迁移中)
  • paused(暂停)
  • exited(停止)
  • dead(死亡)

PORTS: 容器的端口信息和使用的连接类型(tcp\udp)。

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

后台运行

在大部分的场景下,我们希望 docker 的服务是在后台运行的,我们可以过 -d 指定容器的运行模式。

docker run -itd --name ubuntu-test ubuntu /bin/bash

–name :设置容器名称

进入容器

在使用 -d 参数时,容器启动后会进入后台。此时想要进入容器,可以通过以下指令进入:

  • docker attach
  • docker exec:推荐大家使用 docker exec 命令,因为此方法退出容器终端,不会导致容器的停止。

attach 命令

docker attach 1e560fca3906

注意: 如果从这个容器退出,会导致容器的停止。

exec 命令

docker exec -it 243c32535da7 /bin/bash

此方法退出容器终端,不会导致容器的停止。

导入和导出容器

导出容器

docker export 1e560fca3906 > ubuntu.tar

导出容器快照到本地文件,不需要容器停止就可以导出。就像一个快照一样,保存容器的运行状态和环境。

导入容器

cat docker/ubuntu.tar | docker import - test/ubuntu:v1

test/ubuntu:v1 冒号前为容器的名称,后为标签。

此外,也可以通过指定 URL 或者某个目录来导入,例如:

docker import http://example.com/exampleimage.tgz example/imagerepo

删除容器

docker rm -f 1e560fca3906

docker container prune #清理掉所有处于终止状态的容器。