1.1:什么是docker?有什么用?

  • Docker是一个用于开发,交付和运行应用程序的开放平台。Docker使您能够将应用程序与基础架构分开,从而可以快速交付软件。

  • 是一个开源的应用容器引擎,让开发者可以打包大门的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或者Windows机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口

  • 沙箱(Sandbox):在计算机安全领域,沙箱是一种程序的隔离运行机制

  • Docker在2013年一炮而红,直到现在,已经成为容器技术的代名词。

  • Docker从一开始就以提供标准化的运行时环境为目标,真正做到“build once, run anywhere”,可以将同一个构建版本用于开发、测试、预发布、生产等任何环境,并且做到了与底层操作系统的解耦。在此基础上还进一步发展出了CaaS(容器即服务)技术。

1.2:Docker的使用场景

  • 打包应用程序简单部署
  • 可脱离底层硬件任意迁移(实现了应用的隔离,将应用拆分并进行解耦),例如:服务器从腾讯云迁移到阿里云
  • 持续集成和持续交付(CI/CD):开发到测试发布
  • 部署微服务
  • 提供PAAS产品(平台即服务){OpenStack的云主机类似于阿里云的ECS,属于IAAS、Docker(K8S) 属于PAAS}

1.3:Docker引擎(Docker Engine)

  • Docker Engine是具有以下主要组件的客户端-服务器应用程序
  • 服务器是一种长期运行的程序,称为守护程序进程(dockerd 命令)
  • REST API,它指定程序可以用来与守护程序进行通信并指示其操作的口。
  • 命令行界面(CLI)客户端(docker 命令)

1.4:Docker的架构(Docker architecture)

  • Docker使用客户端-服务器架构。Docker 客户端与Docker 守护进程进行对话,该守护进程完成了构建,运行和分发Docker容器的繁重工作。

  • Docker区别于传统的虚拟化,不需要虚拟硬件资源,直接使用容器引擎,所以速度快。

  • Docker Client:客户端
    Docker客户端(docker)是许多Docker用户与Docker交互的主要方式。当您使用诸如之类的命令时docker run,客户端会将这些命令发送到dockerd,以执行这些命令。该docker命令使用Docker API。Docker客户端可以与多个守护程序通信。

  • Docker daemon:守护进程
    Docker守护程序(dockerd)侦听Docker API请求并管理Docker对象,例如图像,容器,网络和卷。守护程序还可以与其他守护程序通信以管理Docker服务。

  • Docker images:镜像
    容器可以被打包成镜像

  • Docker container:容器

  • Docker registry:镜像仓库
    存储镜像的地方,默认在公共的Docker Hub上查找,可以搞个人仓库。

1.5:容器与虚拟机的区别

1.6:名称空间(Namespaces)

  • Docker使用一种称为namespaces提供容器的隔离工作区的技术。运行容器时,Docker会为该容器创建一组 名称空间。
  • 这些名称空间提供了一层隔离。容器的每个方面都在单独的名称空间中运行,并且其访问仅限于该名称空间。
  • Docker Engine在Linux上使用以下名称空间:
    该pid命名空间进程隔离(PID:进程ID)。
    该net命名空间管理网络接口(NET:网络)。
    该ipc命名空间管理访问IPC资源(IPC:进程间通信)。
    该mnt命名空间管理文件系统挂载点(MNT:mount)。
    该uts命名空间隔离内核和版本标识符。(UTS:Unix时间共享系统)。

1.7:控制组(Control groups)

  • Linux上的Docker引擎还依赖于另一种称为控制组 (cgroups)的技术。cgroup将应用程序限制为一组特定的资源。控制组允许Docker Engine将可用的硬件资源共享给容器,并有选择地实施限制和约束。例如,您可以限制特定容器可用的内存。
    Docker的安装
    注意:目前docker只支持64位操作系统
     使用网络源
     下载阿里云官方源
wget -O /etc/yum.repos.d/centos-base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
   添加docker源yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
   安装docker
yum -y install docker-ce
    离线安装
安装包下载链接:https://pan.baidu.com/s/1eueN06j8cV9o2gwc1qu8qw
提取码:1c9d
复制这段内容后打开百度网盘手机App,操作更方便哦
安装依赖包
yum -y install yum-utils device-mapper-persistent-data lvm2
[root@centos-02 ~]# tar zxvf docker_rpm.tgz
[root@centos-02 ~]# yum -y install docker-repo/*.rpm

 配置aliyun镜像加速
登陆aliyun官网点击搜索


