docker 原理 命令 通俗解读

  • Post author:
  • Post category:其他


docker


docker出现背景



传统:jar包 —- 运维部署环境(与测试环境不是同一个 可能出现各种各样的问题)

docker: jar包 — 写dockerfile文件 打包项目带上环境 —–上传仓库 —-下载镜像 运行

docker的本质 :对进程进行封装隔离,而被隔离的进程也被称为容器,完全独立于宿主机的进程。

·

在这里插入图片描述


docker的镜像为分层结构

所有docker镜像都起始于一个基础镜像层,当进行修改或增加新的内容时,就会在当前镜像层之上,创建新的镜像层。


镜像(Image)

:镜像为容器运行提供 程序、环境、资源

镜像操作常用命令

docker search 镜像名 在dockerhub中搜索镜像

docker pull 镜像名 从dockerhub中拉取到本地

docker push 镜像名 将本地镜像上传至仓库

docker build 使用 Dockerfile 创建镜像

                 -f :指定要使用的Dockerfile路径;
                 -m :设置内存最大值;
                 --rm :设置镜像成功后删除中间容器;
                 --network: 默认 default。在构建期间设置RUN指令的网络模式
                 --tag, -t: 镜像的名字及标签,通常 name:tag 或者 name 格式;可以在一次构建中为一个镜像设置多个标签


容器(Container

):根据镜像中的程序、配置 创建出的运行程序

docker ps 正在运行的容器

            -a                      所有已创建的容器      
             -l                      最近创建的容器

docker inspect 获取容器的元数据 (json格式)

docker attach 连接到正在运行的容器中

docker run 创建新容器

                    -d     后台运行
                    -it    设置交互终端
                    --name=   容器名
                    -v             挂载目录
                    -p   宿主机端口:容器端口          映射端口


仓库(Repository)

:存放镜像的仓库,可从仓库拉取镜像

基本命令

docker image ls 列出所有镜像

docker pull xxxx 从仓库拉取镜像

dockere image rm image_name/image_id 删除镜像

docker run -it 镜像名 /bin/bash 根据镜像创建容器

docker start container_id 启动容器

docker stop container_id 停止容器

docker ps 查看所有运行中的容器

docker ps -a 查看所有容器

docker rm container_id 删除容器

docker container prune 删除所有退出的容器


docker 数据卷


docker容器中产生的数据 同步到宿主机

一方改变会引起另一方的改变


dockerfile


docker 网络


这里真是个坑

windows 与 linux 两个docker版本在网络的实现方面有很大的不同

linux宿主机 中会有 docker0网桥 (相当于一台交换机)而创建的所有容器都在这个网段

并且 宿主机可以ping通容器

windows版本 中没有docker0网桥 访问方式类似vpn直连 通过映射端口访问容器应用

但是宿主机无法ping通 容器 容器可以ping通宿主机

另外同一宿主机上的容器 可以互通

官网原文

在这里插入图片描述


docker官方文档链接:https://docs.docker.com/docker-for-windows/networking/



版权声明:本文为weixin_43865493原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。