Docker零基础快速入门(通俗易懂)

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

「作者主页」:士别三日wyx
「作者简介」:CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者

docker快速入门,《网络安全快速入门》,docker,容器,运维,云原生,1024程序员节


Docker是Go语言开发的应用容器引擎,用来解决环境迁移问题。

比如,我在开发环境写完了代码,打包成war包放到放到测试环境,由于两个环境的JDK版本不一样,导致程序运行时出现了Bug。
为了解决这种环境不同导致的问题,我们把代码和依赖环境放到一个容器当中,一同发送到测试环境。
这个容器,就是我们接下来要学习的Docker。

一、安装Docker

Docker支持Windows、CentOS、Mac等多种操作系统,执行以下命令即可安装。

第一步:更新 yum 到最新版

yum update

执行若干分钟,出现Complete字样,即代表更新完成。

docker快速入门,《网络安全快速入门》,docker,容器,运维,云原生,1024程序员节

第二步:安装需要的依赖包

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

docker快速入门,《网络安全快速入门》,docker,容器,运维,云原生,1024程序员节

第三步:设置yum源

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

docker快速入门,《网络安全快速入门》,docker,容器,运维,云原生,1024程序员节

第四步:安装docker

yum install -y docker-ce

docker快速入门,《网络安全快速入门》,docker,容器,运维,云原生,1024程序员节

第五步:验证是否安装成功(查看docker版本)

docker -v

docker快速入门,《网络安全快速入门》,docker,容器,运维,云原生,1024程序员节

二、配置镜像加速器

Docker默认的镜像网站太慢,需要配置成阿里云的镜像加速器。

# 1、创建docker目录
mkdir -p /etc/docker
# 2、配置镜像地址
tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://rm2pgssp.mirror.aliyuncs.com"]
}
EOF
# 3、重新加载
systemctl daemon-reload
# 4、重启docker服务
systemctl restart docker

docker快速入门,《网络安全快速入门》,docker,容器,运维,云原生,1024程序员节

验证:查看配置文件是否修改成功

docker快速入门,《网络安全快速入门》,docker,容器,运维,云原生,1024程序员节

三、Docker服务命令

  • 启动/关闭/重启docker服务

    systemctl start/stop/restart docker
    
  • 开机启动docker服务

    systemctl enable docker
    
  • 取消开机启动docker服务

    systemctl disable docker
    
  • 查看是否设置开机自启(enable:开启,disable:关闭)

    systemctl list-unit-files | grep docker
    

四、Docker镜像命令

镜像内部是一个精简的操作系统,里面包含应用运行所必须的文件和依赖包。

镜像可以理解为Docker中安装的软件,Docker会把需要安装的软件和以来环境打包成镜像

  • 查看镜像:本地有哪些镜像

    docker images
    
  • 搜索镜像:从网络中搜索可用的镜像

    docker search 镜像名称
    
  • 拉取镜像:从Docker仓库下载镜像

    docker pull 镜像名称
    docker pull 镜像名称:版本
    
  • 删除镜像:删除本地的镜像

    docker rmi 镜像名称
    docker rmi 镜像名称:版本
    

实例1:安装redis镜像

# 1、查看Docker中有哪些镜像(当前未安装redis镜像)
docker images
# 2、安装redis镜像(默认版本)
docker pull redis
# 3、再次查看镜像,多出来一个redis镜像
docker images

docker快速入门,《网络安全快速入门》,docker,容器,运维,云原生,1024程序员节

实例2:安装指定版本的redis镜像

docker pull redis:5.0

docker快速入门,《网络安全快速入门》,docker,容器,运维,云原生,1024程序员节

实例3:删除redis镜像

docker rmi redis

docker快速入门,《网络安全快速入门》,docker,容器,运维,云原生,1024程序员节

实例4:删除 redis 5.0 版本的镜像

docker rmi redis:5.0

docker快速入门,《网络安全快速入门》,docker,容器,运维,云原生,1024程序员节

五、Docker容器命令

容器就是镜像物理文件运行出来的实例

