Docker简介

本文详细介绍了Docker的基本概念,将其比喻为轻量级、可移植的虚拟机,强调其环境一致性与应用隔离的优势。在RedHat7.2系统中,通过一系列步骤演示了Docker的安装过程,解决了安装过程中遇到的问题。接着,文章列举了Docker的常用命令,并展示了如何启动、管理和交互容器。最后,通过实际操作说明了如何从仓库拉取镜像并启动容器。
摘要由CSDN通过智能技术生成

简介

  • 从概念到上手了解Docker

概念

  • Docker作为一个软件集装箱化平台,可以让开发者构建应用程序时,将它与其依赖环境一起打包到一个容器中,很容易地发布和应用到任意平台中
  • 例如,我们的某个应用要依赖的环境包括
    • 配置文件
    • 代码
    • tomcat
    • JDK
    • 操作系统
  • 现在的物理服务器是很强大的,跑一个应用太浪费,但如果有多个应用,某个应用的内存泄漏会牵连到其他
  • 这个问题可以使用虚拟机隔离来解决,但是一个虚拟机就需要一套完整的OS,浪费资源
  • 所以Docker出现了,一个壳负责一个应用,一个机器上可以有几十个壳,共享OS、启动速度快、隔离
    1
  • 总结:可以把Docker理解为轻量级的可移植的虚拟机,无论是在本地还是部署到服务器,能保证环境一致且应用间隔离
  • Developers Love Docker. Businesses Trust It.
    • 使用前
      2
    • 使用后
      3
    • Docker 提供了一组应用打包、传输和部署的方法,以便你能更好地在容器内运行任何应用

安装

  • RedHat7.2操作系统中安装
    • 可以使用uname -r查看内核版本,应该是不能低于内核版本高于 3.10
    • 查看红帽版本号``
      4
  • 依次执行如下命令
    yum install -y yum-utils device-mapper-persistent-data lvm2
    # yum-config-manager --add-repo http://download.docker.com/linux/centos/docker-ce.repo
    sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
    sed -i 's/$releasever/7/g' /etc/yum.repos.d/docker-ce.repo
    sudo yum install docker-ce docker-ce-cli containerd.io	# 静静等待
    systemctl start docker
    systemctl enable docker
    
  • 启动时报错:Job for docker.service failed because the control process...
    • 执行docker version会看到Cannot connect to the Docker daemon...
    • 目前看应该是网络原因,搭建网桥?防火墙的原因?daemon进程启动?
    • 这么安装有问题,试试下面的方法:
    yum remove podman-docker
    yum remove podman
    yum remove buildah
    sudo dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo
    sudo dnf install docker-ce --nobest
    sudo systemctl enable --now docker
    sudo usermod -aG docker $USER	# 把用户$USER追加到docker组中
    sudo systemctl disable firewalld
    

使用

  • docker的常见命令
  • 启动:systemctl start docker
  • 关闭:systemctl stop docker
  • docker的镜像称为image,类似于操作系统快照,是一个搭建好的运行环境(静态)
    • 容器是container(动态),是image的实例,他们之间类似于类和实例化对象之间的关系
    • 配置好证书后可以从仓库pull镜像:docker pull,使用 docker images 查看已经拉取的镜像
    • 在该image上启动一个容器:docker run -t -i -w /home/dev/nba --name local_iso ci_builder_rhel72 /bin/bash
      • ci_builder_rhel72是镜像名称
      • --name 设置container名称
      • -t:进入终端
      • -i:通过容器的STDIN获取交互式连接,这两个参数一般一起使用:-idt
      • -d:后台运行,退出容器也不会stop
      • -w:决定进入容器后的目录
      • /bin/bash:在container中启动一个shell
      • 此时应该能看到:[root@790cfafd543d nba]#,这个790…是创建时返回的ID
  • 查看container进程:docker ps,可以加-a参数
    请添加图片描述
  • 退出可以使用ctrl + d,或者exit
  • 再次进入使用docker start -a local_iso-a表示docker attach
    • 一般会分两步,start&attach,一起执行会卡顿而且退出不stopped,不清楚原因!
    • 这种方法进入,推出后container会stopped,ps会发现没了
    • docker exec -it local_iso /bin/bash,这种方法推出后container不退出
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Roy_Allen

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

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

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

打赏作者

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

抵扣说明:

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

余额充值