sudo mkdir -p /etc/docker
[root@centos-02 ~]# sudo tee /etc/docker/daemon.json<<-'EOF'{"registry-mirrors": ["https://5aliqknw.mirror.aliyuncs.com"],"exec-opts": ["native.cgroupdriver=systemd"]}
EOF
sudo systemctl daemon-reload
sudo systemctl enable --now docker
cat >> /etc/sysctl.conf <<EOF
net.ipv4.ip_forward = 1
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
EOF
sysctl -p
[root@centos-02 ~]# systemctl restart docker
到此docker安装完成

Docker镜像操作

1、搜索镜像

docker search 关键字
例如:

[root@centos-02 ~]# docker search nginx

执行docker search lamp命令后,会返回很多包含lamp关键字的镜像,其中,返回信息包括镜像名称(NAME)、描述(DESCRIPTION)、 星级(STARS)、 是否官方创建(OFFICIAL)、是否主动创建(AUTOMATED)。默认的返回结果会按照星级评价进行排序,表示该镜像的受欢迎程度。在下载镜像时,可以参考星级。在搜索时,还可以使用-S或者–stars=x 显示指定星级的镜像,星级越高表示越受欢迎。

2、获取镜像

docker pull 仓库名称[:标签]
例如:[root@centos-02 ~]# docker pull busybox
例如:[root@centos-02 ~]# docker pull busybox:1.2

3、查看镜像

docker images 仓库名称[:标签]
例如:[root@centos-02 ~]# docker images busybox
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
busybox             latest              b97242f89c8a        5 days ago          1.23MB
docker inspect 镜像ID号
[root@centos-02 ~]# docker inspect b97242f89c8a

4、添加新标签

docker tag 名称[:标签] 新名称[:标签]
例如:[root@centos-02 ~]# docker tag busybox:latest hz:hz[root@centos-02 ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
busybox             latest              b97242f89c8a        5 days ago              1.23MB
hz                  hz                  b97242f89c8a        5 days ago             1.23MB

5、删除镜像

docker rmi 仓库名称[:标签]
docker rmi 镜像ID号
例如:[root@centos-02 ~]# docker rmi hz:hz
删除所有镜像!:docker rmi -f $(docker images -q)

6、存出镜像

docker save -o 存出文件名 存出的镜像
docker save >存出文件名 存出的镜像
例如:[root@centos-02 ~]# docker save > busybox.docker busybox

7、载入镜像

docker load --input 存出文件名
docker load < 存出文件名
[root@centos-02 ~]# docker load < busybox.docker
0064d0478d00: Loading layer   1.45MB/1.45MB
Loaded image: busybox:latest

8、上传镜像(到互联网仓库)

