【Docker】安装及相关的命令

目录

一 Docker简介

1.1 是什么

1.2 优缺点

1.3 应用场景

1.4 安装

二 命令

2.1 Docker基本命令

2.2 Docker镜像命令

 2.3 Docker容器命令


一 Docker简介

1.1 是什么

      Docker是一个开源的应用容器引擎,它基于Go语言实现,并利用操作系统本身已有的机制和特性,可以实现远超传统虚拟机的轻量级虚拟化。Docker让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux或Windows操作系统的机器上,实现应用的“一次封装,到处运行”的目的,实在不理解,可以把它当成一个VM,在VM中又安装了一个VM第二个的这个VM就是Docker

生活列子来熟悉Docker

想象一下,你想要做一顿晚餐,比如意大利面。为了做这顿饭,你需要准备面条、番茄酱、洋葱、大蒜和一些调料。在传统的方式中,你可能需要分别购买这些食材,然后在厨房里手动准备它们。

现在,如果我们将这个过程与Docker进行比较:

  1. Docker主机:这就像你的厨房。它提供了制作意大利面所需的基础设施和环境。
  2. Docker镜像:这就像是食谱或预制的意大利面配料包。它包含了制作意大利面所需的所有食材和步骤。
  3. Docker容器:这就像是按照食谱实际制作出来的意大利面。一旦你有了镜像(食谱),你就可以创建一个容器(开始做饭),然后在这个容器里实际制作意大利面。
  4. Docker仓库:这就像超市的货架,上面摆放着各种各样的食谱或配料包。你可以从仓库中选择你想要的镜像,然后将其下载到你的Docker主机上。

使用该Docker好处之一,就是你可以很容易地分享你的“意大利面”配方(镜像)。例如,你可以将你的镜像上传到Docker仓库,然后你的朋友或家人就可以很容易地下载并在他们自己的Docker主机上制作同样的意大利面

1.2 优缺点

优点

  1. 轻量级和高效:Docker容器非常轻量级,因为它们共享主机操作系统内核,并且只包含应用程序及其依赖项。这使得容器启动速度快,资源占用少,非常适合在资源有限的环境中运行。

  2. 可移植性强Docker容器可以在任何能运行Docker的操作系统上运行,无论是Linux还是Windows。这使得应用程序在不同环境之间的迁移变得非常容易

  3. 版本控制和回滚:Docker使用镜像来创建容器,每个镜像都有一个唯一的标识符。这使得应用程序的版本控制变得简单明了,同时也方便进行回滚操作。

  4. 促进开发运维协同:Docker简化了应用程序的开发、测试和部署过程,使开发者和运维人员能够更高效地协同工作。

缺点:

  1. 学习曲线陡峭:Docker有一定的技术门槛,需要掌握一定的新概念和技术。对于初学者来说,可能需要一些时间来熟悉Docker的使用。

  2. 安全性问题:虽然Docker提供了多种安全机制来保护容器,但由于容器之间共享主机操作系统内核,因此仍然存在一些安全风险。例如,如果一个容器被攻击并成功突破了隔离层,它可能会影响到其他容器。

  3. 网络和存储功能有限:Docker在网络和存储方面的功能相对有限,可能无法满足一些复杂需求。例如,Docker的默认网络模式可能无法满足一些高级网络拓扑需求。

  4. 部分应用可能不兼容:尽管Docker支持大多数应用程序,但仍有部分应用程序可能无法或难以在Docker容器中运行。这可能需要额外的适配或修改工作。

  5. 大规模部署时的复杂性:当需要在大规模环境中部署大量容器时,Docker的监控、管理和故障排除可能会变得复杂。这可能需要额外的工具和技术支持。

