Docker
# 基础概念
Docker 容器比虚拟机要轻量级,是因为 Docker 容器共享同一个宿主机的内核。 以往要获得独立环境的两个服务,起点是裸机,需要安装两个操作系统,在此基础上安装服务。而 Docker 直接借用宿主机的内核,起点是OS,直接定义环境。 Docker 镜像是 "应用程序和它运行的依赖环境"的封装.
- 镜像(Image) : 类似源码。
- 仓库(registry) : 类似一个放源码的远程仓库。
- 容器(Container) : 类似进程。镜像运行起来就是一个镜像。
- 容器数据卷(Volumes) : 类似容器外挂硬盘。容器关机后数据会清零,有持久化需求要使用。
# 基础命令集
# 镜像相关
docker search geoserver # 搜索镜像
docker pull kartoza/geoserver:2.20.4 # 从远程仓库拉取镜像到本地
docker images # 查看本地所有镜像
docker rmi a441 # 删除镜像,a441是镜像id
docker rmi -f (docker images -q) # 删除所有镜像
1
2
3
4
5
2
3
4
5
# 数据卷相关
注意:数据卷 的使用,类似于 Linux 下对目录或文件进行 mount,镜像中的被指定为挂载点的目录中的文件会复制到数据卷中(仅数据卷为空时会复制)。
数据卷基础命令:
docker volume --help
docker volume create myVolume
docker volume ls
docker volume inspect myVolume
docker volume rm myVolume
docker volume prune
1
2
3
4
5
6
2
3
4
5
6
数据卷进阶命令:
挂载宿主机的文件夹到数据卷
挂载网络文件系统(NFS)到数据卷
1
2
3
2
3
如果一个容器的配置文件需要持久化,通常是将数据卷挂载到文件夹中。比较好的做法是先通过镜像起一个临时容器,进入容器将需要持久化的配置文件复制出来,然后删除掉临时容器。修改这些配置文件,然后直接挂载到新起的正式容器中。
# 网络相关
网络基础命令:
docker network --help
docker network create myNetwrok
docker network ls
docker network inspcet myNetwork
docker network rm myNetwork
docker connect myNetwork myContainer
1
2
3
4
5
6
2
3
4
5
6
# 容器相关
docker run [OPTIONS] image [COMMAND] [ARG..]
1
#
# docker-compose
docker-compose
# k8s
上次更新: 2022/06/06, 15:25:40