C06S01-Docker架设
一、Docker
1. Docker概述
微服务是一类不是以完整物理机为基础的服务软件,而是借助宿主机的性能,以小量的形式,单独部署应用。
Docker是一个开源的应用容器引擎,基于go语言开发的,使用Apache的协议,是在linux里面运行的容器化的开源工具。是一种轻量级的虚拟机。
Docker的图标是一个托着集装箱的鲸鱼,鲸鱼代表着宿主机,集装箱表示一个个独立的应用。每个应用之间都是互相隔离和独立的。
Docker的设计宗旨:封装、发布、部署、运行、销毁。
每个Docker应用都是单独运行的,该技术是基于Linux系统的namespace而实现。namespace是Linux内核的一种特性,允许将一组系统资源进行隔离,使得每个namespace中的进程看似在系统中拥有独立的资源。
Linux有六个命名空间:
命名空间 | 说明 |
---|---|
UTS | 隔离主机和域名 |
PID | 隔离进程 |
NETWORK | 隔离网络设备、网络栈、端口 |
MOUNT | 隔离挂载点 |
IPC | 隔离信号量、消息队列、共享内存 |
USER | 隔离用户、用户组 |
Docker三大核心概念:仓库、镜像、容器。仓库技术用于存储镜像的地方,也是获取镜像和上传镜像的地方;镜像是创建容器的基础,一个镜像就类似一个可执行的、包含源码的二进制包,包括容器允许的参数、设置、环境变量和配置文件等;容器是基于镜像创建的运行实例。
2. Docker安装
-
安装所需工具。
apt-get -y install ca-certificates curl gnupg
-
信任Docker公钥。
install -m 0755 -d /etc/apt/keyrings curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg chmod a+r /etc/apt/keyrings/docker.gpg
-
写入Docker软件源,并更新软件源列表。
echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu \ "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null apt update
-
安装指定版本的Docker。
apt -y install docker-ce=5:24.0.1-1~ubuntu.22.04~jammy docker-ce-cli=5:24.0.1-1~ubuntu.22.04~jammy containerd.io docker-buildx-plugin docker-compose-plugin
-
配置文件/etc/docker/daemon.json,设置镜像加速地址。
{ "registry-mirrors": [ "https://docker.unsee.tech", "https://dockerpull.org", "https://docker.1panel.live", "https://dockerhub.icu" ] }
保存文件后,更新系统的服务管理,并重启Docker服务。
systemctl daemon-reload systemctl restart docker
二、常用命令
1. 镜像操作命令
-
拉取镜像。
docker pull 镜像名称[:镜像标签]
-
查看镜像。
docker images
-
保存镜像。
docker save 镜像名称[:镜像标签] -o 文件名
-
导入镜像。
docker load -i 文件名
-
删除镜像。
docker rmi [-f] 镜像名称[:镜像标签]
2. 容器操作命令
-
创建并启动容器。
docker run [选项] 镜像名称[:镜像标签] [命令]
-
常见选项:
-
-i:交互模式运行容器,通常与-t配合使用。
-
-t:分配一个伪终端,通常与-i配合使用。
-
-d:后台运行容器。
-
–name:设置容器名称。不手动设置,会由系统分配。
-
-P:随机端口映射,随机映射一个宿主机的端口到容器端口。
-
-p:指定端口映射,指定映射宿主机端口到容器端口。
-
-
命令:用于指定容器启动后要执行的命令,不设置则会执行默认的命令。
-
-
查看容器。
docker ps [选项]
- 常见选项:
- -a:列出所有容器。没有这个选项就只列出正在运行的容器。
- 常见选项:
-
查看容器的详细信息。
docker inspect 容器名称或容器ID
-
进入容器。
docker exec -it 容器名称或容器ID /bin/bash
-
删除容器。
docker rm [-f] 容器名称或容器ID