Docker入门与实战

what 什么是docker?

在这里插入图片描述

  • dockker就想它的logo一样,docker是一只大鲸鱼,然后每个镜像container就是对应的集装箱
  • docker是一款用go语言开发的容器
  • docker的核心思想就是隔离,通过隔离机制,既可以保障每个集装箱里面的东西是互不影响的,也可以将服务器的资源压榨到最大程度。

what docker能干嘛?

下图展示了没有docker的部署上线和有docker之后的部署上线差异:
在这里插入图片描述

docker与虚拟机的区别

在这里插入图片描述
VM与docker的区别:

  1. VM会虚拟出完整的操作系统(windows、linux),而docker直接运行在宿主机的内核上没有自己的内核和虚拟硬件,所以更加小巧轻便
  2. VM是操作系统级别的虚拟化,docker是内核级别的虚拟化
  3. VM比docker更重,更消耗资源,所以docker启动速度远远快于VM
  4. docker可以实现快速的运维部署
  5. docker更便捷的升级和扩容/缩容
  6. 可以更高效的利用物理机的硬件资源

安装docker

官方安装步骤: https://docs.docker.com/get-started/overview/

  1. 安装之前先卸载老版本
    sudo yum remove docker \
    docker-client \
    docker-client-latest \
    docker-common \
    docker-latest \
    docker-latest-logrotate \
    docker-logrotate \
    docker-engine
    
  2. 使用仓库进行安装:
    sudo yum install -y yum-utils
    
    sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo
    
  3. 安装docker引擎
    sudo yum install docker-ce docker-ce-cli containerd.io
    
  4. 启动docker
    sudo systemctl start docker
    
  5. 验证docker引擎是否安装完毕
    sh sudo docker run hello-world
    在这里插入图片描述

docker命令

docker命令大全可以参考如下图所示:
在这里插入图片描述

docker启动相关指令

# 查看下载的镜像列表
docker images
# 重新加载docker
sudo systemctl daemon-reload
# 重启docker
sudo systemctl restart docker
# 配置docker国内镜像地址(加快镜像下载速度)
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors":["https://aa25jngun.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

docker基础命令

官网文档链接:https://docs.docker.com/reference/
在这里插入图片描述

# 查看版本
docker version
# 显示docker的信息
docker info
# 帮助命令
docker [命令] --help
## 查看运行中的容器
docker ps
# 查看容器的top信息
docker top [容器id]
# 查看容器元数据信息
docker inspect [容器id]
# 进入容器
docker attach [容器id]
# 将主机重的文件拷贝到容器
docker cp SRC_PATH [容器id]:DEST_PATH
# 将容器中的文件拷贝到主机中
docker cp [容器id]:SRC_PATH DEST_PATH
# 查看容器状态
docker status

常用镜像命令

# 列出本机所有镜像
docker images
# 搜索镜像(可以在docker hub上进行搜索 <https://hub.docker.com/>)
docker search rabbitmq
# 下载最新镜像
docker pull rabbitmq
# 下载指定版本镜像
docker pull rabbitmq:3.8.11
# 删除镜像
docker rmi -f [IMAGE ID]
docker rmi -f [IMAGE ID] [IMAGE ID] [IMAGE ID]
docker rmi -f ${docker images -aq}

常用容器命令

# 运行容器
docker run [可选参数] image
# 查询容器列表
docker ps [OPSTIONS]
# 退出容器
exit、CTRL+D、CTRL+P+Q
# 删除容器
docker rm [OPTIONS] CONTAINER [CONTAINER...]
# 启动&重启容器
docker start [容器id]
docker restart [容器id]
# 停止正在运行的容器
docker stop [容器id]
# 强制停止当前容器
docker kill [容器id]

docker镜像原理

镜像是一种轻量级、可执行的独立软件包。保护代码、运行时、库、环境变量和配置文件。所有应用直接打包docker镜像就可以直接跑起来。

获得镜像方式

  1. 从远程仓库下载在这里插入图片描述
    在下载的时候,可以看到是一层层下载,这个就是联合文件系统UnionFS。
    在这里插入图片描述
  2. 通过传输拷贝方式获得
  3. 自己通过DockerFile制作镜像

镜像加载原理

在这里插入图片描述

提交镜像

提交容器,成为一个新的副本
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
在这里插入图片描述

数据容器卷

