文章目录

  • 一、什么是Docker
  • 二、常用核心基本概念
    • 1. 镜像(Image)
    • 2. 仓库(Repository)
    • 3. 容器 container(Container):
  • 三、其他基础性概念
    • 1. docker run前台后台概念
  • 四、Docker for Windows安装和使用
    • 4.1 安装步骤
    • 4.2 docker常用配置及使用
      • 修改Docker镜像下载地址
      • win10上修改docker的镜像文件存储位置
      • kitematic
      • Shared Drives
    • 4.3 docker-machine 创建主机
    • 4.4 常见问题总结
  • 五、centos7安装docker
  • 六、Ubuntu 20.04安装docker
  • 七、参考

一、什么是Docker

Docker 是一个开源应用容器引擎,它是基于go语言开发,并遵循Apache2.0开源协议。使用Docker可以让开发者封装他们的应用以及依赖包到一个可移植的容器中,然后发布到任何Linux机器上。

容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。

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

【官方文档】https://docs.docker.com

二、常用核心基本概念

1. 镜像(Image)

类似于虚拟机中的镜像,是一个包含有文件系统的面向Docker引擎的只读模板。任何应用程序运行都需要环境,而镜像就是用来提供这种运行环境的。例如一个Ubuntu镜像就是一个包含Ubuntu操作系统环境的模板,同理在该镜像上装上Apache软件,就可以称为Apache镜像。

2. 仓库(Repository)

类似于代码仓库,这里是镜像仓库,是Docker用来集中存放镜像文件的地方。注意与注册服务器(Registry)的区别:注册服务器是存放仓库的地方,一般会有多个仓库;而仓库是存放镜像的地方,一般每个仓库存放一类镜像,每个镜像利用tag进行区分,比如Ubuntu仓库存放有多个版本(12.04、14.04等)的Ubuntu镜像。

上图是Docker架构:
镜像、仓库、容器
去仓库把镜像拉到本地,用一条命令把镜像运行起来,把镜像变成容器。
Client 客户端 :即Docker客户端,比如我们命令行docker CLI。
DOCKER_HOST(Docker主机) 即Docker内部引擎运行的主机。
Registry 注册中心: 实质上就是Docker镜像仓库。

3. 容器 container(Container):

类似于一个轻量级的沙盒,可以将其看作一个极简的Linux系统环境(包括root权限、进程空间、用户空间和网络空间等),以及运行在其中的应用程序。Docker引擎利用容器来运行、隔离各个应用。容器是镜像创建的应用实例,可以创建、启动、停止、删除容器,各个容器之间是是相互隔离的,互不影响。注意:镜像本身是只读的,容器从镜像启动时,Docker在镜像的上层创建一个可写层,镜像本身不变。

官网关于容器的介绍What is a Container
https://www.docker.com/resources/what-container

三、其他基础性概念

1. docker run前台后台概念

docker运行在一个独立的隔离的进程中。

当用户执行docker run,它将启动一个有着独立的文件系统,独立的网络和独立的进程树的进程。

基本的docker run命令的格式:

docker run [OPTIONS] IMAGE[:TAG] [COMMAND] [ARG…]

前台和后台

  1. 后台(-d)

在后台模式(-d=true或者直接使用-d)

所有的IO操作都必须通过网络连接或者共享卷来进行,因为容器在后台运行的时候就不能收到命令行。

当然也可以通过执行docker attach重新连上在后台执行的容器。

如果你选择运行一个容器在后台模式,那你就不能使用-rm选项了。

  1. 前台

在前台模式(默认的)

docker run可以在容器里开启一个进程的同时

你可以通过控制台来获得进程的STDIN、STDOUT、STDERR。

也可以作为终端和传递信号。所有这些的配置方法如下:

-a, --attach=[] 连接容器的stdin、stdout、stderr (默认连接这三个流)

-t, --tty=false 使用终端。经常和 -i一起使用。

–sig-proxy=true 代理所有收到的系统信息(我测试了一下好像没有作用)

-i, --interactive=false 打开STDIN和容器交互。经常和 -t一起使用。

docker run -a stdin -a stdout -i-t ubuntu /bin/bash

四、Docker for Windows安装和使用

参考官方安装文档 https://docs.docker.com/docker-for-windows/install/
参考微软官方文档https://docs.microsoft.com/zh-cn/virtualization/windowscontainers/manage-docker/configure-docker-daemon
非官方下载地址:https://oomake.com/download/docker-windows

