docker安装及基础知识

docker笔记

一:docker基本组成

(1)镜像(image)

  • Docker 镜像(Image)就是一个只读的模板。镜像可以用来创建 Docker 容器,一个镜像可以创建很多容器。 就好似 Java 中的 类和对象,类就是镜像,容器就是对象!

(2)容器(container)

  • Docker 利用容器(Container)独立运行的一个或一组应用。容器是用镜像创建的运行实例。
    它可以被启动、开始、停止、删除。每个容器都是相互隔离的,保证安全的平台。
    可以把容器看做是一个简易版的 Linux 环境(包括root用户权限、进程空间、用户空间和网络空间等)和运行在其中的应用程序。
    容器的定义和镜像几乎一模一样,也是一堆层的统一视角,唯一区别在于容器的最上面那一层是可读可写的。

(3)仓库(repository)

  • 仓库(Repository)是集中存放镜像文件的场所。
    仓库(Repository)和仓库注册服务器(Registry)是有区别的。仓库注册服务器上往往存放着多个仓库,每个仓库中又包含了多个镜像,每个镜像有不同的标签(tag)。
    仓库分为公开仓库(Public)和私有仓库(Private)两种形式。
    最大的公开仓库是 Docker Hub(https://hub.docker.com/),存放了数量庞大的镜像供用户下载。
    国内的公开仓库包括阿里云 、网易云 等

小结:

需要正确的理解仓储/镜像/容器这几个概念 :

  • Docker 本身是一个容器运行载体或称之为管理引擎。我们把应用程序和配置依赖打包好形成一个可交付的运行环境,这个打包好的运行环境就似乎 image镜像文件。只有通过这个镜像文件才能生成 Docker 容器。image 文件可以看作是容器的模板。Docker 根据 image 文件生成容器的实例。同一个 image 文件,可以生成多个同时运行的容器实例。
  • image 文件生成的容器实例,本身也是一个文件,称为镜像文件。
  • 一个容器运行一种服务,当我们需要的时候,就可以通过docker客户端创建一个对应的运行实例, 也就是我们的容器
  • 至于仓库,就是放了一堆镜像的地方,我们可以把镜像发布到仓库中,需要的时候从仓库中拉下来 就可以了。

二:docker安装

(1)环境准备

1,创建虚拟机,可安装secureCRT或Xshell
2,下载centos7.6镜像:https://mirrors.aliyun.com/centos-vault/7.6.1810/isos/x86_64/CentOS-7-x86_64-DVD-1810.iso
3,设置网络为nat模式
4,配置网络使其能ping通百度,并关闭防火墙和selinux
5,配置好yum源并更新yum源
curl -o /etc/yum.repos.d/CentOS-Base.repo  http://mirrors.aliyun.com/repo/Centos-7.repo
# 或者配置centos8源
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-8.repo
sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo
清理yum
yum clean all
yum makecache

(2)安装docker必要的包

环境查看
系统内核是3.10以上的
[root@localhost ~]# uname -r
3.10.0-957.21.3.el7.x86_64
安装

yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo #设置为阿里巴巴镜像仓库源

安装docker CE

#先清理旧的docker
yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine

#安装最新版本
yum install docker-ce docker-ce-cli containerd.io

#查看当前版本
[root@docker ~]# docker --version
Docker version 20.10.12, build e91ed57

(3)当需要安装指定版本的docker(示例)

[root@docker ~]# yum install -y docker-ce-19.03.2-3.el7 docker-ce-cli-19.03.2-3.el7 containerd.io
[root@docker ~]# docker --version
Docker version 19.03.2, build 6a30dfc

三:启动并测试

# 启动docker服务
[root@docker ~]# systemctl start docker
# 查看docker服务状态
[root@docker ~]# systemctl status docker
# 运行hello-world镜像
[root@docker ~]# docker run hello-world  #出来结果不是报错,有Hello from Docker!即是成功

四:其他配置

(1)配置开机自启或禁启

systemctl enable docker
systemctl disable docker

(2)配置用户管理docker

#创建docker组,centos安装docker后会默认的有docker组
[root@docker docker]# sudo groupadd docker
groupadd: group 'docker' already exists

#无用户需创建用户,已有用户不需此步骤
[root@docker docker]# useradd z
#向组中添加用户
[root@docker docker]# sudo usermod -aG docker z

(3)docker开启远程访问

# 编辑docker.service的配置文件
[root@docker docker]# systemctl edit docker.service
#写入:
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd -H unix:///var/run/docker.sock -H tcp://0.0
.0.0:2323

# 重新加载systemctl配置
[root@docker docker]# systemctl daemon-reload

# 重启docker
[root@docker docker]# systemctl restart docker

# 检查确认Docker守护进程是否在所配置的端口上侦听
# 安装网络监测工具
[root@docker docker]# yum install -y net-tools
# 监测docker守护进程
[root@docker docker]# netstat -lntp | grep dockerd
tcp6       0      0 :::2323                 :::*                    LISTEN      2068/dockerd
# 在Docker客户端命令中通过-H选项指定要连接的远程主机
[root@docker docker]# docker -H tcp://192.168.10.50(本机IP):2323 info

五:阿里云官方镜像加速

  • 介绍:https://www.aliyun.com/product/acr
  • 注册一个属于自己的阿里云账户(可复用淘宝账号)
  • 进入管理控制台设置密码,开通
  • 查看镜像加速器自己的
  • 配置镜像加速
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://qiyb9988.mirror.aliyuncs.com"]
} EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

六:国内镜像加速器

  • Docker Hub注册中心部署在国外服务器。国内访问会存在问题,Docker 官方提供了中国的加速器,直接使用加速器地址即可使用。
  • 配置方法:
# 1.修改配置文件
vi /etc/docker/daemon.json
{
	"registry-mirrors":[
		"https://i1el1i0w.mirror.aliyuncs.com",
		"https://hub-mirror.c.163.com",
		"https://registry.aliyuncs.com",
		"https://registry.docker-cn.com",
		"https://docker.mirrors.ustc.edu.cn"
	]
}

# 或者直接使用tee命令添加(二选一即可)
tee /etc/docker/daemon.json <<-'EOF'
{
	"registry-mirrors":[
		"https://i1el1i0w.mirror.aliyuncs.com",
		"https://hub-mirror.c.163.com",
		"https://registry.aliyuncs.com",
		"https://registry.docker-cn.com",
		"https://docker.mirrors.ustc.edu.cn"
	]
}
EOF

# 保存文件
# 2.重启Docker
[root@docker docker]# systemctl daemon-reload
[root@docker docker]# systemctl restart docker

这个方法只能加速访问流行的公开镜像,私有镜像仍然要去美国服务器中拉取。

另外可以配置相应的国内镜像源来提高镜像的下载速度和稳定性。阿里云除了提供Docker Hub镜像加速器之外,还提供与Docker Hub类似的容器镜像服务,方便用户进行镜像全生命周期管理。

七:卸载docker相关命令

yum remove docker-ce docker-ce-cli containerd.io
# 卸载之后主机上的镜像、容器等不会被删除,删除命令:
rm -rf /var/lib/docker
# 管理员必须手动删除任何已编辑的配置文件
posted @ 2022-03-16 09:48  郑琰  阅读(197)  评论(0编辑  收藏  举报
#

# #