Docker基础认识与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 --version

Docker version 18.03.0-ce, build 0520e24

> docker run hello-world

docker : 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:latest

Hello 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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

西京刀客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值