docker核心概念和安装配置

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来临时提升权限。

作者微信公众号:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章