4.1 安装步骤

  1. 第一步
    进入官网点击主页的products,进入产品页面,找到Docker Desktop。
    Docker Desktop is an easy-to-install application for your Mac or Windows environment that enables you to start coding and containerizing in minutes.
    可以看到Docker Desktop就是一个应用程序方便安装docker。

  2. 第二步
    选择Docker Desktop (Windows)进入新页面:
    Get Docker Community Edition for Windows
    Docker for Windows is available for free.
    Requires Microsoft Windows 10 Professional or Enterprise 64-bit. For previous versions get Docker Toolbox.

    可以看到:
    win10的Docker比较特殊,Docker对Win10做了一个原生的支持。
    如果不是win10专业版或企业版64,使用Docker Toolbox安装。

    Docker toolbox是一个工具集,它主要包含以下一些内容:

    • Docker CLI 客户端,用来运行docker引擎创建镜像和容器
    • Docker Machine. 可以让你在windows的命令行中运行docker引擎命令
    • Docker Compose. 用来运行docker-compose命令
    • Kitematic. 这是Docker的GUI版本
    • Docker QuickStart shell. 这是一个已经配置好Docker的命令行环境
    • Oracle VM Virtualbox. 虚拟机

    由于Docker引擎的守护进程使用的是Linux的内核,所以我们不能够直接在windows中运行docker引擎。而是需要运行Docker Machine命令 docker-machine, 在你的机器上创建和获得一个Linux虚拟机,用这个虚拟机才可以在你的windows系统上运行Docker引擎。
    Windows想用docker的话,需要借助虚拟机,Windows7不像Windows10自带Hyper虚拟机,所以要用docker只有Docker Toolbox这个选择了。

  3. 第三步
    安装过程中,可以看到可以选择windows Container还是Linux Container,默认没有勾选是Linux Container。
    安装完成,点击桌面图标,提醒
    Hyper-V and Containers features are not enabled.
    Do you want to enable them for Docker to be able to work properly?
    Your computer will restart automatically.
    Note: VirtualBox will no longer work.

    根据提醒重启电脑即可。

  4. 第四步 测试你的安装
    查看docker版本,pull hello-world image拉取镜像从仓库。

> docker --versionDocker version 18.03.0-ce, build 0520e24> docker run hello-worlddocker : Unable to find image 'hello-world:latest' locally
...latest:
Pulling from library/hello-world
ca4f61b1923c:
Pulling fs layer
ca4f61b1923c:
Download complete
ca4f61b1923c:
Pull complete
Digest: sha256:97ce6fa4b6cdc0790cda65fe7290b74cfebd9fa0c9b8c38e979330d547d22ce1
Status: Downloaded newer image for hello-world:latestHello from Docker!
This message shows that your installation appears to be working correctly.
...

查看镜像、容器命令。

> docker image ls
> docker container ls --all

可以使用help查看命令参数说明。

> docker --help
> docker container --help
> docker container ls --help
> docker run --help

4.2 docker常用配置及使用

修改Docker镜像下载地址

Docker在安装完成后,默认镜像下载地址是国外的,在当前国内特殊的网络环境下,镜像下载是十分耗时的,为了克服跨洋网络延迟,能够快速高效下载Docker镜像,所以,国内的开发者们纷纷搭建了国内的镜像源,我们一般称之为加速器。

阿里的个人docker管理后台地址为:https://cr.console.aliyun.com
访问该地址然后登陆阿里云账号—-> 在镜像中心菜单下–>镜像加速器

