关于docker的使用及报错处理
-
- docker三要素
- docker logo含义
- 关于yum install 报错
- 宿主机centos7关机再次启动运行docker images 时报错Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
- 在centos7安装docker的时候,由于docker官方镜像一直安装失败
- 基于centos7的docker安装
- Docker_阿里云镜像加速器配置
- Docker_helloworld镜像
- Docker_运行底层原理
- Docker常用命令
- docker 镜像原理
- Docker_镜像commit
- 这里补充个遇到的问题
- Docker_容器数据卷介绍
- 数据卷容器
- DockerFile详解(上面已经简单写过)
- DockerFile 体系结构(保留字指令)
- 小案例
- docker常用安装(以tomcat为例)
- 本地镜像推送到阿里云
docker三要素
仓库,镜像,容器
仓库 – 存放镜像的地方
镜像 – 相当于类/模板
容器 – 镜像的实例,可以把容器看作一个简易的Linux环境
docker logo含义
蓝色的大海 – 宿主机系统 (centos7)
鲸鱼 – docker
鲸鱼背上的集装箱 – 容器实例
关于yum install 报错
yum install 报错[Errno 14] curl#37 - Couldn’t open file /mnt/repodata/repomd.xml
1、然后按照网上的一些修改,先是执行:
yum clean all
然后 yum makecache,问题还是没解决,继续报错。
其实这两条命令就是清空缓存,然后再重新缓存的意思,有时候可能有效。
2、然后又尝试了方法,说是DNS的问题,上不了网。又去改了DNS(可以去尝试尝试,因为不同人遇到问题不一样)。
如果是绑定了静态地址,直接修改/etc/resolv.conf 这个文件下的DNS是没有用的,因为你执行命令service network restart 会恢复。所以要修改网卡的配置文件,先到对应的目录下:
cd /etc/sysconfig/network-scripts/
ll 查看网卡,因为有可能有几块网卡。
service network restart 重启网络,用cat /etc/resolv.conf 发现DNS改变了。
第二种情况是针对网络DNS出问题的时候的解决办法,如果之前本身就没有问题,说明这样是解决不了的。
3、因为yum 寻包的顺序应该先是本地源,再寻网络源。
所以需要修改配置文件,解决办法就是把本地源关闭:
#vi /etc/yum.repos.d/CentOS-Media.repo,将里面的enabled=1改成enabled=0,然后保存退出。
完了之后执行 yum makecache,如果能缓存,说明解决了,如果像我一样出现如下错误。说明yum源出了问题。
后来发现自己的文件夹少了CentOS-Base.repo这个源,可能是装系统的人备份成了CentOS-Base.repo.bb忘了改回来。
直接cp Centos-Base.repo.bak Centos-Base.repo
成功解决!!!
宿主机centos7关机再次启动运行docker images 时报错Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
解决方法
[root@es1 ~]# systemctl daemon-reload
[root@es1 ~]# sudo service docker restart
Redirecting to /bin/systemctl restart docker.service
[root@es1 ~]# sudo docker run hello-world
在centos7安装docker的时候,由于docker官方镜像一直安装失败
这时由于在国内访问国外源官方镜像失败的缘故,修改为阿里云的源,然后下载镜像的速度就嗖嗖嗖。。。
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
然后在执行下载操作即可
sudo yum install docker-ce docker-ce-cli containerd.io
基于centos7的docker安装
设置存储库
安装yum-utils软件包(提供yum-config-manager 实用程序)并设置稳定的存储库。
$ sudo yum install -y yum-utils
$ sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
可选:启用每晚或测试存储库。
这些存储库包含在docker.repo上面的文件中,但默认情况下处于禁用状态。您可以在稳定存储库旁边启用它们。以下命令启用每晚存储库。
$ sudo yum-config-manager --enable docker-ce-nightly
要启用测试通道,请运行以下命令:
$ sudo yum-config-manager --enable docker-ce-test
您可以通过运行带有标志的命令来禁用夜间或测试存储库 。要重新启用它,请使用该标志。以下命令禁用夜间存储库。yum-config-manager–disable–enable
$ sudo yum-config-manager --disable docker-ce-nightly
安装DOCKER引擎
安装最新版本的Docker Engine和容器,或者转到下一步安装特定版本:
$ sudo yum install docker-ce docker-ce-cli containerd.io
启动Docker。
$ sudo systemctl start docker
通过运行hello-world 映像来验证是否正确安装了Docker Engine 。
$ sudo docker run hello-world
Docker_阿里云镜像加速器配置
1.获得加速器地址连接
阿里云hub地址:https://dev.aliyun.com/search.html(可复用淘宝账号登录)
2.配置本机Docker运行镜像加速器
鉴于国内网络问题,后续拉取 Docker 镜像十分缓慢,我们可以需要配置加速器来解决,
执行以下命令修改相应的配置:
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://xxx.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
Docker_helloworld镜像
$ sudo docker run hello-world
run干了什么?
Docker_运行底层原理
Docker是一个c/s结构系统,Docker守护进程运行在主机上,通过socket连接从客户端访问,守护进程从客户端接收命令并管理运行在主机上的容器,容器是一个运行时环境,相当于集装箱
docker有着比虚拟机更少的抽象层。由于docker不需要Hypervisor实现硬件资源虚拟化,运行在docker容器上的程序直接使用的都是实际物理机的硬件资源。因此在CPU、内存利用率上docker将会在效率上有明显优势。