镜像和容器可以理解为"软件"的两种不同状态:下载的"软件"不运行时叫镜像;"软件"运行后变成容器。

  • 查看容器

    docker ps	# 查看正在运行的容器
    
    • -a:查看所有容器(默认只显示运行中的容器)

      docker ps -a	# 查看所有创建的容器
      
  • (创建容器)运行镜像

    docker run -id --name=c1 redis:5.0
    
    • -i:保持容器运行
    • -d:守护模式(创建的容器在后台运行)
    • -t:分配一个伪终端,通常与-i同时使用
    • –name:为创建的容器命名
  • 进入容器

    docker exec -it c1 bash
    
    • c1:容器的名字
    • bash:指定容器使用的shell
  • 退出容器

    exit
    
  • 停止容器

    docker stop c1
    
  • 查看容器信息

    docker inspect c1
    
  • 删除容器

    docker rm c1
    

实例1:创建一个容器,进入/退出容器后,停止容器

# 1、查看docker中有没有安装redis镜像(没有则需要下载)
docker images
# 2、查看docker有没有运行redis容器(未运行)
docker ps
# 3、运行redis 5.0版本镜像(创建容器),指定容器名为c1
docker run -id --name=c1 redis:5.0
# 4、查看docker有没有运行redis容器(STATUS字段为Up时,表示运行中)
docker ps
# 5、进入redis容器(指定容器名c1,指定使用的shell为bash)
docker exec -it c1 bash
# 6、退出容器
exit
# 7、停止redis容器(根据容器名c1)
docker stop c1
# 8、查看docker有没有运行redis容器(已停止运行)
docker ps

docker快速入门,《网络安全快速入门》,docker,容器,运维,云原生,1024程序员节

实例2:删除刚才创建的容器

# 1、查看已经创建的容器(STATUS字段为Exited时,表示未运行)
docker ps -a
# 2、删除容器(根据容器名c1)
docker rm c1
# 3、再次查看容器,确认已经删除
docker ps -a

docker快速入门,《网络安全快速入门》,docker,容器,运维,云原生,1024程序员节

六、Docker容器数据卷

数据卷本质上就是文件映射,把容器中的路径映射到宿主机的路径。

比如:把容器的/data目录映射到宿主机的/data目录,容器中的数据发生变化时,宿主机的数据也会同步变化;反之亦然。

数据卷有什么用?

  1. 容器数据持久化:即使容器被删除,宿主机中仍然可以保留容器中的数据,
  2. 外部机器和容器通信:Docker容器采用沙箱机制隔离,无法直接与外部机器交换文件,配置数据卷后,可以将文件放到宿主机的映射目录下,然后自动同步到容器中。

PS:如果不是很理解,可以做完这一章节的实例后,再回来看一遍。

  • 创建容器时,使用 -v 参数 配置数据卷

    docker run -id --name=c1 -v 宿主机目录:容器内目录 redis bash
    
  • 提示:

    • 目录必须是绝对路径
    • 如果目录不存在,会自动创建

实例:创建redis容器时,配置数据卷,观察宿主机中创建的文件,是否会同步到容器内

# 1、创建redis容器,把容器的/root/data目录映射到宿主机的/root/data目录
docker run -id --name=c1 -v /root/data:/root/data redis bash
# 2、在宿主机的映射目录中,创建文件 a.txt
touch /root/data/a.txt
# 3、查看宿主机的文件是否创建成功
ls /root/data
# 4、进入redis容器(根据容器名c1)
docker exec -it c1 bash
# 5、查看容器的映射目录中,是否同步创建了文件a.txt
ls /root/data

docker快速入门,《网络安全快速入门》,docker,容器,运维,云原生,1024程序员节

七、Docker部署应用

在Docker上安装那些常见的应用软件,比如tomcat、mysql等。

Docker上安装应用非常简单,只需要四步:

  1. 搜索镜像
  2. 拉取镜像
  3. 创建容器
  4. 操作容器中的应用

1、部署Tomcat

1)下载Tomcat镜像

docker pull tomcat