参考阿里官方说明如下:
阿里官方容器镜像服务
容器镜像服务(Container Registry)提供多地域镜像托管能力,稳定的国内外镜像构建服务,便捷的镜像授权功能,方便用户进行镜像全生命周期管理。在开通流程中,您需要设置独立于账号密码的Registry登录密码,便于镜像的上传、下载。
如果您是子账号开通服务,请确认主账号已经设置过Registry登录密码。
针对安装了Docker for Windows的用户,您可以参考以下配置步骤:
在系统右下角托盘图标内右键菜单选择 Settings,打开配置窗口后左侧导航菜单选择 Docker Daemon。编辑窗口内的JSON串,填写下方加速器地址:
{
“registry-mirrors”: [“https://xxxxx.mirror.aliyuncs.com”]
}
编辑完成后点击 Apply 保存按钮,等待Docker重启并应用配置的镜像加速器。

win 10 配置docker 阿里云 加速器
参考URL: https://www.cnblogs.com/start2019/p/10887860.html

win10上修改docker的镜像文件存储位置

windows上安装的docker其实本质上还是借助与windows平台的hyper-v技术来创建一个Linux虚拟机,你执行的所有命令其实都是在这个虚拟机里执行的,所以所有pull到本地的image都会在虚拟机的Virtual hard disks目录的文件中,这个文件就是虚拟硬盘文件。如果要想改变路径只需要在hyper-v管理器里设置就可以了。默认的安装路径是C:\Users\Public\Documents\Hyper-V\Virtual hard disks下。

windows10的docker使用的是Hyper-V虚拟机,所以镜像存放的目录就是Hyper-V的目录,首先停止docker。

打开Hyper-V 管理器,1.开始菜单右键->控制面板->管理工具->Hyper-V 管理器

右键选择Hyper-V设置!

修改虚拟硬盘的默认文件夹,然后重启docker

改完,使用docker gui图形界面重启restart docker,进入setting-Andvanced查看Disk image location,发现已经变化。应该这里也可以直接改吧,未测试。

docker for windows pull镜像文件的安装位置改变方法
参考URL: https://blog.csdn.net/haojing8312/article/details/80790429
参考URL: https://blog.csdn.net/qq_28587263/article/details/53580637
参考URL: https://blog.csdn.net/u013948858/article/details/80811986

kitematic

kitematic是docker推出的GUI工具,使操作docker的方式变得更简单直观。
win10 如何安装 Docker Kitematic
参考URL: https://jingyan.baidu.com/article/fcb5aff768d8eeedaa4a71f8.html

Shared Drives

Docker容器启动的时候,如果要挂载宿主机的一个目录,可以用-v参数指定。
譬如我要启动一个centos容器,宿主机的/test目录挂载到容器的/soft目录,可通过以下方式指定:

# docker run -it -v /test:/soft centos /bin/bash

这样在容器启动后,容器内会自动创建/soft的目录。通过这种方式,我们可以明确一点,即-v参数中,冒号":"前面的目录是宿主机目录,后面的目录是容器内目录。

Docker设置共享文件夹
参考URL: https://blog.csdn.net/shaunqing/article/details/81483220
Docker for Windows 里的Shared Drives 设置不生效
参考URL: https://blog.csdn.net/u012680857/article/details/77970351

4.3 docker-machine 创建主机

docker-machine 创建主机(win10)
参考URL: https://www.jianshu.com/p/eb4641bc5c67?utm_source=oschina-app

官方提示: 注意,必须事先在 Hyper-V 管理器中新建一个 外部虚拟交换机
打开Hyper-V 管理器, 然后在右侧操作栏选择虚拟交换机管理器

然后在弹出的新窗口中点击新建虚拟机网络交换机, 选择外部, 点击创建虚拟交换机。
为新的虚拟交换机取一个好听的名字, 然后选择外部网络, 选择相应的网卡

这里需要在管理员权限下运行命令行,dockerSwitch 是虚拟交换机的名字、manager是你创建的虚拟主机的名字
docker-machine create --driver hyperv --hyperv-virtual-switch=dockerSwitch dockerHostVM

4.4 常见问题总结

  1. 关于docker hub上不能注册dockeID的问题
    参考URL: https://blog.csdn.net/debugbugbg/article/details/81865553
    docker注册的页面有Google图片人机验证,如果不翻墙的话,人机验证界面出不来,没有通过人机验证的话,Sign up按钮一直是灰色的。

五、centos7安装docker

Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker 。

通过 uname -r 命令查看你当前的内核版本

$ uname -r

安装

yum install docker -y

启动docker

systemctl start docker  #启动docker
systemctl enable docker #开机启动docker
systemctl status docker #查看docker状态

查看docker 版本

docker version

centos7下docker设置阿里云镜像(自定义阿里云镜像)
参考URL: https://blog.csdn.net/u013294097/article/details/97170854

进入阿里官网,参考如下图,官网配置即可

六、Ubuntu 20.04安装docker

参考URL: https://www.runoob.com/docker/ubuntu-docker-install.html

使用官方安装脚本自动安装
安装命令如下:

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
也可以使用国内 daocloud 一键安装命令:

curl -sSL https://get.daocloud.io/docker | sh
手动安装
卸载旧版本
Docker 的旧版本被称为 docker,docker.io 或 docker-engine 。如果已安装,请卸载它们:

$ sudo apt-get remove docker docker-engine docker.io containerd runc

七、参考

干货满满!10分钟看懂Docker和K8S
参考URL: https://my.oschina.net/jamesview/blog/2994112

Docker基础认识与docker安装以及环境配置相关推荐

  1. 【记录】jenkins 安装及环境配置(一)

    [记录]jenkins 安装及环境配置(一) docker安装 访问Jenkins 获取初次登录密码 centos7 安装 jenkins jenkins 环境配置 docker安装 # 下载Jenk ...

  2. Laravel教程 一:安装及环境配置

    Laravel教程 一:安装及环境配置 此文章为原创文章,未经同意,禁止转载. Homestead 最近在SF上面看到越来越多的Laravel相关的问题,而作为一个Laravel的脑残粉,本来打算有机 ...

  3. 1、kali的安装与环境配置

    1.kali的安装与环境配置 安装 环境配置 安装 安装教程 环境配置 安装完成后默认集成了java.python.php.mysql.ssh等环境 若是没有某个环境,可以使用 sudo apt-ge ...

  4. ROS入门笔记(二):ROS安装与环境配置及卸载(重点)

    ROS入门笔记(二):ROS安装与环境配置及卸载(重点) 文章目录 1 ROS安装步骤 1.1 ROS版本 1.2 确定Ubuntu版本号 1.3 安装ROS 1.3.1 Ubuntu初始环境配置 1 ...

  5. win8系统安装配置python_win8下python3.4安装和环境配置图文教程

    win8下python安装和环境配置,具体内容如下 python语法较C语言简单,容易上手. 具体步骤 1.本文采用的是win8.1 64位系统,安装python3.4. 2.先在python官网上下 ...

  6. PCL安装和环境配置

    目录 1. VS2017下载安装 2. PCL下载安装 3. 环境配置 附上链接库列表 4. 测试 5.问题解决 1. VS2017下载安装 微软官网下载链接:https://visualstudio ...

  7. linux python 调试_Python安装与环境配置

    [按]最近有纯文科背景的朋友想入门Python,问我首先得干嘛.那当然是安装Python了,因此我出这一期Python安装与环境配置的文章,这是定量城市研究从导论进入实操的第一篇推文.综合参考了菜鸟教 ...

  8. CB2-2CARD的openSUSE安装NAS环境配置

    CB2-2CARD的openSUSE安装&NAS环境配置 1. 简介 2. 规格 3. 系统安装 3.1 Linux/Unix稳定镜像 3.2 基础功能更新&安装 3.2.1 更新源 ...

  9. Java/JDK安装与环境配置教程

    目录 前言 今天在这里分享一下Java/JDK安装与环境配置的教程,希望对初学Java的小伙伴们可以有所帮助. 一.JDK的下载与安装 二.JDK环境配置 三.验证JDK环境是否配置成功 在安装之前我 ...

  10. Java 小白入门第一弹 安装与环境配置,开发工具的下载

    python和java的异同 1.这两者都是开源语言,换言之你可以随意的使用这两门语言而不需要付费,可以阅读他们的源代码学习,并且对它们做一些改动.在这一点上,两者是不分上下的,唯一的差别可能就是Ja ...

最新文章

  1. postgres sql 多表联合查询_从零学会SQL-多表查询
  2. trycatch抛出异常_Java生鲜电商平台架构中,如何统一异常处理及架构实战
  3. 快速组建的开发团队要怎么活下来?
  4. Windows Server 2008 R2活动目录灾难恢复(二):备份与恢复(1)
  5. PMP每日三题(2022年2月15日)
  6. oracle结构设计
  7. 前缀中缀后缀表达式的计算求值
  8. Web前端小例子——简单导航栏
  9. bootstrap-vue 中 model 基础用法
  10. Debian Ubuntu/Centos7设置某些软件不自动更新
  11. 【IDEA系列】利用 IntelliJ IDEA 进行代码对比的方法
  12. Mac adobe PS、AI、PR、AN安装包
  13. 实例展示:用css实现网页图片特效
  14. 计算机禁用网络后怎么打开,无线网关,教您笔记本无线网络禁用后怎么开启
  15. 那些年搞不懂的高深术语——依赖倒置•控制反转•依赖注入•面向接口编程
  16. 一个矩阵与单位矩阵相乘等于本身吗?并且符合交换律吗?
  17. windows11家庭版安装hyperv-v
  18. Java中如何处理空指针异常
  19. C盘爆满的解决方案?很可能是因为这个Group2文件夹
  20. 钱多多的编程语言晋升路

热门文章

  1. Oracle Primavera Unifier文档管理器(Document Manager)
  2. CAD文字显示号问题原因和解决办法
  3. 蚂蚁金服11.11:支付宝和蚂蚁花呗的技术架构及实践读后感
  4. C2248: QString::QString: 无法访问 private 成员(在 QString 类中声明)
  5. 【1月英语—罗塞塔之爱】
  6. 最好看的Excel条形图 如何用Excel图表把它做出来
  7. 做自己喜欢的事情,是假的,改变世界也是假的
  8. 结合GSM协议文档与Tems工具捕捉到的GSM手机数据,分析L3消息。以0418-8r0为例.
  9. H3C 40MHz频宽模式
  10. 数据库软件设计(8684)