docker进阶一些知识

容器修改后的改动需要保存:

docker ps -l 获取新改之后的最新的容器id  (正在运行的容器)

docker inspect efe(id) 容器的详细信息

docker commit 698(id) learn/ping  保存对应id的容器

docker镜像环境,每修改一次就会有一次容器的版本号更新,然后通过该id进行commiting就保存了新的镜像

docker push learn/ping 发布自己运行的镜像到官方注册中

查看安装包(查看一个软件安装时所有的安装包)

yum list installed | grep docker  

Docker 镜像就是一个只读的模板。

例如:一个镜像可以包含一个完整的 centos操作系统环境,里面仅安装了 Apache 或用户需要的其它应用程序。

镜像可以用来创建 Docker 容器。

镜像  包含 容器  在镜像中创建多个docker容器(镜像中的每一个容器相当于运行一个应用程序的一个vm)

仓库注册 》仓库 》镜像文件|通过tag区分

默认从docker官方下载镜像,不需要命名空间

仓库:集中存放仓库  先要注册,后登录下载(私有仓库)

docker下载数据库镜像运行后就用了数据库容器,在同一台机器下载其他应用/启动后就又有了一个容器

大名:版本别名

link就是容器直接互相通信的 --打通容器间的通信通道

指定容器的启动命令,每个Dockerfile只能有一条CMD命令,如果指定多条,只有最后一条会执行。

用户启动容器时指定运行命令,会覆盖掉Dockerfile中的CMD命令。

用dockerFile创建镜像每运行一个Dockerfile在基础镜像上加一层镜像,(可按层回复,调试)---在from的基础镜像上构建新的docker镜像

一般用这个dockerFile创建镜像的时候就是打包了基础镜像+程序所有需要的中间件容器---即可随时移植部署的成品镜像

   包含基础镜像,requiredment.txt  应用程序

   docker build -t web .  就用文件创建了成品镜像

DockerCompose---dockerFile组合所有需要的容器后这些容器的启动

    一个服务是一个容器

   定义所有需要部署的对象,各个对象之间的关系,执行顺序,文件存储位置,验证成功方式

场景:redis容器,tomcat容器,nginx容器,mysql容器,这4个容器的启动是有顺序性的,docker compose就是为了组合启动的,而不是手动来启动。

docker-compose.yml定义dockerfile中需要启动的容器,他们的端口,启动依赖关系

docker-compose up -d(后台启动)

docker swarm  集群管理工具

为了处理只有一台机器的时候,用docker-machine的时候  init manager的同时也生成了一个worker的token

创建doker虚拟机方式:  

1,vagrant  创建的虚拟机有docker容器(docker虚拟机)

2,docker-machinal

这两种创建虚拟机的方式都自动带有docker

docker  一个个独立的运行环境---在一个大的服务器上

image---相应软件的数据文件---操作系统镜像(基础镜像),apache,应用程序等软件的镜像,这些镜像可以构成新的组合镜像打包,镜像之间可以通信---类

container---操作系统。一个镜像可以有多个操作系统,一个镜像可以启动多个操作系统---类的对象,一个类多个实例对象即多个容器

通过Image创建的

在Image layer之上建立(实例化)一个container layer(可读写)

类比面向对象,类和实例,容器就是实例,Image就是类

Image负责application的存储和分发(操作系统软件的代码文件)--类,Container(操作系统,软件的实例---可运行)具有实际功能的对象负责运行app

向容器中增加文件,解压文件 ADD and COPY

ENTRTYPOINT   容器启动时运行的命令

CMD   设置容器启动后默认执行的命令和参数

Dockerfile   制造镜像的文件(运行一次创建一层镜像)

DockerCompose  实例化文件中的所有涉及的镜像生成容器对象并运行的文件(组合镜像???)

docker build  建立新的镜像(用dockerFile文件)

    将Dockerfile通过的build变成了dockerImage,然后通过run方法,Image转换成了container

docker run 实例化运行镜像对象---容器

docker exec -it c62d9d554853 /bin/bash   进入运行中的容器

docker container start c62d9d554   启动容器

相关推荐