docker新手快速入门

这篇具有很好参考价值的文章主要介绍了docker新手快速入门。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

引言

Docker 是现代软件开发和部署的神器,它利用容器化技术使应用的交付和运行变得更加高效。今天,我们将详细介绍如何在 CentOS 7 上安装和配置 Docker,同时将揭开 Docker 背后的工作原理,最后通过一个实例来进行验证安装。

一、Docker 的工作原理

Docker 使用容器来运行应用程序,容器就像是轻量级的小型虚拟机,但它们并不包含操作系统的镜像,而是直接在宿主机的操作系统上运行,共享 Kernel 但保持独立的执行环境。

当你启动一个容器时,Docker 会在宿主操作系统上创建一个逻辑的容器,这个容器包含应用的代码、运行时、系统工具、系统库等一切运行应用所需的东西。由于它们不需要额外的操作系统加载和模拟硬件,所以容器启动速度快,资源占用少。

二、docker与虚拟机的区别

Docker和虚拟机都是在计算机上创建隔离环境以运行和管理应用程序的技术,但它们在架构和工作原理上有着根本的区别:

  1. 虚拟机(VM):

    • 全虚拟化:虚拟机利用虚拟化软件(如VMware、VirtualBox)在硬件上运行一个完整的操作系统,为应用程序提供运行环境。

    • 资源隔离:每个虚拟机都包括完整的操作系统、内核以及运行应用程序所需的用户空间。

    • 性能开销:因为运行完整的操作系统,虚拟机通常会占用更多的系统资源,启动速度较慢,性能有一定程度的影响。

    • 硬件抽象:虚拟机通过Hypervisor层虚拟出硬件资源,应用程序对这些虚拟出的硬件资源进行操作。

  2. Docker:

    • 容器化:Docker是一个基于容器的轻量级虚拟化解决方案。它直接运行在宿主机的操作系统之上,与宿主机共享内核。

    • 资源共享:容器内的应用共享宿主机的操作系统内核,但在用户空间内运行在隔离的环境中。

    • 性能:因为没有独立的操作系统负载,Docker 容器的启动非常快速,几乎没有性能损耗,资源消耗也比较少。

    • 更少的冗余:相较于虚拟机,容器不需要额外的操作系统,资源使用更加高效。

总结对比:

  • 启动时间:Docker 容器的启动时间通常为秒级,而虚拟机需要分钟级。

  • 资源利用率:Docker在多个容器间运行应用程序时更加高效,因为它们共享宿主机的内核,而多个虚拟机意味着有多个操作系统实例,会占用更多的资源。

  • 隔离性:虚拟机提供了更高级别的隔离,因为每个VM都有独立的内核和操作系统,而Docker容器之间共享宿主机内核。

  • 安全性:虚拟机由于提供了更完整的隔离,通常认为在安全性方面优于Docker容器。容器之间由于共享内核,一旦宿主机的内核出现安全漏洞,所有容器都会受到影响。

  • 场景:虚拟机较适合运行需要完整操作系统支持的复杂应用,而Docker容器适合用于微服务架构和持续集成/持续部署(CI/CD)的环境。

三、docker安装

查看系统版本:

cat /etc/redhat-release 
CentOS Linux release 7.9.2009 (Core)

步骤 1: 卸载旧版本

Docker 的旧版本被称为 dockerdocker-engine。如果安装了这些,建议先卸载它们:

sudo yum remove docker \
                docker-client \
                docker-client-latest \
                docker-common \
                docker-latest \
                docker-latest-logrotate \
                docker-logrotate \
                docker-engine

步骤 2: 安装所需的包

安装 yum-utils,它提供了 yum-config-manager,并且为 device-mapper-persistent-datalvm2 提供所需的存储驱动支持:

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

步骤 3: 设置 Docker 仓库

使用以下命令来设置稳定的仓库:

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

步骤 4: 安装 Docker Engine

现在可以安装 Docker Engine:

sudo yum install -y docker-ce docker-ce-cli containerd.io

如果想安装特定版本的 Docker,先列出仓库中可用的版本后选择安装:

sudo yum list docker-ce --showduplicates | sort -r
sudo yum install -y <SPECIFIC_VERSION_STRING>

步骤 5: 启动 Docker

安装完成后,启动 Docker 守护进程:

sudo systemctl start docker

为了让 Docker 在启动时自动运行,运行以下命令:

sudo systemctl enable docker

步骤 6: 验证安装

为了确认 Docker 是否正确安装,你可以运行一个 Hello World 示例容器:

sudo docker run hello-world

如果你看到了欢迎消息,说明 Docker 已经成功安装并运行了。

四、docker部署nginx

步骤 1: 拉取 Nginx 镜像

首先,我们需要从 Docker Hub 中拉取最新的官方 Nginx 镜像到本地,执行以下命令:

sudo docker pull nginx

