二、Docker安装及基础命令介绍
Docker版本选择 :https://github.com/moby/moby
2.1:下载rpm包安装
官方rpm包下载地址 :
https://download.docker.com/linux/centos/7/x86_64/stable/Packages/
二进制下载地址:
https://mirrors.aliyun.com/docker-ce/linux/static/stable/x86_64/
阿里云镜像下载地址:
https://mirrors.aliyun.com/docker-ce/linux/centos/7/x86_64/stable/Packages/
官方安装文档:
二进制安装:
https://download.docker.com/linux/static/stable/x86_64/
wget https://download.docker.com/linux/static/stable/x86_64/docker-18.09.9.tgz tar xvf docker-18.09.9.tgz root@ubuntu:/usr/local/src/docker# ll total 181556 drwxrwxr-x 2 ubuntu ubuntu 4096 Sep 5 00:56 ./ drwxr-xr-x 3 root root 4096 Feb 16 22:49 ../ -rwxr-xr-x 1 ubuntu ubuntu 32184728 Sep 5 00:56 containerd* -rwxr-xr-x 1 ubuntu ubuntu 5763776 Sep 5 00:56 containerd-shim* -rwxr-xr-x 1 ubuntu ubuntu 18045144 Sep 5 00:56 ctr* -rwxr-xr-x 1 ubuntu ubuntu 56068241 Sep 5 00:56 docker* -rwxr-xr-x 1 ubuntu ubuntu 62197384 Sep 5 00:56 dockerd* -rwxr-xr-x 1 ubuntu ubuntu 764144 Sep 5 00:56 docker-init* -rwxr-xr-x 1 ubuntu ubuntu 2716775 Sep 5 00:56 docker-proxy* -rwxr-xr-x 1 ubuntu ubuntu 8144888 Sep 5 00:56 runc* root@ubuntu:/usr/local/src/docker# cp ./* /usr/bin/ root@ubuntu:/usr/local/src/docker# docker version Client: Docker Engine - Community Version: 18.09.9 API version: 1.39 Go version: go1.11.13 Git commit: 039a7df9ba Built: Wed Sep 4 16:50:02 2019 OS/Arch: linux/amd64 Experimental: false Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running? scp /lib/systemd/system/docker.service /lib/systemd/system/docker.socket /lib/systemd/system/containerd.service 192.168.134.182:/lib/systemd/system/ 首先开启 containerd systemctl start containerd.service 然后开启docker服务 root@ubuntu:/lib/systemd/system# ps -ef | grep docker root 2306 1 0 20:00 ? 00:00:00 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
2.2:docker 存储引擎
目前 docker 的默认存储引擎为 overlay2,历史更新信息: https://github.com/moby/moby/blob/master/CHANGELOG.md 官方文档关于存储引擎的选择文档: https://docs.docker.com/storage/storagedriver/select-storage-driver/
存储驱动类型:
AUFS(AnotherUnionFS)是一种 Union FS,是文件级的存储驱动。 UnionFS 就是把不同物理位置的目录合并 mount 到同一个目录中。简单来说就是支持将 不同目录挂载到同一个虚拟文件系统下的文件系统。
overlay:一种 Union FS 文件系统,Linux 内核 3.18 后支持。
overlay2: Overlay 的升级版.
devicemapper:是 CentOS 和 RHEL 的推荐存储驱动程序,最大存储空间为107GB,每个容器默认10G。
更改存储引擎为overlay时:所有之前的数据会丢失。
如果磁盘分区为ext4,那么可以直接修改为overlay模式。
如果 docker 数据目录是一块单独的磁盘分区而且是 xfs 格式的,那么需要在磁盘格式化的时候加上参数-n ftype=1,否则后期在启动容器的时候会报错不支持 dtype。
error:
挂载目录在/var/lib/docker
这里docker的启动文件需要修改:
之前的数据全部丢失:(所以数据要备份)
进程被占用:fuser,如果没有安装yum install psmisc。
2.3:docker 服务进程(版本Ubuntu18.09)
有四个进程:
dockerd:被 client 直接访问,其父进程为宿主机的 systemd 守护进程。
docker-proxy:实现容器通信,其父进程为 dockerd 。
containerd:被 dockerd 进程调用以实现与 runc 交互。
containerd-shim:真正运行容器的载体,其父进程为 containerd。
容器的创建与管理过程:
2.4:docker 镜像加速配置
2.4.1:获取加速地址
浏览器打开 http://cr.console.aliyun.com,注册或登录阿里云账号,点击左侧的 镜像加速器,将会得到一个专属的加速地址,而且下面有使用配置说明:
(这里不展示了)
2.4.2:生成配置文件:
[root@docker-server1 ~]# mkdir -p /etc/docker [root@docker-server1 ~]# sudo tee /etc/docker/daemon.json <<-'EOF'
2.4.3:重启 docker服务:
systemctl daemon-reload
systemctl restart docker