Just Do IT !

Centos7 Docker基本命令详解

字数统计: 1.5k阅读时长: 6 min
2019/11/04 Share

Docker安装

Ubuntu 14.04 版本系统中已经自带了 Docker 包,可以直接安装。

1
2
3
4
$	sudo	apt-get	update
$ sudo apt-get install -y docker.io
$ sudo ln -sf /usr/bin/docker.io /usr/local/bin/docker
$ sudo sed -i '$acomplete -F _docker docker' /etc/bash_completion.d/docker.io

这里咱们重点讲述Centos7的Docker安装

一、检查系统内核

Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker 。
通过 uname -r 命令查看你当前的内核版本
[root@master ~]# uname -r
在这里插入图片描述

二、安装Docker

Docker 软件包和依赖包已经包含在默认的 CentOS-Extras 软件源里,安装命令如下:
[root@master ~]# yum -y install docker

报错:
在这里插入图片描述

虚拟机没有设置DNS地址

解决:

1、打开 vi /etc/resolv.conf,增加 nameserver 8.8.8.8
2、重启网络: service network restart
在这里插入图片描述
成功

查看docker版本

[root@master ~]# docker version
在这里插入图片描述

启动docker

方式一:

1
2
3
[root@master ~]# service docker start
Redirecting to /bin/systemctl start docker.service
[root@master ~]# service docker status

在这里插入图片描述
方式二:

1
2
[root@master ~]# systemctl start docker.service
[root@master ~]# ps aux | grep docker

运行helloworld

[root@node1 ~]# docker run hello-world
在这里插入图片描述
由于本地没有hello-world这个镜像,所以会下载一个hello-world的镜像,并在容器内运行。

安装Ubuntu镜像

下载镜像

从 Docker 镜像仓库获取镜像的命令是 docker pull。
其命令格式为:docker pull [选项] [Docker Registry 地址[:端口号]/]仓库名[:标签]
可以直接使用docker pull ubuntu命令安装镜像
[root@node1 ~]# docker pull ubuntu
在这里插入图片描述

查看拥有的镜像

[root@node1 ~]$ docker images
在这里插入图片描述一个是ubuntu镜像,另一个是我们之前使用docker run hello-world命令下载的镜像。

镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的 类 和 实例 一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。

运行容器

有了镜像后,我们就能够以这个镜像为基础启动并运行一个容器。
[root@node1 ~]# docker run -it --rm ubuntu bash
在这里插入图片描述
docker run 就是运行容器的命令,说明一下上面用到的参数。

  • -it:这是两个参数,一个是 -i:交互式操作,一个是 -t 终端。我们这里打算进入 bash 执行一些命令并查看返回结果,因 此我们需要交互式终端。
  • –rm:这个参数是说容器退出后随之将其删除。默认情况下,为了排障需求,退出的容器并不会立即删除,除非手动 docker rm。我们这里只是随便执行个命令,看看结果,不需要排障和保留结果,因此使用 –rm 可以避免浪费空间。
  • ubuntu :这是指用ubuntu 镜像为基础来启动容器。
  • bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 bash。

    在容器中运行命令

    [root@6e024ac638c0 /]# cat /etc/os-release
    在这里插入图片描述
    进入容器后,我们可以在 Shell 下操作,执行任何所需的命令。这里,我们执行了 cat /etc/os-release,这是 Linux 常用的查看当前系统版本的命令,从返回的结果可以看到容器内是 Ubuntu Linux 系统。

最后我们可以通过 exit 退出了这个容器。

查看镜像、容器、数据卷所占用的空间

[root@node1 ~]# docker system df
在这里插入图片描述

查看容器

  • docker ps: 查看当前运行的容器
  • docker ps -a:查看所有容器,包括停止的。
    在这里插入图片描述
    标题含义:

