[一、云原生 Docker 介绍](#一、云原生 Docker 介绍)
[Docker 在云原生中的优势](#Docker 在云原生中的优势)
[1. docker pull(拉取镜像)](#1. docker pull(拉取镜像))
[2. docker images(查看本地镜像)](#2. docker images(查看本地镜像))
[3. docker run(创建并启动容器)](#3. docker run(创建并启动容器))
[4. docker ps(显示容器)](#4. docker ps(显示容器))
[5. docker start(启动容器)](#5. docker start(启动容器))
[6. docker exec(交互模式进入容器)](#6. docker exec(交互模式进入容器))
[7. 退出容器](#7. 退出容器)
[8. docker stop(停止容器)](#8. docker stop(停止容器))
[8. docker restart(重启容器)](#8. docker restart(重启容器))
[9. docker rm(删除容器)](#9. docker rm(删除容器))
[10. 其余杂项](#10. 其余杂项)
[10.1. 查看容器日志](#10.1. 查看容器日志)
[10.2. 查看容器网络](#10.2. 查看容器网络)
[10.3. 查看docker卷](#10.3. 查看docker卷)
[10.4. 显示 Docker 系统的详细信息](#10.4. 显示 Docker 系统的详细信息)
[10.5. 显示 Docker 的版本信息](#10.5. 显示 Docker 的版本信息)
学习视频泷羽sec:
一、云原生 Docker 介绍
"云原生"(Cloud Native)是指一类在云环境中构建、部署和运行应用程序的方法论和技术栈,它主要包括容器化、微服务、动态管理、持续集成和交付等特性。Docker 是实现云原生应用的一项核心技术,它是一个开源的应用容器化平台,允许开发者将应用及其所有依赖打包成一个标准化的容器镜像,从而简化应用的部署和管理。
Docker 在云原生中的优势
-
微服务架构:云原生应用倾向于拆分成多个小的、独立的服务,每个服务可以独立开发、部署和扩展。Docker 容器为微服务的实现提供了理想的基础架构,因为它能够在多个容器中运行不同的服务,并且确保服务的环境一致性。
-
一致性与可移植性:Docker 容器确保应用程序在开发、测试、生产等各个环境中都能够一致运行,减少了环境不一致带来的问题。无论是在本地开发机器还是在云环境中,Docker 容器都能保证一致的行为。
-
资源隔离:每个 Docker 容器都是相互隔离的,能够确保不同应用之间的相互干扰最小化。同时,Docker 提供了资源限制(如 CPU、内存等),有助于提高资源的利用率和管理。
-
高效性:Docker 容器比传统的虚拟机(VM)更为轻量,因为它们共享操作系统内核,而不需要模拟完整的硬件环境。这使得容器启动速度更快、占用资源更少。
-
弹性扩展:Docker 和 Kubernetes 等编排工具使得云原生应用能够根据需求进行弹性扩展。Kubernetes 可以自动调整容器的数量以适应负载的变化,从而确保系统的高可用性和稳定性。
简单来说Docker 是实现云原生架构的核心技术之一,它通过提供容器化的解决方案,使得应用能够在不同的环境中一致运行,并支持高效的部署和管理。结合 Kubernetes 等工具,Docker 可以帮助开发者构建、部署和管理微服务应用,充分发挥云原生技术的优势,提升应用的灵活性、可扩展性和高可用性。
docker让服务不再特别依赖环境,可以直接搭建一个或多个环境,并且正常使用。多个环境还互相隔离相互不影响。
二、docker的安装
这是kali的安装方法一条一条输入就可以了,也可以全选复制直接粘贴
遇到选项全部回车,启动状态正常和sudo docker -v可以打印出版本号就没有问题
#安装https协议、CA证书、dirmngr sudo apt-get update sudo apt-get install -y apt-transport-https ca-certificates sudo apt-get install dirmngr #添加GPG密钥并添加更新源 sudo curl -fsSL https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/debian/gpg | sudo apt-key add - sudo echo 'deb [arch=amd64] https://download.docker.com/linux/debian rolling stable' | sudo tee /etc/apt/sources.list.d/docker.list #更新软件包并安装docker sudo apt-get update sudo apt-get install docker.io #启动docker服务器 sudo service docker start #安装compose sudo apt install docker-compose #配置镜像源 sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": [ "https://5tqw56kt.mirror.aliyuncs.com", "https://dockerhpcloud.cloud", "https://docker.m.daocloud.io", "https://docker.1panel.live", "http://mirrors.ustc.edu.cn", "https://docker.chenby.cn", "https://docker.ckyl.me", "http://mirror.azure.cn", "https://hub.rat.dev" ] } EOF sudo systemctl daemon-reload sudo systemctl restart docker sudo systemctl status docker --no-pager sudo docker -v
三、docker的基础命令
本章节重点写增删改查这种基础命令,其余的进阶后期章节有可能会讲,到时候会更偏向于安全领域而不是使用。
1. docker pull(拉取镜像)
bash
docker pull [OPTIONS] NAME[:TAG|@DIGEST]
从 Docker Hub 或其他 Docker 镜像仓库拉取镜像。
示例:
bash
#拉取centos7的Docker镜像。
docker pull centos:7
从 Docker Hub 拉取最新的centos7 镜像。
2. docker images(查看本地镜像)
bash
docker images [OPTIONS] [REPOSITORY[:TAG]]
列出本地存储的所有 Docker 镜像。
常用选项:
-
-a
:显示所有镜像,包括中间镜像层。 -
-q
:仅显示镜像的 ID。
示例:
bash
docker images
3. docker run(创建并启动容器)
bash
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
用于创建并启动一个新的容器实例,执行一个命令。是最常用的命令之一。
-
IMAGE:要运行的镜像名。如果镜像不存在,Docker 会自动从 Docker Hub 拉取该镜像。
-
COMMAND:容器启动后执行的命令。如果不指定命令,Docker 会执行镜像中定义的默认命令。
常用选项:
-
-d
:以后台模式运行容器(即 detached 模式)。 -
-p
:端口映射。例如,-p 8080:80
将容器的 80 端口映射到主机的 8080 端口。 -
-v
:挂载卷,将本地目录或文件挂载到容器中。 -
--name
:为容器指定一个名称。 -
--rm
:容器停止后自动删除容器。
示例:
bash
docker run -it --name my_centos7 centos:7 /bin/bash
这个命令会在后台启动一个基于 centos7镜像的容器,将容器的 80 端口映射到主机的 8080 端口,并将容器命名为my_centos7可以用exit退出。
4. docker ps(显示容器)
bash
docker ps [OPTIONS]
显示当前正在运行的容器列表。
常用选项:
-
-a
:显示所有容器,包括停止的容器。 -
-q
:仅显示容器的 ID。 -
--format
:以自定义格式显示信息。
示例:
bash
docker ps -a
显示所有容器,包括已停止的容器。
5. docker start(启动容器)
bash
docker start [OPTIONS] CONTAINER [CONTAINER...]
启动一个或多个已停止的容器。
示例:
bash
docker start my_centos7
启动名为 my_centos7
的容器。
STATUS状态显示已经启动
6. docker exec(交互模式进入容器)
bash
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
在运行中的容器内执行一个命令。
常用选项:
-it
:以交互模式(interactive)和终端(tty)启动容器命令,通常用于进入容器的 shell。
示例:
bash
docker exec -it my_centos7 /bin/bash
进入名为 my_centos7
的容器,并启动 /bin/bash
终端。
7. 退出容器
用 exit
或 Ctrl + D
,退出后容器继续运行。
8. docker stop(停止容器)
bash
docker stop [OPTIONS] CONTAINER [CONTAINER...]
停止一个或多个正在运行的容器。
- CONTAINER:容器的 ID 或名称。
示例:
bash
docker stop my_centos7
停止名为 my_centos7
的容器。
8. docker restart(重启容器)
bash
docker restart [OPTIONS] CONTAINER [CONTAINER...]
重启一个或多个容器。
示例:
bash
docker restart my_centos7
重启名为 my_centos7
的容器。
9. docker rm(删除容器)
bash
docker rm [OPTIONS] CONTAINER [CONTAINER...]
删除一个或多个容器。只有停止的容器才能被删除。
常用选项:
-
-f
:强制删除运行中的容器。 -
-v
:同时删除容器相关的卷。
示例:
bash
docker rm my_centos7
删除名为 my_centos7
的容器,只有停止的容器才能被删除。
10. 其余杂项
10.1. 查看容器日志
bash
docker logs [OPTIONS] CONTAINER
查看容器的日志输出。
常用选项:
-
-f
:实时查看日志。 -
--tail
:显示日志的最后几行。
示例:
bash
docker logs -f my_centos7
实时查看名为 my_centos7
容器的日志。
10.2. 查看容器网络
bash
docker network COMMAND
管理 Docker 网络。常用命令包括 docker network ls
(列出所有网络)、docker network create
(创建网络)、docker network inspect
(查看网络详情)等。
示例:
bash
docker network ls
列出所有 Docker 网络。
10.3. 查看docker卷
bash
docker volume COMMAND
管理 Docker 卷。常用命令包括 docker volume ls
(列出所有卷)、docker volume create
(创建卷)、docker volume inspect
(查看卷的详细信息)等。
示例:
bash
docker volume ls
列出所有 Docker 卷。
10.4. 显示 Docker 系统的详细信息
bash
docker info
显示 Docker 系统的详细信息,包括容器、镜像、存储驱动、操作系统等信息。
10.5. 显示 Docker 的版本信息
bash
docker version
显示 Docker 的版本信息,包括客户端和服务器端的版本。
结语
Docker 是实现云原生架构的核心技术之一,它通过提供容器化的解决方案,使得应用能够在不同的环境中一致运行,并支持高效的部署和管理。结合 Kubernetes 等工具,Docker 可以帮助开发者构建、部署和管理微服务应用,充分发挥云原生技术的优势,提升应用的灵活性、可扩展性和高可用性。