docker快速入门,《网络安全快速入门》,docker,容器,运维,云原生,1024程序员节

2)创建Tomcat容器,创建容器后,Tomcat服务会自动启动

docker快速入门,《网络安全快速入门》,docker,容器,运维,云原生,1024程序员节

3)访问Web,http://IP:8080/,显示404,因为Tomcat容器创建后,webapps目录下没有任何文件

docker快速入门,《网络安全快速入门》,docker,容器,运维,云原生,1024程序员节
4)编写首页文件,创建/root/tomcat/ROOT/index.html文件。

docker快速入门,《网络安全快速入门》,docker,容器,运维,云原生,1024程序员节

i后,随便写一点首页内容,按esc退出编辑模式,输入:wq退出并保存

docker快速入门,《网络安全快速入门》,docker,容器,运维,云原生,1024程序员节

刷新Web页面,首页就展示出来了。

docker快速入门,《网络安全快速入门》,docker,容器,运维,云原生,1024程序员节

下面分享两个部署过程中可能会出现的问题。

2.1 解决页面404问题

访问 localhost:8080,默认指定到 webapps/ROOT/index.html这个页面,也就是tomcat的首页。

因为创建容器的时候,我们把宿主机的/root/tomcat/目录映射到了容器的/usr/local/tomcat/webapps/目录,所以,在tomcat目录下创建的首页文件,会同步创建到容器的webapps目录下。

需要注意的是,HTML文件不能直接放在webapps下面,中间需要间隔一个文件夹

  • /usr/local/tomcat/webapps/xx.html 页面404
  • /usr/local/tomcat/webapps/aaa/xx.html 正常访问

2.2 解决页面无法访问问题

1)Ping宿主机的IP地址,检查网络是否通畅

  • 如果Ping不通,就用宿主机Ping自己的网关,网关能通但外部不通,可能是DNS有问题,修改DNS地址:到/etc/resolv.con 添加一条nameserver 114.114.114.114

2)Telnet IP:8080,检查端口是否可达(前提是IP能Ping通),如果端口不通,则按照下面步骤排查

  • netstat -anpt | grep 8080,查看8080是否处于监听(LISTEN)状态。
  • ps -ef | grep tomcat,查看服务是否运行
  • systemctl stop firewalld,关闭防火墙,或开放8080端口
  • (使用阿里云服务器时)确认安全组端口是否开放

2、部署MySQL

1)下载MySQL镜像

docker pull mysql

docker快速入门,《网络安全快速入门》,docker,容器,运维,云原生,1024程序员节

2)创建MySQL容器

docker run -id -p 3306:3306 --name=mysql \
-v /root/mysql/conf:/etc/mysql/conf.d \
-v /root/mysql/logs:/logs \
-v /root/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
mysql

参数说明:

  • \(反斜杠):用于换行,增加代码可读性
  • -p 3306:3306:将容器的3306端口(右)映射到宿主机的3306端口(左)
  • -v /root/mysql/conf:/etc/mysql/conf.d:映射配置目录
  • -v /root/mysql/logs:/logs:映射日志目录
  • -v /root/mysql/data:/var/lib/mysql:映射数据目录
  • -e MYSQL_ROOT_PASSWORD=123456:初始化root密码

docker快速入门,《网络安全快速入门》,docker,容器,运维,云原生,1024程序员节

3)进入容器,连接登录MySQL

docker exec -it mysql bash
mysql -uroot -p123456

docker快速入门,《网络安全快速入门》,docker,容器,运维,云原生,1024程序员节文章来源地址https://www.toymoban.com/news/detail-794419.html

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

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

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