上述命令将会从 Docker Hub 中拉取最新版的 Nginx 镜像。如果你需要特定版本的 Nginx,可以指定版本号(比如:nginx:1.17.1)。

步骤 2: 运行 Nginx 容器

一旦 Nginx 镜像被拉取到本地,你可以运行一个容器。下面的命令将创建一个名为 my-nginx 的容器,将宿主机的 80 端口映射到容器的 80 端口上,并将容器放到后台运行:

sudo docker run --name my-nginx -d -p 80:80 nginx

--name 参数指定了容器的名字,-d 参数表示容器在后台运行,-p 参数用于端口映射。

步骤 3: 验证 Nginx 是否运行成功

运行以下命令可以查看容器的状态:

sudo docker ps

如果你能在列表中看到 my-nginx 容器,并且其状态为 "Up",那说明 Nginx 容器正在运行。

你也可以通过浏览器访问主机的 IP 或域名,来进行验证。如果安装成功,你应该能看到 Nginx 的欢迎页面。

步骤 4: 自定义 Nginx 配置(如需)

如果你需要自定义 Nginx 的配置,你可以创建一个配置文件,并挂载到容器内部。首先创建一个本地目录,并在目录内创建你的自定义 nginx.conf 文件:

mkdir -p /path/to/your/nginx-conf
vi /path/to/your/nginx-conf/nginx.conf

编写并保存你的自定义 Nginx 配置。然后在运行容器时,使用 -v 参数挂载配置文件:

sudo docker run --name my-nginx -d -p 80:80 -v /path/to/your/nginx-conf/nginx.conf:/etc/nginx/nginx.conf:ro nginx

使用 -v 参数后,本地的配置文件就会覆盖容器内部的默认配置文件。

步骤 5: 重启 Nginx 容器

如果你对 Nginx 的配置进行了更改,需要重启容器以应用更新:

sudo docker restart my-nginx

这将停止并重新启动 my-nginx 容器。

步骤 6: 查看 Nginx 容器日志

若要查看容器的输出和相关日志,可以使用以下命令:

sudo docker logs my-nginx

上述命令将输出 my-nginx 容器的日志。

五、docker常用的指令:

##查看docker容器版本
docker version

##查看docker容器信息
docker info

##查看docker容器帮助
docker --help

##列出本地images
docker images

##含中间映像层
docker images -a

##只显示镜像ID
docker images -q

##含中间映像层
docker images -qa  

##显示镜像摘要信息(DIGEST列)
docker images --digests

##显示镜像完整信息
docker images --no-trunc

##搜索仓库MySQL镜像
docker search mysql

## --filter=stars=600:只显示 starts>=600 的镜像
docker search --filter=stars=600 mysql

## --no-trunc 显示镜像完整 DESCRIPTION 描述
docker search --no-trunc mysql

## --automated :只列出 AUTOMATED=OK 的镜像
docker search  --automated mysql

##下载Redis官方最新镜像,相当于:docker pull redis:latest
docker pull redis
##下载仓库所有Redis镜像
docker pull -a redis
##下载私人仓库镜像
docker pull bitnami/redis

##单个镜像删除,相当于:docker rmi redis:latest
docker rmi redis

##强制删除(针对基于镜像有运行的容器进程)
docker rmi -f redis

##多个镜像删除,不同镜像间以空格间隔
docker rmi -f redis tomcat nginx

##删除本地全部镜像
docker rmi -f $(docker images -q)

##新建并启动容器,参数:-i  以交互模式运行容器;-t  为容器重新分配一个伪输入终端;--name  为容器指定一个名称
docker run -i -t --name mycentos

##后台启动容器,参数:-d  已守护方式启动容器
docker run -d mycentos

##启动一个或多个已经被停止的容器
docker start redis

##重启容器
docker restart redis

##top支持 ps 命令参数,格式:docker top [OPTIONS] CONTAINER [ps OPTIONS]
##列出redis容器中运行进程
docker top redis

##查看所有运行容器的进程信息
for i in  `docker ps |grep Up|awk '{print $1}'`;do echo \ &&docker top $i; done

##查看redis容器日志,默认参数
docker logs rabbitmq

##查看redis容器日志,参数:-f  跟踪日志输出;-t   显示时间戳;--tail  仅列出最新N条容器日志;
docker logs -f -t --tail=20 redis

##查看容器redis从2019年05月21日后的最新10条日志。
docker logs --since="2019-05-21" --tail=10 redis

##使用run方式在创建时进入
docker run -it centos /bin/bash

##关闭容器并退出
exit

##查看正在运行的容器
docker ps

##查看正在运行的容器的ID
docker ps -q

##查看正在运行+历史运行过的容器
docker ps -a

##显示运行容器总文件大小
docker ps -s

##停止一个运行中的容器
docker stop redis

##杀掉一个运行中的容器
docker kill redis

##删除一个已停止的容器
docker rm redis

##删除一个运行中的容器
docker rm -f redis

##将rabbitmq容器中的文件copy至本地路径
docker cp rabbitmq:/[container_path] [local_path]