如前面介绍的,docker是将应用和环境统一进行了打包。如果删除容器的话,数据也会被同时删除,那么,如果我们有数据持久化需求,或者容器之间数据共享的需求,则就需要用到容器数据卷在这里插入图片描述
在这里插入图片描述
我们发现, 删除了museCentOS03之后, museCentOS02里的muse01目录下依然有a.txt文件, 这就表明了,museCentOS01~museCentOS03 这三个容器中a.txt文件是互相同步复制备份的。 而并不是同享了某个目录, 大家都去查看一个备份。

挂载操作

执行挂载(把本机路径/home/muse/test, 挂在到centos容器的/bin/bash目录下)
docker run -it -v /home/muse/test:/home centos /bin/bash
在这里插入图片描述

# 查看挂载内容(上面run的容器id就是da6268d8ac0a)
docker inspect da6268d8ac0a

匿名挂载:
通过-v 指定容器内路径
docker run -d -P --name nginx1 -v :/etc/nginx nginx
在这里插入图片描述

具名挂载(常用方式):
通过-v 卷名:容器内路径, 指定具名挂载
docker run -d -P --name nginx2 -v nginx2:/etc/nginx nginx
在这里插入图片描述

常用挂载相关命令

  • 查看挂载列表
    docker volume ls
    在这里插入图片描述

  • 查看挂载信息
    docker volume inspect [VOLUME]
    在这里插入图片描述

DockerFile构建镜像

  1. 在项目根目录下下创建一个dockerfile文件
  2. 编写DockerFile(命令大写)
FROM centos
VOLUME ["muse01","muse02"]
CMD echo "------finish------"
CMD /bin/bash
  1. 构造镜像
    docker build -f /home/{项目根目录}/dockerfile -t muse/centos:1.0
  2. 启动自己构建的镜像(通过docker images查询出IMAGE ID为eb78333356a6 )
    docker run -it eb78333356a6 /bin/bash

相关资料

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
### 回答1: 《Docker入门基础实战完整.pdf》是一本关于Docker容器化技术的入门基础教程,共分为三个部分。 第一部分主要讲解Docker的简介,包括Docker的概述、核心组件、镜像和容器的概念、Docker的应用场景和优势等。此外还介绍了Docker的安装和配置。 第二部分内容则是基于实例进行的Docker基础实战,分为四个章节。第一章介绍如何使用Docker构建Web服务器环境,包括Nginx、MySQL和PHP等服务的部署。第二章则介绍如何使用Docker搭建Java环境,包括JDK、Tomcat等服务的安装。第三章则是讲解如何使用Docker搭建Python环境,并使用Flask框架开发Web应用。最后一章则是将Docker应用于测试环境,介绍如何使用Docker进行网络测试和负载均衡等。 第三部分则是Docker高级进阶,包括Docker的网络模式、数据管理和安全等内容。其中涉及到Docker的官方仓库和Docker Compose等工具的使用。 通过学习《Docker入门基础实战完整.pdf》,可以快速入门Docker容器化技术,并且通过实例进行实践操作,深入了解Docker的各个方面。无论是对于开发者还是运维人员来说,这本书都是一本非常实用的参考书籍。 ### 回答2: 《Docker 入门基础实战完整.pdf》是一本介绍 Docker 技术的入门教程,主要针对刚开始学习 Docker 的人群。本书主要介绍了 Docker 的概念、使用方法、常见操作以及应用实例等方面的内容。 在 Docker 的概念方面,本书介绍了 Docker 的基本定义,包括容器、镜像、仓库等概念。通过对这些概念的具体解释,可以让读者更好地理解 Docker 的基础知识。 在 Docker 的使用方法方面,本书介绍了 Docker 的安装、配置、镜像管理和容器管理等方面的内容。通过该章节的学习,读者可以了解到如何安装 Docker,如何通过命令行与 Docker 进行交互等基础操作。 在常见的 Docker 操作方面,本书主要介绍了 Docker 的日常使用场景,包括 Docker Compose、Docker Swarm、Dockerfile 和 Docker Network 等操作。这些常见的操作可以使读者能够更好地了解 Docker 技术的使用方法,也可以帮助读者在实际应用中更有效地使用 Docker。 在 Docker 应用实例方面,本书提供了一些实用的案例,包括 Web 应用、数据库容器、持续集成等。这些案例可以帮助读者更好地了解如何在实际应用场景中使用 Docker,也可以帮助读者更快速地上手实战操作。 总的来说,《Docker 入门基础实战完整.pdf》是一本非常实用的 Docker 技术入门指南。它覆盖了 Docker 的基础知识、常见操作和应用实例等方面,对于想要入门 Docker 技术的读者是非常有帮助的。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

我思知我在

原创不易,多多一键三连

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

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

打赏作者

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

抵扣说明:

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

余额充值