以下内容为近期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 # 从压缩包加载镜像