##将主机文件copy至rabbitmq容器
docker cp [local_path] rabbitmq:/[container_path]/

https://flowus.cn/share/ab20fbb1-0bf7-4a75-ba43-4a878396b899?code=A8RVP2
【FlowUs 息流】docker学习文章来源地址https://www.toymoban.com/news/detail-852797.html

到了这里,关于docker新手快速入门的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Android】ARouter新手快速入门

    什么是ARouter ARouter是阿里巴巴推出的一款android界面路由框架 ARouter解决的核心问题是什么 在大型的模块化项目中,一个模块,往往无法直接访问到其它模块中的类,必须通过其它方式来完成模块间的调用 ARouter的核心功能在于,它以路径访问的方式,来取代类直接访问的方式

    2024年02月10日
    浏览(32)
  • Git 新手快速入门教程

    1. 何为版本控制 版本控制是一种记录文件变化的系统,可以跟踪文件的修改历史,并允许用户在不同版本之间进行比较、恢复或合并。它主要用于软件开发过程中管理代码的变更,但也可以应用于任何需要跟踪文件变更的场景。 版本控制系统(VCS)可以帮助团队协作开发,

    2024年04月26日
    浏览(60)
  • git快速入门,新手理解必看

    登录:git config --global user.name  \\\"新用户名\\\" 登出:git config --global user.email \\\"新邮箱地址\\\" 参数意义: --global是全局配置 不写默认本地 查看所有:git config --list 查看具体:git config user.email 其余配置信息同理 官方解释:Git Bash是一个为Windows系统设计的应用程序,提供了

    2024年04月13日
    浏览(39)
  • 小程序注册安装以及新手快速入门教程

    一、注册并安装微信小程序 1.打开  https://mp.weixin.qq.com/  网址,点击立即注册即可进入小程序开发账号的注册流程,注册的账号类型选择 小程序 。 2.根据注册要求注册,发送邮箱信息,接收到微信团队发送的邮箱信息后,点击链接进行激活,如果出现 红色感叹号 可参考下

    2024年02月09日
    浏览(61)
  • 【Android】Dagger和Hilt新手快速入门

    什么是Dagger和Hilt Dagger和Hilt都是安卓端的依赖注入框架 通过注解生成的方式,来取代手动创建对象的方式,来管理对象和其作用域 Dagger是Square公司出品的,而Hilt是由Google公司在Dagger的基础上优化而来 配置项目级别gradle 配置模块级别gradle Hilt使用方式 由于Hilt是个Dagger基础上

    2024年02月12日
    浏览(76)
  • python快速直白入门(半新手向,老手复习向)

    主用python做项目有一段时间,这次简单总结学习下。为后面的项目编写,进行一次基础知识的查缺补漏、 先调用会报错,放在后面即可运行。 ​这种情况可能是因为Python的整数缓存机制导致的,具体表现为在某些情况下,Python会缓存一些整数对象以提高性能,这些对象的引

    2024年02月03日
    浏览(57)
  • 【Android】JUnit和Espresso单元测试新手快速入门

    引入依赖 Java代码测试 点击被Test标注的方法,左侧的运行按钮,就可以执行测试任务 AndroidUI测试 点击被Test标注的方法,左侧的运行按钮,就可以执行测试任务 查看测试报告 测试任务执行完毕,会在app/build/reports目录下生成测试报告 报告会统计所有测试任务的执行结果,已

    2024年02月11日
    浏览(37)
  • pytorch中分布式训练DDP教程(新手快速入门!)

    PyTorch是深度学习领域广泛使用的开源深度学习框架之一。随着深度学习模型的不断增大和数据集的不断增长,单机训练往往不能满足我们的需求。为了加速训练过程,我们可以使用分布式训练技术。在PyTorch中,分布式数据并行(Distributed Data Parallel,简称DDP)是一种常见的分

    2024年02月16日
    浏览(45)
  • 【零基础入门Docker】小白新手初识Docker

    ✍ 面向读者:所有人 ✍ 所属专栏:Docker零基础入门教程 目录 Docker容器和虚拟机的区别 Docker 中的重要术语  在 Ubuntu 上安装 Docker 在 Docker 中创建应用程序 将镜像推送到 Docker Hub 从 Docker Hub 获取并运行镜像 结论 Docker 是一组平台即服务 (PaaS) 产品,它使用操作系统级虚拟化以

    2024年02月08日
    浏览(47)
  • git入门指南:新手快速上手git(Linux环境如何使用git)

    目录  前言 1. 什么是git? 2. git版本控制器 3. git在Linux中的使用 安装git 4. git三板斧 第一招:add 第二招:commit 第三招:push 5. 执行状态 6. 删除 总结           Linux的基本开发工具介绍完毕,接下来介绍一下Linux环境下如何使用git,以及git到底是什么?它和gitee和github之间有

    2024年02月03日
    浏览(62)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包