Docker入门

目录

[一. 简介](#一. 简介)

[1.1 什么是Docker](#1.1 什么是Docker)

[1.2 Docker的应用场景](#1.2 Docker的应用场景)

[1.3 Docker和VMware区别](#1.3 Docker和VMware区别)

[1.4 Docker的优点](#1.4 Docker的优点)

[二. Docker的安装](#二. Docker的安装)

[2.1 环境配置](#2.1 环境配置)

[2.2 配置镜像仓库](#2.2 配置镜像仓库)

[三. Docker的常用命令](#三. Docker的常用命令)

[3.1 基本命令](#3.1 基本命令)

[3.2 镜像命令](#3.2 镜像命令)

[3.3 容器命令](#3.3 容器命令)


一. 简介

1.1 什么是Docker

Docker 是一个开源的应用容器引擎 ,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。是新一代的虚拟化技术,能够最大层度利用服务器资源

1.2 Docker的应用场景

  1. 应用程序部署:使用Docker可以将应用程序及其所有依赖项打包成一个独立的容器,然后在任何支持Docker的环境中轻松部署和运行。
  2. 开发环境管理:开发者可以使用Docker创建包含特定开发环境的容器,以确保开发和测试环境的一致性,并避免由于环境差异导致的问题。
  3. 微服务架构:Docker容器可以用于构建和部署微服务架构,每个微服务可以被打包成一个独立的容器,并通过容器编排工具进行管理。
  4. 持续集成和持续部署(CI/CD):Docker可以与CI/CD工具集成,帮助实现自动化构建、测试和部署流程,加快软件交付速度。
  5. 多平台支持:Docker容器可以在任何支持Docker的平台上运行,包括开发机、测试环境、云端和本地服务器,实现跨平台部署和可移植性。

总的来说,Docker可以帮助开发者简化应用程序的打包、部署和管理过程,提高开发效率、可靠性和可移植性。

1.3 Docker和VMware区别

都是用于虚拟化技术的工具,但它们有一些重要的区别:

  1. 虚拟化级别:Docker是一种容器化技术,它利用容器来隔离应用程序和其依赖的环境。而VMware是一种虚拟机技术,它模拟了一台完整的计算机系统,包括硬件、操作系统和应用程序。
  2. 性能:由于Docker容器共享主机的操作系统内核,因此在性能方面比VMware虚拟机更高效。VMware虚拟机需要独立的操作系统和硬件模拟,因此在资源消耗和性能方面通常会有一些额外的开销。
  3. 部署和管理:Docker容器可以更快速地部署和启动,而且可以更容易地进行扩展和管理。VMware虚拟机需要较长时间来启动,并且需要更多的管理和配置。
  4. 灵活性:Docker容器更加轻量级和灵活,可以在不同的环境中移植和部署。VMware虚拟机则需要更多的配置和资源来运行。

总的来说,Docker更适合于轻量级和快速部署的应用程序,而VMware更适合于需要完全隔离和独立操作系统的应用程序。选择使用哪种虚拟化技术取决于具体的需求和场景。

1.4 Docker的优点

1、简化程序:

Docker 让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,便可以实现虚拟化。Docker改变了虚拟化的方式,使开发者可以直接将自己的成果放入Docker中进行管理。方便快捷已经是 Docker的最大优势,过去需要用数天乃至数周的 任务,在Docker容器的处理下,只需要数秒就能完成。

2、避免选择恐惧症:

如果你有选择恐惧症,还是资深患者。那么你可以使用 Docker 打包你的纠结!比如 Docker 镜像;Docker 镜像中包含了运行环境和配置,所以 Docker 可以简化部署多种应用实例工作。比如 Web 应用、后台应用、数据库应用、大数据应用比如 Hadoop 集群、消息队列等等都可以打包成一个镜像部署。

3、节省开支:

一方面,云计算时代到来,使开发者不必为了追求效果而配置高额的硬件,Docker 改变了高性能必然高价格的思维定势。Docker 与云的结合,让云空间得到更充分的利用。不仅解决了硬件管理的问题,也改变了虚拟化的方式。

二. Docker的安装

2.1 环境配置

1. 查看内核

uname -r

2. 更新yum源为最新

yum update -y

3. 装Docker所需要的工具包

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

4. 设置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

5. 下载安装Docker

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

6. 启动Docker并且设置开机自启动

#启动Docker
systemctl start docker

#设置开机自启动
systemctl enable docker

7. 检测Docker是否安装成功

docker version

2.2 配置镜像仓库

1. 进入阿里云镜像官方网址:

阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台欢迎登录阿里云,全球领先的云计算及人工智能科技公司,阿里云为200多个国家和地区的企业、开发者和政府机构提供云计算基础服务及解决方案。阿里云云计算、安全、大数据、人工智能、企业应用、物联网等云计算服务。https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors

如果没有账号就注册得到一个账号,如果有直接登录就好了

2. 创建一个文件

cd /etc/docker/
vim daemon.json

3. 复制自己的镜像文件地址放到daemon.json文件中

按 i 键进入编辑模式(在底下会有插入二字),配置完成后,按 esc 键退出编辑模式,最后按 :wq 键进行保存并退出vim模式

4. 配置

systemctl daemon-reload
systemctl restart docker

5. 测试

如果下载到5~3分钟代表成功了

#从官网查
docker search mysql
 
#下载mysql
docker pull mysql
 
#可以查看有多大
docker images

这样就算安装成功了

6. 删除镜像

docker rmi + ..

三. Docker的常用命令

3.1 基本命令

#启动Docker
systemctl start docker

#停止Docker
systemctl stop docker

#重启Docker
systemctl restart docker

#开机启动 Docker
systemctl enable docker

#查看Docker 概要信息
docker info

#查看Docker 帮助文档
docker --help

#查看Docker 版本信息
dockers version

3.2 镜像命令

1. 列出本机所有镜像( 查看服务器(虚拟机)下载那些镜像 )

docker images 

仓库查看镜像

docker search 这里输入搜索的镜像

2. docker pull 下载镜像

1. 删除单个

docker pull 镜像名称:[TAG]

注意:不加TAG,默认下载最新版latest

3. docker rmi 删除镜像(可以通过名字或者ID删除)

docker rmi (-f 强制删除) 镜像名称:[TAG]

有镜像生成的容器再运行时候,会报错,删除失败

我们需要加 -f 强制删除

2. 删除多个:docker rmi -f 镜像名称1:[TAG] 镜像名称2:[TAG]

中间空格隔开

3. 删除全部:docker rmi -f $(docker images -qa)

3.3 容器命令

  • 创建容器
  1. 新增容器并进入容器:docker run -it --name mycentos01 镜像ID
  2. 新增容器不进人容器:docker run -di --name mycentos02 镜像ID
  • 退出容器
  1. exit :容器退出停止
  2. Ctrl+P+Q :容器不停止退出
  • 查看容器
  1. docker ps :查看运行中的容器
  2. docker ps -a:查看所有的容器
  • 进入容器 docker exec -it 容器名称 或者 容器ID /bin/bash
  • 停止容器 docker stop 容器名称 或者 容器ID
  • 启动容器 docker start 容器名称 或者 容器ID
  • 重启容器 docker restart 容器名称 或者 容器ID
  • 删除容器 docker rm 容器ID
  • Docker容器日志
  1. docker logs 容器ID
  2. cd /var/lib/docker/containers/
相关推荐
景天科技苑3 小时前
【云原生开发】K8S多集群资源管理平台架构设计
云原生·容器·kubernetes·k8s·云原生开发·k8s管理系统
wclass-zhengge3 小时前
K8S篇(基本介绍)
云原生·容器·kubernetes
颜淡慕潇3 小时前
【K8S问题系列 |1 】Kubernetes 中 NodePort 类型的 Service 无法访问【已解决】
后端·云原生·容器·kubernetes·问题解决
川石课堂软件测试5 小时前
性能测试|docker容器下搭建JMeter+Grafana+Influxdb监控可视化平台
运维·javascript·深度学习·jmeter·docker·容器·grafana
昌sit!12 小时前
K8S node节点没有相应的pod镜像运行故障处理办法
云原生·容器·kubernetes
追风林13 小时前
mac 本地docker-mysql主从复制部署
mysql·macos·docker
aloha_78913 小时前
从零记录搭建一个干净的mybatis环境
java·笔记·spring·spring cloud·maven·mybatis·springboot
A ?Charis14 小时前
Gitlab-runner running on Kubernetes - hostAliases
容器·kubernetes·gitlab
城南vision14 小时前
Docker学习—Docker核心概念总结
java·学习·docker
wclass-zhengge15 小时前
Docker篇(Docker Compose)
运维·docker·容器