docker push 仓库名称[:标签]
[root@centos-02 ~]# docker login --username=q1990296326 registry.cn-shanghai.aliyuncs.com
[root@centos-02 ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED  SIZE
busybox             latest              b97242f89c8a        6 days ago  1.23MB
[root@centos-02 ~]# docker tag  b97242f89c8a registry.cn-shanghai.aliyuncs.com/fengbowen/fbw:v1
[root@centos-02 ~]# docker images
REPOSITORY                                        TAG                 IMAGE ID            CREATED             SIZE
busybox                                           latest              b97242f89c8a        6 days ago          1.23MB
registry.cn-shanghai.aliyuncs.com/fengbowen/fbw   v1                  b97242f89c8a        6 days ago          1.23MB
[root@centos-02 ~]# docker push registry.cn-shanghai.aliyuncs.com/fengbowen/fbw:v1
上传成功后可以在阿里云进行查看

Docker容器操作

#1、创建容器
docker create [选项] 镜像运行的程序
-i 让容器的标准输入保持打开
-t让Docker分配一个伪终端
例如:docker create -it busybox
#2、查看容器运行状态
docker ps [选项]
-a列出最近一次启动的容器
例如:docker ps -a
#3、启动容器
docker start 容器的ID/名称
docker start busybox
docker start b97242f89c8a
#4、创建容器并启动执行shell命令
docker run [选项] 镜像运行的程序 执行的命令
-d 在后台进行运行
[root@centos-02 ~]# docker run -d  busybox
#5、终止容器
Docker stop 容器的ID/名称
[root@centos-02 ~]# docker stop fda917ac63dc
#6、进入容器
docker exec [选项] 容器的ID/名称 /bin/bash
[root@centos-02 ~]# docker exec -it b3  /bin/sh
#7、导出容器
docker export 容器的ID/名称 > 文件名
[root@centos-02 ~]# docker export b3 > b3.doc
#8、导入容器
cat 文件名 | docker import -生成的镜像名称:标签
[root@centos-02 ~]# cat b3.doc | docker import - b4  v1
[root@centos-02 ~]# cat b3.doc | docker import - b5:v1
#9、删除容器
Docker rm [选项] 容器的ID/名称
[root@centos-02 ~]# docker rm  b2
删除所有容器!: docker rm -f $(docker ps -aq)

01-Docker基本管理相关推荐

  1. docker可视化管理工具对比 DockerUI Shipyard Rancher Portainer

    目录 1.前言 2.优劣对比 DockerUI Shipyard Rancher Portainer 1.前言 谈及docker,避免不了需要熟练的记住好多命令及其用法,对于熟悉shell.技术开发人 ...

  2. Docker镜像管理

    Docker镜像管理 一.Docker镜像的基本操作 1.查看本地镜像 2.搜索镜像仓库镜像 3.拉取镜像 4.导出镜像 5.导入镜像 6.删除镜像 二.docker的操作系统 1.Linux系统构成 ...

  3. Docker容器管理总结

    Docker容器管理总结 一.Docker容器理解 1.Docker的核心概念 2.容器的运行状态 二.Dockerfile理解 三.容器使用及操作 1.进入容器空间内 2.后台运行容器 3.前台运行 ...

  4. 美团点评Docker容器管理平台

    本文是郑坤根据第14期美团点评技术沙龙"你不知道的美团云"演讲内容整理而成,已发表在<程序员>杂志2017年1月刊. 美团点评容器平台简介 本文介绍美团点评的Docke ...

  5. Docker轻量级管理工具Portainer

    Docker轻量级管理工具Portainer Portainer简介 Portainer是一款轻量级的Docker容器管理工具,具有WebUI界面,可以在WebUI上启动.停止.删除.配置容器,搜索需 ...

  6. 使用Docker Compose管理多个容器

    使用Docker Compose管理多个容器 Docker Compose是一个用来定义和运行复杂应用的Docker工具.使用Compose,你可以在一个文件中定义一个多容器应用,然后使用一条命令来启 ...

  7. 如何使用Docker Swarm管理更多容器

    by nolan grace 通过诺兰·格雷斯 如何使用Docker Swarm管理更多容器 (How to manage more containers with Docker Swarm) Sca ...

  8. docker 管理工具_详解Docker可视化管理工具shipyard--部署教程及功能展示

    概述 谈及docker,避免不了需要熟练的记住好多命令及其用法,对于熟悉shell.技术开发人员而言,还是可以接受的,熟练之后,命令行毕竟是很方便的,便于操作及脚本化.但对于命令行过敏.非技术人员,进 ...

  9. syslog工具_07 Docker 可视化管理和监控工具

    Docker 可视化管理和监控工具 Portainer docker run -d -p 9000:9000 --restart always -v /var/run/docker.sock:/var ...

  10. docker容器管理及网络管理

    防火墙规则-- INPUT 主要用于主机防火墙,设置规则屏蔽处理进入本机的数据包 示例:禁止10.180.100.141这个机器访问我本机的web服务 iptables -t filter -A IN ...

最新文章

  1. java 3维_java 二维/三维/多维数组
  2. 谈谈Activity如何启动的
  3. 关于点名的简单python编程_如何用python编写一个简易的随机点名软件
  4. Asya And Kittens
  5. 一个“alert” 引发的血案
  6. vue一步一步带你封装一个按钮组件
  7. 蓝桥杯 ADV-177算法提高 理财计划
  8. centos7安装git踩坑记
  9. 《机器学习算法竞赛实战》读书笔记
  10. 0基础入门学PLC,只需掌握好这5个步骤让您从0变精通
  11. 千万数据的分库分表方案
  12. 系列篇|单目结构光三维成像系统的标定方法
  13. [转]:首届鸿蒙生态人才建设峰会开幕
  14. android 函数式编程,思想交融,Android中的函数式编程(2):什么是函数式编程...
  15. Nexus 搭建docker本地仓库(hosted)和私有仓库(proxy)
  16. 智慧医院3D导航导诊系统-基础功能详解
  17. Linux下输入子系统上报触摸屏坐标
  18. LTE学习---PLMN选网(23.122协议R9)
  19. WEB安全之DIV CSS基础(二):文字和文本的属性、列表样式和伪类超链接
  20. Codevs 1697 ⑨要写信

热门文章

  1. 各种常用的二极管参数表
  2. 人工智能会全方位取代人类吗?
  3. 16apsk matlab,与低计算复杂度解映射相结合的16APSK星座优化
  4. android读取另一个app目录,android在一个app程序中,打开另一个app的方法
  5. 基于高德地图的APP路径规划开发
  6. 我的第一个Android应用
  7. RecyclerView实现瀑布流,图片自适应高度
  8. Android应用接入第三方登陆之新浪微博
  9. 苹果交付iOS 6系统 可无线升级
  10. 关于CTF压缩包的那些事