相关文章

  • Docker超详细基础教程,快速入门docker首选

    一、docker概述 1.什么是docker Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。 Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。 容器是完全使用沙箱机制,相互之

    2024年02月13日
    浏览(37)
  • 《Docker快速入门(基础篇)》在Docker中运行Nginx

    前面5篇文章,对Docker的基础知识做了较充分介绍,这里对基础篇做收尾,本篇介绍Nginx。 此时,访问http://localhost:8888,发现访问失败。 失败原因: 容器启动失败,数据卷中少了nginx.conf配置文件。 解决办法: 重新创建一个Nginx容器,使用9000端口,容器命名为nginx1 将nginx1里面

    2024年02月09日
    浏览(31)
  • 请享用美味的快速幂算法-通俗易懂版

    一、算法整体思路 第1步 按照最直接、最好理解的方式看,2的n次幂是n个2相乘,即有如下公式 例如: 第2步 然而为了节省大量时间,通过简单的思考和严格数学推理,我们不难理解以下结论: 1.偶数幂的情况: 通过幂函数运算法则,有2 n =(2 n/2 ) 2 ,即有如下等式: 例如

    2024年02月16日
    浏览(25)
  • 简单易懂的Docker下载安装教程:快速上手容器化应用

    Docker 是一种用于容器化应用程序的开源平台,可以简化应用程序的开发、测试和部署过程。以下是 Docker 在常见操作系统上的下载安装教程。 步骤 1:下载 Docker Desktop 在 Windows 系统上,Docker 提供了一个名为 Docker Desktop 的图形界面工具,可以方便地进行 Docker 安装和管理。在

    2024年02月01日
    浏览(39)
  • 小白入门区块链(通俗易懂)

    区块链基础入门 什么是区块链 科技层面解释 数学,密码学,互联网,计算机编程 官方解释 区块链是一个分布式的共享账本和数据库,具有去中心化,不可篡改,全程留痕,可以追溯,集体维护,公开通明的特点分布式数字账簿,加密技术,不可篡改,通证(一种以数字形

    2024年02月08日
    浏览(32)
  • 通俗易懂 快速理解 JDK动态代理 和 cglib动态代理

    动态代理的实现方案有两种, JDK动态代理 和 CGLIB动态代理 ,区别在于JDK自带的动态代理,必须要有接口,而CGLIB动态代理有没有接口都可以。 JDK动态代理 :JDK原生的实现方式,需要被代理的目标类必须实现接口。因为这个技术要求 代理对象和目标对象实现同样的接口 (兄

    2024年02月08日
    浏览(36)
  • 通俗易懂声学基础

    声音是由振动产生的,当物体振动时,会引起周围空气的波动,导致空气粒子间的距离发生疏密的变化,从而引发空气压强的变化,这种变化会传到人的耳膜,再传到人的大脑,人就听到声音了。 物理上,声音有四个基本特性:音色、音强、音高、音长。其中音色为音段特征

    2023年04月24日
    浏览(36)
  • 【深度学习-神经网络架构-通俗易懂的入门课程】

    AI 包括 机器学习 包括 深度学习 目前深度学习的算法表现更好 数据获取 特征工程 建立模型 评估与应用 特征、算法 特征决定了模型的上限,算法和参数决定了如何去逼近这个基线 问题:传统的机器学习算法,在数据规模上升时,效果无法提升 模型如何搭建? 领域都有成型

    2024年02月16日
    浏览(32)
  • 大数据之Hadoop3简单入门(一)(通俗易懂)

    目录 一. 大数据基础概论 1.1 何为大数据 2.1 大数据特点(4V) 2.1.1 Volume(大量) 2.2.2 Velocity(高速) 2.2.3 Varity(多样) 2.2.4 Value(低价值密度) 二. hadoop入门概述 2.1 什么是hadoop 2.1.1 概念 2.1.2 hadoop优势 2.1.3 hadoop不同版本区别 2.2  HDFS架构概述 2.3  Yarn架构概述 2.4 MapReduce架

    2024年02月02日
    浏览(33)
  • Android Studio入门级教程(详细)【小白必看】[通俗易懂]

    Android Studio如何使用 本文主要讲解一下Android Studio使用方法 步骤: 1.建立项目 首先点击new——new project新建项目 选择想要创建的Android 的模板,建议选择empty activity(空模板),然后next Name:给你的项目起一个名字 API level:选择Android 虚拟机的版本,版本越低运行起来越快 剩

    2024年02月08日
    浏览(41)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包