docker核心概念和安装配置
1.核心概念
三大核心概念:镜像(Image)、容器(Container)、仓库(Repository)。
镜像(Image)
Docker镜像类似于虚拟机镜像,可以将它理解为一个只读模板。
Docker镜像是创建Docker容器的基础。
容器(Container)
Docker容器类似于一个轻量级的沙箱,Docker利用容器来运行和隔离应用。
容器是从镜像创建的应用实例。它可以启动、开始、停止、删除,而这些容器都是相互隔离、互不可见的。
可以把容器看作一个简易的Linux系统环境(包括root用户权限、进程空间、用户空间和网络空间等)以及运行在其中的应用程序打包而成的盒子。
[^注意]:镜像自身是只读的。容器从镜像启动的时候,会在镜像的最上层创建一个可写层。
仓库(Repository)
Docker仓库类似于代码仓库,是Docker集中存放镜像文件的场所。
有时候我们会将Docker仓库和仓库注册服务器(Registry)混为一谈,并不严格区分。实际上,仓库注册服务器是存放仓库的地方,其上往往存放着多个仓库。每个仓库集中存放某一些镜像,往往包括多个镜像文件,通过不同的标签(tag)来进行区分。
2.安装Docker引擎
Docker引擎是使用Docker容器的核心组件,可以在主流的操作系统和云平台上使用。
ContOS安装Docker
安装软件包
sudo yum update
sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
添加稳定版本的yum软件源
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
之后更新yum软件源缓存,并安装Docker:
sudo yum update
sudo yum install -y docker-ce
最后,确认Docker服务启动正常
//查看docker信息
docker info
//看镜像
sudo docker images
//开机自动启动
sudo systemctl start docker
3.配置Docker服务
将当前用户加入安装中自动创建的docker用户组。
sudo usermod -aG docker USER_NAME
用户更新组信息,退出并重新登录后生效。
Docker服务启动实际上是调用了dockerd命令,支持多种启动参数。
启动docker服务,开启Debug模式,并监听2376端口。
dockerd -D -H tcp://127.0.0.1:2376
在/etc/docker路径下的daemon.json文件中写入:
{
"debug":true,
"hosts":["tcp://127.0.0.1:2376"]
}
当然,操作系统也对Docker服务进行了封装,以使用upstart来管理启动服务的Ubuntu系统为例,Docker服务的默认配置文件为/ect/defult/docker,可以通过修改其中的DOCKER_OPTS来修改服务启动的参数,例如让Docker服务开启网络2375端口的监听:
DOCKER_OPTS="$DOCKER_OPTS -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock"
修改后通过service命令来重启Docker服务:
sudo service docker restart
对于CentOS、Redhat等系统,服务通过systemd来管理,配置文件路径为/etc/systemd/system/docker.service.d/docker.conf 。更新配置后需要通过systemctl命令来管理Docker服务:
sudo systemctl daemon-reload
sudo systemctl start docker.service
日志文件路径:
RedHat:/var/log/messages
CentOS或Ubuntu:执行命令
journalctl -u docker.service
每次重启docker服务后,可以通过查看docker信息 (docker info命令)确保服务已经正常运行。
4.其他
Docker默认数据网段地址范围为10.0.0.0/24
管理网段地址范围:192.168.0.0/24
执行命令代码中以$开头的,普通用户;以#开头的,特权用户(root)。如果用户已经添加到docker用户组,大部分时候都无需管理员权限,否则需要在执行命令前使用sudo来临时提升权限。