1.3 应用场景

  1. 面向开发人员的Web应用自动化打包和发布:在没有Docker之前,开发、测试、生产环境可能不一致,导致文件配置上的不一致。使用Docker后,容器内的程序端口一致,而容器对外暴露的端口可能不同,但不影响程序的交付和运行,保证了环境一致性,并实现了快速部署。
  2. 面向运维人员的运维成本降低:部署程序时,搭建运行环境和解决环境依赖是非常耗时的。Docker通过镜像机制,将代码和环境直接打包成镜像,上传到容器即可启动,大大节约了部署时间。
  3. 面向企业的PaaS层实现:在一台物理机上可以部署多个轻量级的Docker容器,大大提高了运行效率。
  4. 微服务架构:在微服务架构中,应用程序被拆分成多个小型、独立的服务。Docker可以用来容器化这些服务,使它们可以独立部署和扩展。
  5. 应用迁移和移植:Docker可以帮助开发者轻松地将应用从开发环境迁移到生产环境,甚至在不同云服务提供商之间迁移,因为Docker容器提供了环境一致性。
  6. 隔离应用:Docker容器提供应用级别的隔离,使不同的应用可以在同一台机器上运行,互不干扰。
  7. 整合服务器:通过Docker,可以将多个服务整合到少数几台高性能服务器上,提高资源利用率,简化系统维护。
  8. 云计算和容器云:Docker容器可以在云环境中快速部署,无论是公有云、私有云还是混合云,都可以实现资源的灵活分配和自动化管理。

1.4 安装

#查看内核
uname -r       
#更新yum源为最新,时间大致要6分钟
yum update -y        
#安装Docker所需要的工具包
yum install -y yum-utils device-mapper-persistent-data lvm2
#设置yum源


yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
#下载安装Docker
yum install docker-ce docker-ce-cli containerd.io -y -y
#启动Docker并且设置开机自启动
systemctl start docker
systemctl enable docker

#检测Docker是否安装成功
docker version

执行上方命令安装无误的话,差不多就成功了

进入docker:cd /etc/docker

配置我们的镜像,先进入阿里云官方: https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors

如果没有账户的话,先注册再登入,再回到docker文件下

输入编辑命令:vim daemon.json  

将阿里源进行配置(下图括号里面的)

使用命令进行生效

systemctl daemon-reload
systemctl restart docker
 

这时候,就算安装好啦!

二 命令

2.1 Docker基本命令

下方是有关于docker的基本命令,可自行操作

systemctl start docker      (启动Docker)

systemctl stop docker       (停止Docker)

systemctl restart docker     (重启Docker)

systemctl enable docker      (开机自启动Docker)

docker info        (查看Dokcer概要信息)

docker --help    (查看Docker帮助文档)

docker version    (查看Docker的版本信息)

2.2 Docker镜像命令

下方图拉取(下载)mysql  

命令:docker pull mysql

 查看当前服务器已下载的:docker images

删除:docker rmi IMAGE ID或名称       

强制删除:docker rmi -f IMAGE ID或名称     

 2.3 Docker容器命令

为了测试,在Linux的Centos7中再安装一个Centos7

命令:docker pull centos:7

这时候下载的centos7为一个容器

我们可以去启动它

创建一个容器并进入该容器: docker run -it --name mycentos02 IMAGE ID

解释:

  1. docker run: 这是Docker命令的基础,用于从镜像启动新容器。

-it: 这是两个标志的组合。

  1. -i 或 --interactive: 保持容器的标准输入(STDIN)开启,即使不连接到容器。
  2. -t 或 --tty: 为容器分配一个伪终端(pseudo-TTY),通常用于交互式会话
  3. --name mycentos02: 这个标志用于给新创建的容器指定一个名称。在这个例子中,容器的名称是mycentos02。如果不指定这个标志,Docker会自动为容器生成一个名称。

  4. IMAGE ID: 这是你想要从中创建容器的Docker镜像的标识符。通常,你会使用docker images命令来查看可用的镜像及其ID,然后选择你想要使用的镜像的ID

综合起来,docker run -it --name mycentos02 IMAGE ID 命令会创建一个名为mycentos02的新容器,该容器基于指定的镜像ID,并且具有交互性和伪终端。一旦容器启动,你就可以通过控制台与容器中的进程进行交互(切换版本),如下图

创建容器但不进入容器:docker run -di --name mycentos03 IMAGE ID

退出不停止容器:Ctrl+p+q

退出并停止容器:exit

查看活的容器:docker ps

查看全部的容器:docker ps -a

强制删除一个运行的容器:docker rm -f IMAGE ID或名称

重启容器:docker restart mycontainer

查看容器日志:cd /var/lib/docker/containers

最后得出,相同的两个Centos7容器不同的文件,存着一种隔离的状态,如下

  • 21
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

.Doll

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

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

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

打赏作者

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

抵扣说明:

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

余额充值