Docker 架构

Docker 架构

Docker 使用客户端-服务器 (C/S) 架构模式,使用远程API来管理和创建Docker容器。

Docker 容器通过 Docker 镜像来创建。

容器与镜像的关系类似于面向对象编程中的对象与类。

 

Docker面向对象
容器 对象
镜像

 

 

 

Docker 镜像(Images)

Docker 镜像是用于创建 Docker 容器的模板。

Docker 容器(Container)

容器是独立运行的一个或一组应用。

Docker 客户端(Client)

Docker 客户端通过命令行或者其他工具使用 Docker API (https://docs.docker.com/reference/api/docker_remote_api) 与 Docker 的守护进程通信。

Docker 主机(Host)

一个物理或者虚拟的机器用于执行 Docker 守护进程和容器。

Docker 仓库(Registry)

Docker 仓库用来保存镜像,可以理解为代码控制中的代码仓库。

Docker Hub(https://hub.docker.com) 提供了庞大的镜像集合供使用。

 

Docker Machine

Docker Machine是一个简化Docker安装的命令行工具,通过一个简单的命令行即可在相应的平台上安装Docker,比如VirtualBox、 Digital Ocean、Microsoft Azure。

 

  

yum install docker 安装docker 也可以按照官网文档安装
docker images 显示当前系统中所有的镜像
docker search centos 搜索你要找的指定镜像
docker pull centos 下载镜像
docker save -o centos.tar centos 将下载的镜像倒出至本地
docker load --input centos 将本地的镜像导入到docker images中
docker rmi ID 删除镜像(如果镜像建立了一个容器无法删除)
docker ps -a 显示所有的容器包括退出的
docker ps 只显示正在运行的容器
docker run --name (自定义名称) -t -i 镜像名称 /bin/bash 创建一个容器(此种方法在你退出的时候这个docker就会停止)

docker start 容器名 启动停止的容器
docker attach 容器名 进入容器(此种方式是单用户模式,退出后容器也会停止,生产时不用此命令)
docker inspect -f '{{.State.Pid}}' 容器名称 获取容器的ID(如果获取到0是容器未启动)
nsenter -t PID -p -m -u -i -n(部分需要安装:yum install util-linux) (进入容器,此种方式退出后,容器不会停止)
进入容器的脚本:
#!/bin/bash
docker_in(){
NAME_ID=$1
PID=$(docker inspect -f '{{.State.Pid}}' $NAME_ID)
nsenter -t $PID -m -u -i -n -p
}
docker_in $1

docker exec 容器名称 要执行的命令 不进入容器执行你需要执行的命令
docker rm 容器名称 删除容器,如果需要删除正在运行的容器添加-f参数就行
docker run -d -P 镜像名 后台运行容器随机指定端口
docker run -d -p 81:80 --name 自定义容器名 镜像名 开启一个后台运行的容器并且指定本地81端口映射到容器的80端口
docker run -d -p 10.0.0.202:81:80 --name 自定义容器名 镜像名
docker port 容器名 查看容器的端口映射关系
docker run -d --name 自定义容器名 -v 需要挂在的目录 镜像名 指定一个本地目录挂在nginx
docker run -d --name 自定义容器名 -v 源目录:目的挂在的目录 镜像名
docker inspect -f {{.Mounts}} mynginx2 查看挂载点
docker stop 容器名 停止容器
$ docker ps -a -q // 查看所有容器ID
$ docker stop $(docker ps -a -q) // stop停止所有容器
$ docker rm $(docker ps -a -q) // remove删除所有容器


手动创建镜像:
1、先使用现有的centos镜像创建一个容器并进入容器里面:docker run --name 容器名字 -it 镜像名
2、 进入之后安装你需要的环境,(在安装nginx是需要修改配置文件将程序放在前台运行,在nginx配置文件中添加:daemon off;)
3、环境安装完成后就可以提交本地做镜像了:docker commit -m ‘添加描述’ 容器ID 仓库的名称/镜像名称:版本
4、查看镜像docker images 就可以看到新建的镜像了

posted @ 2018-08-02 15:23  Sgoyi  阅读(194)  评论(0编辑  收藏  举报