CONTAINER ID:容器的唯一表示ID。
IMAGE:创建容器时使用的镜像。
COMMAND:容器最后运行的命令。
CREATED:创建容器的时间。
STATUS:容器状态。
PORTS:对外开放的端口。
NAMES:容器名。可以和容器ID一样唯一标识容器,同一台宿主机上不允许有同名容器存在,否则会冲突。
使用命令停止并删除这个容器就可以

运行容器

使用命令运行容器

1
2
[root@node1 ~]# docker run -it -v /home/docker/build:/root/build --privileged -h hadoop1 --name hadoop1 ubuntu /bin/bash
root@hadoop1:/#

以Ubuntu镜像启动一个容器,容器名是hadoop1,主机名是hadoop1,并且将基于容器的centos系统的/root/build目录与本地/home/docker/build共享。

参数解释:

  • -v 表示基于容器的centos系统的/root/build目录与本地/home/hadoop/build共享;这可以很方便将本地文件上传到Docker内部的centos系统;
  • -h 指定主机名为hadoop1
  • –-name 指定容器名
  • /bin/bash 使用bash命令

保存镜像

基于已有的docker容器,做一新的dokcer image.

新开一个窗口

$ docker commit <container_id> <image_name>

可加参数

  • -a, –author=”” 作者信息
  • -m, –message=”” 提交消息
  • -p, –pause=true 提交时暂停容器运行
    在这里插入图片描述

镜像

查看镜像详细信息

[root@node1 ~]# docker inspect 镜像ID

在这里插入图片描述

搜寻镜像

[root@node1 ~]# docker search mysql

在这里插入图片描述
关键字包括:镜像名字,描述,星级(表示该镜像的受欢迎程度),是否官方创建,是否自动创建等.

删除镜像

使用镜像的标签删除镜像

docker rmi IMAGE [IMAGE,,,]

例如:
docker rmi ubuntu_base

在这里插入图片描述
当一个镜像有多个标签时,docker rmi命令只是删除了该镜像多个标签中的指定标签而已,并不影响镜像文件.

但是当镜像只剩下一个标签的时候,在使用docker rmi命令会彻底删除该镜像

使用镜像ID删除镜像

使用 docker rmi命令后面跟上镜像的ID时,会尝试删除所有指向该镜像的标签,然后删除该镜像文件本身

注意: 当有该镜像创建的容器存在时,镜像文件默认是无法被删除的

在这里插入图片描述
如图可以看到,该镜像无法删除,这是因为基于该镜像的容器处于一个退出状态
在这里插入图片描述
正确做法是:先删除依赖该镜像的所有容器,再来删除镜像.

创建镜像

存出镜像

在这里插入图片描述
[root@node1 ~]# docker save -o ubuntu.tar docker.io/ubuntu
在这里插入图片描述

载入镜像

docker load --input ubuntu.tar

docker load < ubuntu,tar

上传镜像

docker push NAME[:TAG]

用户在DockerHub网站注册以后,即可上传自制的镜像.

CATALOG
  1. 1. Docker安装
    1. 1.1. 一、检查系统内核
    2. 1.2. 二、安装Docker
    3. 1.3. 查看docker版本
  2. 2. 启动docker
    1. 2.1. 运行helloworld
  3. 3. 安装Ubuntu镜像
    1. 3.1. 下载镜像
      1. 3.1.1. 查看拥有的镜像
      2. 3.1.2. 运行容器
      3. 3.1.3. 在容器中运行命令
      4. 3.1.4. 查看镜像、容器、数据卷所占用的空间
      5. 3.1.5. 查看容器
      6. 3.1.6. 运行容器
      7. 3.1.7. 保存镜像
  4. 4. 镜像
    1. 4.1. 查看镜像详细信息
    2. 4.2. 搜寻镜像
    3. 4.3. 删除镜像
      1. 4.3.1. 使用镜像ID删除镜像
    4. 4.4. 创建镜像
      1. 4.4.1. 存出镜像
      2. 4.4.2. 载入镜像
    5. 4.5. 上传镜像