Docker基础认识与docker安装以及环境配置
文章目录
- 一、什么是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…]
前台和后台
- 后台(-d)
在后台模式(-d=true或者直接使用-d)
所有的IO操作都必须通过网络连接或者共享卷来进行,因为容器在后台运行的时候就不能收到命令行。
当然也可以通过执行docker attach重新连上在后台执行的容器。
如果你选择运行一个容器在后台模式,那你就不能使用-rm选项了。
- 前台
在前台模式(默认的)
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 安装步骤
第一步
进入官网点击主页的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。第二步
选择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这个选择了。第三步
安装过程中,可以看到可以选择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.根据提醒重启电脑即可。
第四步 测试你的安装
查看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 常见问题总结
- 关于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安装以及环境配置相关推荐
- 【记录】jenkins 安装及环境配置(一)
[记录]jenkins 安装及环境配置(一) docker安装 访问Jenkins 获取初次登录密码 centos7 安装 jenkins jenkins 环境配置 docker安装 # 下载Jenk ...
- Laravel教程 一:安装及环境配置
Laravel教程 一:安装及环境配置 此文章为原创文章,未经同意,禁止转载. Homestead 最近在SF上面看到越来越多的Laravel相关的问题,而作为一个Laravel的脑残粉,本来打算有机 ...
- 1、kali的安装与环境配置
1.kali的安装与环境配置 安装 环境配置 安装 安装教程 环境配置 安装完成后默认集成了java.python.php.mysql.ssh等环境 若是没有某个环境,可以使用 sudo apt-ge ...
- ROS入门笔记(二):ROS安装与环境配置及卸载(重点)
ROS入门笔记(二):ROS安装与环境配置及卸载(重点) 文章目录 1 ROS安装步骤 1.1 ROS版本 1.2 确定Ubuntu版本号 1.3 安装ROS 1.3.1 Ubuntu初始环境配置 1 ...
- win8系统安装配置python_win8下python3.4安装和环境配置图文教程
win8下python安装和环境配置,具体内容如下 python语法较C语言简单,容易上手. 具体步骤 1.本文采用的是win8.1 64位系统,安装python3.4. 2.先在python官网上下 ...
- PCL安装和环境配置
目录 1. VS2017下载安装 2. PCL下载安装 3. 环境配置 附上链接库列表 4. 测试 5.问题解决 1. VS2017下载安装 微软官网下载链接:https://visualstudio ...
- linux python 调试_Python安装与环境配置
[按]最近有纯文科背景的朋友想入门Python,问我首先得干嘛.那当然是安装Python了,因此我出这一期Python安装与环境配置的文章,这是定量城市研究从导论进入实操的第一篇推文.综合参考了菜鸟教 ...
- CB2-2CARD的openSUSE安装NAS环境配置
CB2-2CARD的openSUSE安装&NAS环境配置 1. 简介 2. 规格 3. 系统安装 3.1 Linux/Unix稳定镜像 3.2 基础功能更新&安装 3.2.1 更新源 ...
- Java/JDK安装与环境配置教程
目录 前言 今天在这里分享一下Java/JDK安装与环境配置的教程,希望对初学Java的小伙伴们可以有所帮助. 一.JDK的下载与安装 二.JDK环境配置 三.验证JDK环境是否配置成功 在安装之前我 ...
- Java 小白入门第一弹 安装与环境配置,开发工具的下载
python和java的异同 1.这两者都是开源语言,换言之你可以随意的使用这两门语言而不需要付费,可以阅读他们的源代码学习,并且对它们做一些改动.在这一点上,两者是不分上下的,唯一的差别可能就是Ja ...
最新文章
- postgres sql 多表联合查询_从零学会SQL-多表查询
- trycatch抛出异常_Java生鲜电商平台架构中,如何统一异常处理及架构实战
- 快速组建的开发团队要怎么活下来?
- Windows Server 2008 R2活动目录灾难恢复(二):备份与恢复(1)
- PMP每日三题(2022年2月15日)
- oracle结构设计
- 前缀中缀后缀表达式的计算求值
- Web前端小例子——简单导航栏
- bootstrap-vue 中 model 基础用法
- Debian Ubuntu/Centos7设置某些软件不自动更新
- 【IDEA系列】利用 IntelliJ IDEA 进行代码对比的方法
- Mac adobe PS、AI、PR、AN安装包
- 实例展示:用css实现网页图片特效
- 计算机禁用网络后怎么打开,无线网关,教您笔记本无线网络禁用后怎么开启
- 那些年搞不懂的高深术语——依赖倒置•控制反转•依赖注入•面向接口编程
- 一个矩阵与单位矩阵相乘等于本身吗?并且符合交换律吗?
- windows11家庭版安装hyperv-v
- Java中如何处理空指针异常
- C盘爆满的解决方案?很可能是因为这个Group2文件夹
- 钱多多的编程语言晋升路
热门文章
- Oracle Primavera Unifier文档管理器(Document Manager)
- CAD文字显示号问题原因和解决办法
- 蚂蚁金服11.11:支付宝和蚂蚁花呗的技术架构及实践读后感
- C2248: QString::QString: 无法访问 private 成员(在 QString 类中声明)
- 【1月英语—罗塞塔之爱】
- 最好看的Excel条形图 如何用Excel图表把它做出来
- 做自己喜欢的事情,是假的,改变世界也是假的
- 结合GSM协议文档与Tems工具捕捉到的GSM手机数据,分析L3消息。以0418-8r0为例.
- H3C 40MHz频宽模式
- 数据库软件设计(8684)