以下内容为近期Docker的学习总结,主要参考来源为Docker官方文档和Docker菜鸟教程
Docker是一个容器引擎,支持容器的创建,迁移,运行。容器技术是一种轻量级虚拟化技术,能够在进程级虚拟出隔离的小规模环境。运行在容器中的软件,可拥有独立的运行环境,且在迁移时只需迁移镜像,然后在目标机上从容器镜像创建即可,而不需要考虑环境差异。容器技术使得软件之间的交互解耦,方便对各软件的相关资源进行修改,且确保了软件迁移的易用性和稳定性。
容器包含部署在其中的程序,和其相关的资源文件,配置参数,是一个可运行的动态服务。容器可通过Docker API启动,暂停,迁移或删除,是镜像的运行实例,可从容器导出镜像。软件在容器中运行,与其他软件隔离。
镜像是容器的描述,是一个特殊的静态文件系统。镜像提供容器运行时需要的程序,库,资源文件和配置参数等,不包含动态数据。镜像可作为文件复制,转移,容器引擎可从镜像中创建容器。Docker image一般通过其他image创建,再进行个性化修改;也可通过创建Dockerfile文件定义容器的创建步骤来创建自己的镜像。
容器引擎对容器进行管理,从镜像创建容器,从容器导出镜像,支持容器运行等,对外提供容器服务。
Docker服务使用客户端-服务端架构,Docker daemon为服务端,负责构建,运行和分发容器等繁重工作;Docker client处理用户调用,与daemon通信处理服务请求与响应。client与daemon可运行在相同系统,也可运行于不同系统上,通过远程连接通信。Docker registry是镜像仓库,可从仓库中拉取镜像,或推送镜像至仓库。
接下来是一些常用Docker命令的介绍:
docker run命令
# 创建并运行一个新容器,COMMAND为容器运行后执行的命令
docker run [OPTIONS] IMAGE [COMMAND]
# 参数解释
-i # 可交互容器,从标准输入中获取输入
-t # 容器连接到终端
-d # 容器后台运行,主进程运行结束后自动退出
-p # 映射容器端口号
docker image命令:
# 管理镜像
docker image COMMAND
docker image build PATH|URL|- # 从Dockerfile创建镜像
docker image load # 从压缩包镜像文件加载镜像
docker image ls # 列出镜像
docker image pull NAME # 从镜像仓库拉取镜像
docker image push NAME # 推送镜像至镜像仓库
docker image rm IMAGE # 删除镜像
docker container命令:
# 管理容器
docker container COMMAND
docker container create IMAGE # 创建新容器
docker container start CONTAINER # 启动被停止的容器
docker container exec CONTAINER COMMAND # 在运行容器中执行命令
docker container cp CONTAINER:SRC_PATH DEST_PATH|- # 在容器和本地文件系统间传输文件
docker container commit CONTAINER # 从容器中创建新镜像
docker container kill CONTAINER # 终结容器
docker container rename CONTAINER NEW_NAME # 容器重命名
docker container rm CONTAINER # 删除容器
docker container stop CONTAINER # 停止容器运行
docker container ls # 列出容器
docker container top CONTAINER # 显示容器中运行进程
docker save/load import/export命令:
# save/load命令的对象为镜像,内容完整
# import/export命令的对象为容器,丢失历史数据
docker export CONTAINER > file.tar # 容器导出至压缩包
docker import file.tar # 压缩包导入镜像
docker save IMAGE > file.tar # 镜像保存至压缩包
docker load < file.tar # 从压缩包加载镜像