docker基础与常用命令
目录
一.docker概述
1.docker与虚拟机区别
2.Linux 六大命名空间
3.Docker 的核心技术及概念
二.docker部署安装
三.docker常用命令
1.搜索镜像
2.获取镜像
3.查看镜像信息
4.添加镜像标签
5.删除镜像
6.存出与载入镜像
7.上传镜像
8.创建容器
9.查看容器状态
10.容器的启动、关闭与重启
11.创建并启动容器
12.进入容器
13.文件复制
14.容器导出与导入
15.删除容器
一.docker概述
1.docker与虚拟机区别
特性 | Docker 容器 | 虚拟机 |
---|---|---|
启动速度 | 秒级 | 分钟级 |
计算能力损耗 | 几乎无 | 损耗 50%左右 |
性能 | 接近原生 | 弱于 |
系统支持量(单机) | 上千个 | 几十个 |
隔离性 | 资源隔离/限制 | 完全隔离 |
容器化的优势
-
灵活:即使是最复杂的应用也可以集装箱化。
-
轻量级:容器利用并共享主机内核。
-
可互换:可以即时部署更新和升级。
-
便携式:可以在本地构建,部署到云,并在任何地方运行。
-
可扩展:可以增加并自动分发容器副本。
-
可堆叠:可以垂直和即时堆叠服务。
2.Linux 六大命名空间
命名空间 | 缩写 | 作用 | 效果 |
---|---|---|---|
MNT | 挂载 | 文件系统隔离 | 每个命名空间可以有自己的文件系统挂载点 |
NET | 网络 | 网络资源隔离 | 每个命名空间可以有自己的网络栈,包括网络接口、路由表等 |
PID | 进程 | 进程号隔离 | 每个命名空间有自己独立的 PID 编号空间 |
IPC | 间通 | 进程间通信隔离 | 每个命名空间有自己独立的 System V IPC 和 POSIX 消息队列 |
UTS | 主机 | 主机名、域名隔离 | 每个命名空间可以有自己的主机名和域名 |
USER | 用户 | 用户名、组名隔离 | 每个命名空间可以有自己的用户和组 ID 映射 |
3.Docker 的核心技术及概念
Docker 容器本质上是宿主机的一个进程,通过以下技术实现资源隔离和限制:
-
Namespace:实现资源隔离。
-
Cgroup:实现资源限制。
-
写时复制技术(Copy-on-Write):实现高效的文件操作。
docker核心概念:镜像、容器、镜像仓库
二.docker部署安装
1.关闭防火墙
systemctl stop firewalld.service
setenforce 0
2.安装依赖包
yum install -y yum-utils device-mapper-persistent-data lvm2
3.设置阿里源
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
4.安装docker-ce并设置开机自启动
yum install -y docker-ce docker-ce-cli containerd.io
systemctl start docker.service
systemctl enable docker.service
三.docker常用命令
1.搜索镜像
docker search 关键字
2.获取镜像
docker pull 仓库名称[:标签]
3.查看镜像信息
docker images
docker inspect 镜像ID号(查看镜像详细信息)
4.添加镜像标签
docker tag 名称:[标签] 新名称:[新标签]
如:docker tag nginx:latest nginx:web
5.删除镜像
-
docker rmi 仓库名称:标签
:删除指定标签的镜像 -
docker rmi 镜像ID号
:彻底删除镜像
如:docker rmi nginx:web
6.存出与载入镜像
存出镜像:
docker save -o 存储文件名 存储的镜像
如:docker save -o nginx nginx:latest
载入镜像:
docker load < 存出的文件 或docker load -i 存出的文件
如:docker load < nginx
7.上传镜像
docker push 用户名/镜像名称:新标签
8.创建容器
-
格式:
docker create [选项] 镜像
-
常用选项:
-
-i
:开启标准输入接受用户输入命令。 -
-t
:分配一个伪终端 tty。 -
-it
:合起来实现和容器交互的作用,运行一个交互式会话 shell。
-
如:docker create -it nginx:latest /bin/bash
9.查看容器状态
docker ps -a
10.容器的启动、关闭与重启
docker start/stop/restart 容器ID
11.创建并启动容器
docker run [选项] 镜像 [命令]
docker run -itd image_name:tag [/bin/bash.....] 下载并将镜像运行为容器(-i 让容器可以接受宿主机的指令、-t 为容器分配一个伪终端,让用户可以"登录"进容器,-d 分配一个守护进程,这样可以让容器运行时不占用前台终端)
12.进入容器
-
docker exec -it 容器ID/名称 /bin/bash
如:docker exec -it 2592d3fad0fb /bin/bash
13.文件复制
-
复制到容器:
echo abc123 > ~/test.txt docker cp ~/test.txt 2592d3fad0fb:/opt/
-
从容器复制到主机:
docker cp 2592d3fad0fb:/opt/test.txt ~/abc123.txt
14.容器导出与导入
导出:
docker export 2592d3fad0fb > centos7.tar
导入:
cat centos7.tar | docker import - centos7:test
15.删除容器
docker rm [-f] 容器ID/名称
-
删除已终止容器:
docker stop 2592d3fad0fb docker rm 2592d3fad0fb
-
强制删除运行容器:
docker rm -f 2592d3fad0fb