Docker 三篇 之一

1  Docker 基础

1.1 Docker 简介: 

Docker 是一个开源的应用容器引擎,是直接运行在宿主操作系统之上的一个容器,使用沙箱机制完全虚拟出一个完整的操作,容器之间不会有任何接口,从而让容器与宿主机之间、容器与容器之间隔离的更加彻底。每个容器会有自己的权限管理,独立的网络与存储栈,及自己的资源管理能,使同一台宿主机上可以友好的共存多个容器。

1.2 Docker 与 虚拟机 差在哪?

如果物理机是一幢住宅楼,虚拟机就是大楼中的一个个套间,而容器技术就是套间里的一个个隔断。

应用场景不同

虚拟机更擅长于彻底隔离整个运行环境。如: 云服务提供商通常采用虚拟机技术隔离不同的用户。

Docker通常用于隔离不同的应用,例如前端,后端以及数据库。

资源的使用率不同

虚拟机启动需要数分钟,而Docker容器可以在数毫秒内启动。由于没有臃肿的从操作系统,Docker可以节省大量的磁盘空间以及其他系统资源。

1.3 Docker 版本信息....了解

Docker-CE -> 社区版

    - Stable 版

            稳定版

            一个季度更新一次

    - Edge 版

            非稳定版

            一个月更新一次

 Docker-EE

            收费的, 企业版




1.4 Docker架构与核心组件


docker框架

客户端 -> linux终端

        执行对应的命令, 完成对应的功能

docker服务器 -> 后台守护进程

        不与用户交互

        没有输入输出

docker 镜像

        有了镜像之后才能启动一个容器

        只占用磁盘空间

        来源:

                    自己制作

                    从官方下载 -> 命令

        一个镜像对应的是一个操作系统

                    redis镜像

                                    一个操作系统, 里边安装了redis

                    ubuntu镜像

                                    一个ubuntu操作系统

 容器

                    镜像 启动之后就叫容器

                                    容器占用cpu, 内存资源, 不占硬盘资源

                    容器启动之后相当于操作系统启动了

 镜像仓库

                    官方的镜像仓库 -> docker hub



1.5 Docker 安装 和 卸载

安装 : 

# 1. 安装基本软件

    $ sudo apt-get update

    $ sudo apt-get install apt-transport-https ca-certificates curl software-properties-common lrzsz -y

# 2. apt仓库添加并阿里云的docker软件包

# 把下载的key添加到本地trusted数据库中。

    $ sudo curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -

    $ sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"

# 3. 升级软件源

    $ sudo apt-get update

# 4. 安装docker

    $ sudo apt-get install docker-ce -y

# 5. 测试docker

    $ docker version


卸载 :

# 卸载软件

    sudo apt remove docker-ce  -------  只删除安装程序

    sudo apt purge docker-ce ------- 删除安装程序和对应配置文件

# 删除一下目录

    /etc/docker

    /var/lib/docker

        - 镜像

        - 挂载的数据卷目录等

# 命令, 删除root用户目录

sudo rm -rf 目录名

docker加速器设置 -> 可选 : 

# docker安装完成之后, 启动docker容器需要镜像, 镜像需要从官方下载, 可以通过配置加速器, 提高下载速度

# 访问 https://dashboard.daocloud.io 网站,登录 daocloud 账户

# 提交下载镜像的速度

# 打开加速页面, 拷贝下边的命令到linux终端, 执行

curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io

# 可以去 /etc/docker/daemon.json

这个文件中添加了一句话:

{"registry-mirrors": ["http://f1361db2.m.daocloud.io"]}

# 重启docker服务

sudo systemctl restart docker

1.6 权限问题

$ docker version

Client:

Version:          18.09.0

API version:      1.39

Go version:        go1.10.4

Git commit:        4d60db4

Built:            Wed Nov  7 00:49:01 2018

OS/Arch:          linux/amd64

Experimental:      false

Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.39/version: dial unix /var/run/docker.sock: connect: `permission denied`

# 解决方案1: 在docker命令前加sudo

# 解决方案2: 只需要操作一次

1. 将当前用户加入到docker组中

