Docker 简明教程

本文是 Docker 简明教程,涵盖了 Docker 的简介、安装、架构(镜像、容器、仓库)、常用指令、数据卷、应用部署、Dockerfile 以及服务编排。介绍了如何使用 Docker 容器进行数据持久化、端口映射、容器间通信,以及通过 Dockerfile 创建自定义镜像。此外,还讨论了 Docker Compose 服务编排和私有仓库的搭建与管理。
摘要由CSDN通过智能技术生成

Docker

一、Docker 简介

传统虚拟机中,需要虚拟出一条硬件,运行完整的操作系统,从而才能在该系统上跑程序

而容器内的应用,直接运行在宿主机的内部,容器没有自己的内核,也没有虚拟硬件,所以十分轻便;每个容器相互隔离,都有自己的文件系统,互不影响

docker 可以将应用和依赖,打包到一个轻量级的容器中,从而帮助运维人员快速部署产品

二、Docker 安装

我使用的是阿里云的 ECS,docker 的安装流程,可以参考下面的链接:

https://help.aliyun.com/document_detail/51853.html

三、Docker 架构

docker架构

1、镜像

Docker镜像就好比是一个模板,可以通过这个模板来创建容器服务,tomcat镜像 ===> run ===> tomcat01容器, 通过这个镜像可以创建多个容器(最终服务运行或者项目运行就是在容器中的)

再一个类比的话 ,就是 java 中 对象的 Class 类,可以作为模板,创建不同的对象

2、容器

  • Docker利用容器技术,独立运行一个或者一组应用, 通过镜像来创建的
  • 启动,停止,删除,基本命令!
  • 就目前可以把这个容器理解为一个linux系统

镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和对象一样, 镜像是静态的定义,容器是镜像运行时的实体。

3、仓库

  • 存放镜像的地方
  • Docker Hub(默认是国外的)
  • 阿里云等都有容器服务(配置镜像加速!)

四、Docker 常用指令

1、帮助命令

docker version  # docker版本信息
docker info     # 系统级别的信息,包括镜像和容器的数量
docker 命令 --help 

2、进程相关的命令

# 启动 docker
systemctl start docker

# 停止 docker服务
systemctl stop docker

# 重启 docker
systemctl restart docker

# 查看 docker 服务状态
systemctl status docker

# 设置开机启动 docker
systemctl enable docker

3、镜像相关的命令

# 查看镜像:查看本地所有镜像
docker images
# 查看所用 镜像的 id
docker images -q

# 搜索镜像:从网络中查找需要的镜像
docker search <镜像名称>
docker search redis # 查找 redis 镜像

# 拉取镜像
docker pull <镜像名称>
docker pull redis # 下载最新版本 redis
docker pull redis:5.0 # 下载 5.0 版本 redis  如果不知道要下什么版本,可以在 dockerhub 中找

# 删除镜像
docker rmi <镜像id> # 删除指定本地镜像
docker images -q # 查找所有的镜像列表
docker rmi `docker images -q` # 删除所有本地镜像

4、容器相关的命令

查看容器、创建容器、进入容器、启动容器、停止容器、删除容器、查看容器信息

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

# 查看所有容器
docker ps -a

# 创建并启动容器
docker run <参数>
# 参数说明
# 	-i:保持容器运行。通常与 -t 同时使用。加入it这两个参数后,容器创建后自动进入容器中,退出容器后,容 器自动关闭。
# 	-t:为容器重新分配一个伪输入终端,通常与 -i 同时使用。 
# 	-d:以守护(后台)模式运行容器。创建一个容器在后台运行,需要使用docker exec 进入容器。退出后,容 器不会关闭。
# 	-it 创建的容器一般称为交互式容器,-id 创建的容器一般称为守护式容器 
# 	--name:为创建的容器命名。
docker run -it --name=c1 centos:7 /bin/bash #创建交互式容器,-t 为容器创建了一个伪输入终端  这里是在宿主机中,再创建一个 centos:7 系统
docker run -id --name=c2 centos:7 #创建守护式容器

**注意:**交互式容器,exit后容器自动关闭,守护式容器会在后台执行

# 进入容器
docker exec -it c2 /bin/bash

# 停止容器
docker stop <容器名称>

# 启动容器
docker start <容器名称>

# 删除容器
docker rm <容器名称>

# 查看容器信息
docker inspect <容器名称>

五、Docker 容器的数据卷

1、数据卷的概念

我们先思考如下几个问题:

  • Docker 容器删除后,容器中产生的数据还在吗?
  • Docker 容器和外部机器可以直接交换文件吗?
  • 容器之间怎么进行数据交互呢?

因为容器同时包含产生的数据,所以容器删除之后,数据一并删除

容器文件隔离

容器无法直接与外部及其交换文件

外部机器无法与容器直接进行数据交互

容器之间想要进行数据交互,需要借助一个第三方区域------数据卷<

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

FARO_Z

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

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

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

打赏作者

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

抵扣说明:

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

余额充值