Docker概念简介

作者: jianweixs | 来源:发表于2018-05-05 22:57 被阅读0次

一、docker的三大核心概念

image.png
图片来自:什么是docker镜像? - 网易云的回答 - 知乎
https://www.zhihu.com/question/27561972/answer/230398763

镜像(Image)

Docker镜像类似于虚拟机镜像,可以将它理解为一个只读的模板。

容器(Container)

类似与一个轻量级的沙箱,docker利用容器来运行和隔离应用。简易版的linux环境(包括root用户权限、进程空间、用户空间和网络空间)以及运行在其中的应用程序打包而成的盒子。

仓库(Repository)

docker集中存放镜像的场所,通过不同的标签(tag)来区分。

二、安装docker

CentOS 7下安装Docker,Docker CE支持64位CentOS7,并且要求内核版本比低于3.10.

1.卸载旧的版本:

# yum remove docker docker-common docker-selinux docker

2. 使用yum安装:

# yum install -y yum-utils device-mapper-persisten-data lvm

3.安装最新版Docker CE:

# yum-config-manager --enable docker-ce-edge
# yum install docker-ce

4.启动Docker CE

# systemctl enable docker
# systemctl start docker

5.测试Docker 是否安装正确

# docker run hello-word

三、获取镜像

1. 从docker 镜像仓库获取镜像

# Usage: docker pull [OPTIONS] [Docker Registry NAME[:TAG]

命令帮助: docker pull --help
镜像名称格式:
Docker镜像仓库地址:地址的格式一般是 <域名/IP>[:端口号]。默认地址是Docker Hub
仓库名称:两段式名称,即<用户名>/<软件名>。如果不给出默认为library,也就是官方镜像。

Example:

[root@localhost ~]# docker pull mysql
Using default tag: latest
Trying to pull repository docker.io/library/mysql ...

2.运行容器

docker run -it
-i:交互式操作
-t:终端,

3.常见的镜像命令操作

列出镜像:
    # docker image ls
    # docker images 
列出悬挂镜像:
    docker image ls -f dangling=true 
删除悬挂镜像:
    docker image prune
中间层镜像:
删除本地镜像:
    # docker image rm [选项] <IMAGE1> <IMAGE2>
使用tag命令为镜像添加标签:
    # docker tag nginx:latest mynginx:latest
查看镜像详细信息:
    # docker inspect nginx:latest
查看镜像历史:
    # docker history nginx
    IMAGE               CREATED             CREATED BY                                      SIZE                COMMENT
    ae513a47849c        5 days ago          /bin/sh -c #(nop)  CMD ["nginx" "-g" "daem...   0 B
    <missing>           5 days ago          /bin/sh -c #(nop)  STOPSIGNAL [SIGTERM]         0 B
    <missing>           5 days ago          /bin/sh -c #(nop)  EXPOSE 80/tcp                0 B
    <missing>           5 days ago          /bin/sh -c ln -sf /dev/stdout /var/log/ngi...   0 B
    <missing>           5 days ago          /bin/sh -c set -x  && apt-get update  && a...   53.7 MB
    <missing>           5 days ago          /bin/sh -c #(nop)  ENV NJS_VERSION=1.13.12...   0 B
    <missing>           5 days ago          /bin/sh -c #(nop)  ENV NGINX_VERSION=1.13....   0 B
    <missing>           5 days ago          /bin/sh -c #(nop)  LABEL maintainer=NGINX ...   0 B
    <missing>           7 days ago          /bin/sh -c #(nop)  CMD ["bash"]                 0 B
    <missing>           7 days ago          /bin/sh -c #(nop) ADD file:ec5be7eec56a749...   55.3 MB

删除镜像:
    # docker rmi IMAGE [IMAGE...]
    eg: docker rmi nginx:latest
创建镜像:
    # docker commit [OPTIONS] CONTAINER [REPOSITORY:[TAG]]
    -a, --author string    Author (e.g., "John Hannibal Smith <hannibal@a-team.com>")
    -c, --change list      Apply Dockerfile instruction to the created image (default [])
    --help             Print usage
    -m, --message string   Commit message
    -p, --pause            Pause container during commit (default true)
基于本地模板导入: 
    # docker import [OPTIONS] file|[URL]|- [REPOSITORY[:TAG]]
    eg: cat nginx:latest.tar.gz | docker import - nginx:v1
存储镜像:
    eg:
        docker save -o nginx:v2.tar nginx:latest
        docker load --input nginx:v2.tar 
        docker load < nginx:v2.tar
上传镜像:
    docker push NAME[:TAG] | [RE]

4.删除镜像的特殊用法

(1) 删除所有仓库名为redis的镜像:
# docker image rm $(docker iamge ls -q redis)
(2) 删除所有在mongo:3.2之前的镜像:
# docker image rm $(docker image ls -q -f before=mongo:3.2)

四、遇到的问题

1.docker启动报错

overlay: the backing xfs filesystem is formatted without d_type suppor

解决方法: 修改docker-storage为devicemapper

vim /etc/sysconfig/docker-storage
DOCKER_STORAGE_OPTIONS="--storage-driver devicemapper"

2.pull 镜像的时候遇到以下报错

Get https://registry-1.docker.io/v2/library/python/manifests/2.7http: TLS handshake timeout

解决方法:设置docker镜像加速器
Configure the Docker daemon
Either pass the --registry-mirror option when starting dockerd manually, or edit /etc/docker/daemon.json and add the registry-mirrors key and value, to make the change persistent.
{
"registry-mirrors": ["https://<my-docker-mirror-host>"]
}
https://docs.docker.com/registry/recipes/mirror/#what-if-the-content-changes-on-the-hub

相关文章

  • Docker概念简介

    一、docker的三大核心概念 镜像(Image) Docker镜像类似于虚拟机镜像,可以将它理解为一个只读的模板...

  • Docker概念简介

    脉冲云的部署管理和集群管理底层基于Docker实现,本文就来简单了解一下Docker。 其实脉冲云对底层技术做了很...

  • Docker 入门(一)

    Docker 简介 Docker 基本概念(镜像,容器,仓库) Docker 引擎 基于Dockerfile 镜像...

  • Docker 实战总结

    目录 Docker简介 Docker优势 Docker基本概念 Docker安装使用 Docker常用命令 Doc...

  • Docker学习二、docker安装以及配置镜像加速

    前言 本文主要是实践操作,相关理论概念请参考Docker学习一、docker简介以及核心概念 一、Docker安装...

  • Docker学习笔记

    Docker 简介 戳这里 基本概念 Docker 包括三个基本概念 镜像(Image) 容器(Container...

  • 【Docker学习笔记(三)】Dockerfile解析

    【Docker 学习笔记目录】 【Docker学习笔记(一)】简介、核心概念、安装以及常用命令 【Docker学习...

  • 五、Spring Boot与Docker

    一、简介 二、Docker核心概念 三、Docker安装 四、Docker常用命令&操作 五、安装MySQL

  • docker容器封装|docker容器使用

    docker概念简介 首先要明白一点docker是一个容器的概念,那么它就是夸平台的。 其次,docker的优势:...

  • Springboot核心技术学习笔记二

    第 5 章 SpringBoot 与 Docker5.1 Docker 简介5.2 核心概念5.3 安装Docke...

网友评论

    本文标题:Docker概念简介

    本文链接:https://www.haomeiwen.com/subject/maswfftx.html