sudo gpasswd -a 用户名 用户组 ---> sudo gpasswd -a go docker

表示当前用户: $USER

2. 将当前用户切换到docker组中

newgrp - docker

# 第三种解决方案: 只要docker服务重启, 就需要重新设置一次

cd /var/run

sudo chmod 666 docker.sock

1.7 Docker 服务相关操作命令

# 启动

sudo systemctl start docker

# 关闭

sudo systemctl stop docker

# 重启

sudo systemctl restart docker

# 查看状态

sudo systemctl status docker

2   Docker 镜像管理

2.1 镜像的搜索/获取/查看

镜像搜索 : 

# 查看docker中的所有指令

docker --help

# 搜索镜像

docker search 镜像名

# 头

NAME: 镜像名                                                 

DESCRIPTION: 镜像描述                               

STARS: 下载量           

OFFICIAL: 是不是官方制作的镜像         

AUTOMATED: 镜像是不是自动生成的 (Dockerfile)

获取镜像 : 

# 载远程仓库(如Docker Hub)中的镜像

docker pull 镜像名

# 镜像下载到本地之后, 存储在什么地方?

/var/lib/docker

查看镜像 : 

# 命令

# 查看的是本地镜像

# 查看所有本地镜像

docker images == docker image ls

# 查看某个指定的镜像

docker image ls 镜像名

# 头信息

REPOSITORY:镜像名         

TAG: 镜像的版本, 默认是latest               

IMAGE ID: 镜像的ID, 这是唯一的           

CREATED: 创建时间           

SIZE: 镜像大小

# 细节:

表示镜像的时候有两种方式:

- 名字

- 如果镜像的tag==latest, 表示镜像的时候tag可以省略

- 如果镜像的tag不等于latest, 表示名字的时候 => 镜像名:tag

- 镜像ID

2.2 镜像别名/删除

镜像别名: 

# 命令

docker tag 原来的镜像名:[tag] 新的名字[:TAG]

# 别名只是名字不同, 镜像的同一个, 不会复制

删除镜像 :

# 命令

docker rmi == docker image rm

docker rmi [OPTIONS] IMAGE [IMAGE...]

参数:

OPTIONS: -f, --force: 强制删除镜像

IMAGE: 要删除的镜像的名字/ID

# 细节:

- 镜像有别名 -> 只能根据名字删除

- 如果有三个名字, 删除一个还是两个, 再删剩一个, 再删没有(镜像就被删除了)

- 镜像没有别名 -> 只有一个名字

可以根据ID, 镜像名删除

2.3 镜像的导入删除

镜像导出 -> 镜像备份和分发 :

# 将本地仓库中的镜像导出的磁盘目录

docker save [OPTIONS] IMAGE [IMAGE...]

Options:

    -o, --output 导出的镜像名(随便起名)  写一个文件, 替换标准输入出

IMAGE: 要导出的镜像(ID/名字)

镜像导入 :

# 将外部镜像, 导入到本地的镜像仓库中

docker load [OPTIONS]

Options:

      -i, --input string  要导入的镜像的磁盘文件


docker load < 镜像文件名

2.4 镜像的历史和详情信息

查看镜像的历史信息 :

# 制作镜像的时候的操作步骤

docker history

查看镜像的详细信息 : 

# 镜像的属性信息, 以json格式输出的

docker inspect 镜像名/镜像ID

2.5 总结图



3. docker容器管理


docker将镜像文件启动, 得到一个容器, 一个容器可以被看做一个操作系统1

3.1 容器的查看/创建/启动

容器查看

容器创建


容器启动

            启动创建的容器


            创建新容器并启动


3.2 容器的暂停 / 重启


3.3 容器的关闭 / 终止 / 删除


3.4 容器的进入 / 退出


3.5 容器的日志 / 信息 / 端口 / 重命名


3.6 基于容器的镜像导入导出



3.6 总结 图


©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,560评论 4 361
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,104评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,297评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,869评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,275评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,563评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,833评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,543评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,245评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,512评论 2 244
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,011评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,359评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,006评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,062评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,825评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,590评论 2 273
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,501评论 2 268

推荐阅读更多精彩内容