简介
docker是一种容器技术,解决软件跨环境问题
安装docker
我尝试了一下centos7可以不设置yum源直接安装docker
Docker架构
Daemon:Daemon是Docker的守护进程,Docker Client通过命令行与Docker Damon通信,完成Docker相关操作
Image 镜像 来源于软件仓库repository(docker官方提供/私有仓库)
Container 容器
Clients 客户端
Docker 镜像(Images) | Docker 镜像是用于创建 Docker 容器的模板,比如 Ubuntu 系统。 |
Docker 容器(Container) | 容器是独立运行的一个或一组应用,是镜像运行时的实体。 |
Docker 客户端(Client) | Docker 客户端通过命令行或者其他工具使用 Docker SDK (Redirecting…) 与 Docker 的守护进程通信。 |
Docker 主机(Host) | 一个物理或者虚拟的机器用于执行 Docker 守护进程和容器。 |
Docker Registry | Docker 仓库用来保存镜像,可以理解为代码控制中的代码仓库。 Docker Hub(https://hub.docker.com) 提供了庞大的镜像集合供使用。 一个 Docker Registry 中可以包含多个仓库(Repository);每个仓库可以包含多个标签(Tag);每个标签对应一个镜像。 通常,一个仓库会包含同一个软件不同版本的镜像,而标签就常用于对应该软件的各个版本。我们可以通过 <仓库名>:<标签> 的格式来指定具体是这个软件哪个版本的镜像。如果不给出标签,将以 latest 作为默认标签。 |
Docker Machine | Docker Machine是一个简化Docker安装的命令行工具,通过一个简单的命令行即可在相应的平台上安装Docker,比如VirtualBox、 Digital Ocean、Microsoft Azure。 |
Docker容器初始化使用
1.Linux 启动Docker服务相关命令
Docker镜像
镜像加速器
docker的官方仓库:Docker Hub
Docker指令
创建自定义镜像
我们可以通过命令 docker commit 来创建
docker commit [选项] <容器ID或容器名> [<仓库名>[:<标签>]]
runoob@runoob:~$ docker commit -m="has update" -a="runoob" e218edb10161 runoob/ubuntu:v2 sha256:70bf1840fd7c0d2d8ef0a42a817eb29f854c1af8f7c59fc03ac7bdee9545aff8
各个参数说明:
-
-m: 提交的描述信息
-
-a: 指定镜像作者
-
e218edb10161:容器 ID
-
runoob/ubuntu:v2: 指定要创建的目标镜像名
数据卷
数据卷是宿主机中的一个目录或文件
当容器目录和数据卷目录绑定后,对方的修改会立即同步
容器中无法打开数据卷
1.在运行容器的时候,给容器加特权,及加上 --privileged=true 参数。使用该参数,容器内的root拥有真正的root权限.否则,容器内的root只是外部的一个普通用户权限
$ docker run --name study_mysql --privileged=true -p 3306:3306 -v /data/mysql/datadir:/var/lib/mysql -v /data/mysql/conf.d:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456 -d mysql:latest
2.临时关闭SELinux:
setenforce 0
3.添加SELinux规则,改变要挂载的目录的安全性文本(这一个方法还未找到如何更改)
Docker应用部署
Tomcat