本文共 6876 字,大约阅读时间需要 22 分钟。
Docker 是一个的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 或 机器上,也可以实现。容器是完全使用机制,相互之间不会有任何接口。
一个完整的Docker有以下几个部分组成: Docker 是 提供商 dotCloud 开源的一个基于 的高级容器引擎,源代码托管在 上, 基于并遵从Apache2.0协议开源。
Docker自2013年以来非常火热,无论是从 github 上的代码活跃度,还是在RHEL6.5中集成对Docker的支持, 就连 的 Compute Engine 也支持 docker 在其之上运行。
Docker是供开发人员和系统管理员 使用容器构建,运行和共享应用程序的平台。使用容器来部署应用程序称为容器化。容器不是新的,但用于轻松部署应用程序的容器却是新的。
容器化越来越受欢迎,因为容器是:
Docker使用客户端-服务器架构。Docker 客户端与Docker 守护进程进行对话,该守护进程完成了构建,运行和分发Docker容器的繁重工作。Docker客户端和守护程序可以 在同一系统上运行,也可以将Docker客户端连接到远程Docker守护程序。Docker客户端和守护程序在UNIX套接字或网络接口上使用REST API进行通信。
1、环境准备
1、需要Linux基础
2、Centos7
3、使用Xshell远程连接服务器
2、查看服务器版本
# 系统内核必须在3.10以上[root@bogon ~]# uname -r3.10.0-693.el7.x86_64# 查看系统配置[root@bogon /]# cat /etc/os-release NAME="CentOS Linux"VERSION="7 (Core)"ID="centos"ID_LIKE="rhel fedora"VERSION_ID="7"PRETTY_NAME="CentOS Linux 7 (Core)"ANSI_COLOR="0;31"CPE_NAME="cpe:/o:centos:centos:7"HOME_URL="https://www.centos.org/"BUG_REPORT_URL="https://bugs.centos.org/"CENTOS_MANTISBT_PROJECT="CentOS-7"CENTOS_MANTISBT_PROJECT_VERSION="7"REDHAT_SUPPORT_PRODUCT="centos"REDHAT_SUPPORT_PRODUCT_VERSION="7"
DockerAPI手册:https://docs.docker.com/
支持Centos7及以上版本
# 卸载旧的docker$ sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine
您可以根据需要以不同的方式安装Docker Engine:
在新主机上首次安装Docker Engine之前,需要设置Docker存储库。之后,您可以从存储库安装和更新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 #默认使用国外镜像地址 #设置国内阿里云镜像地址$ sudo yum-config-manager \ --add-repo \ http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 安装之前先进行跟新yumyum makecache fast# 安装docker引擎 docker-ce 社区版本 docker-ee/docker-ee-eli 企业版$ sudo yum install docker-ce docker-ce-cli containerd.io
在安装之前最好跟新一下yum软件指令
要安装特定版本的Docker Engine,请在存储库中列出可用版本,然后选择并安装:
一个。列出并排序您存储库中可用的版本。此示例按版本号(从高到低)对结果进行排序,并被截断:
$ yum list docker-ce --showduplicates | sort -rdocker-ce.x86_64 3:18.09.1-3.el7 docker-ce-stabledocker-ce.x86_64 3:18.09.0-3.el7 docker-ce-stabledocker-ce.x86_64 18.06.1.ce-3.el7 docker-ce-stabledocker-ce.x86_64 18.06.0.ce-3.el7 docker-ce-stable# VERSION_STRING 版本指定安装$ sudo yum install docker-ce-docker-ce-cli- containerd.io# 启动docker$ sudo systemctl start docker
查看docker启动
$ sudo docker versionClient: Version: 1.13.1 API version: 1.26 Package version: docker-1.13.1-108.git4ef4b30.el7.centos.x86_64 Go version: go1.10.3 Git commit: 4ef4b30/1.13.1 Built: Tue Jan 21 17:16:25 2020 OS/Arch: linux/amd64Server: Version: 1.13.1 API version: 1.26 (minimum version 1.12) Package version: docker-1.13.1-108.git4ef4b30.el7.centos.x86_64 Go version: go1.10.3 Git commit: 4ef4b30/1.13.1 Built: Tue Jan 21 17:16:25 2020 OS/Arch: linux/amd64 Experimental: false
在我们安装docker只有我们首先做的就是去测试一下我们的docker的helloword程序、在docker中启动一个镜像使用run命令即可。
$ sudo docker run hello-worldUnable to find image 'hello-world:latest' locally # 没有找到hello-world:latest镜像Trying to pull repository docker.io/library/hello-world ... #远程拉取镜像latest: Pulling from docker.io/library/hello-world # 拉取地址0e03bdcc26d7: Pull complete Digest: sha256:6a65f928fb91fcfbc963f7aa6d57c8eeb426ad9a20c7ee045538ef34847f44f1Status: Downloaded newer image for docker.io/hello-world:latestHello from Docker!This message shows that your installation appears to be working correctly.To generate this message, Docker took the following steps:1. The Docker client contacted the Docker daemon.2. The Docker daemon pulled the "hello-world" image from the Docker Hub. (amd64)3. The Docker daemon created a new container from that image which runs the executable that produces the output you are currently reading.4. The Docker daemon streamed that output to the Docker client, which sent it to your terminal.To try something more ambitious, you can run an Ubuntu container with:$ docker run -it ubuntu bashShare images, automate workflows, and more with a free Docker ID:https://hub.docker.com/For more examples and ideas, visit:https://docs.docker.com/get-started/
# 查看当前镜像docker images
在我们不需要Docker的时候需要卸载、官方也给我们提供了最通许的方法
1、卸载Docker Engine,CLI和Containerd软件包:
$ sudo yum remove docker-ce docker-ce-cli containerd.io
2、主机上的映像,容器,卷或自定义配置文件不会自动删除。要删除所有图像,容器和卷:
$ sudo rm -rf /var/lib/docker
1、进入阿里云、容器镜像管理
2、找到镜像加速器
3、配置加速器
1、CentOS的配置方式略微复杂,需要先将默认的配置文件(/lib/systemd/system/docker.service)
2、复制到 /etc/systemd/system/docker.service。
3、然后再将加速器地址添加到配置文件的启动命令中,之后重启Docker即可。
sudo cp -n /lib/systemd/system/docker.service /etc/systemd/system/docker.servicesudo sed -i "s|ExecStart=/usr/bin/docker daemon|ExecStart=/usr/bin/docker daemon --registry-mirror=|g" /etc/systemd/system/docker.servicesudo sed -i "s|ExecStart=/usr/bin/dockerd|ExecStart=/usr/bin/dockerd --registry-mirror= |g" /etc/systemd/system/docker.servicesudo systemctl daemon-reloadsudo service docker restart
4、docker配置镜像加速地址修改
可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器
$sudo mkdir -p /etc/docker$sudo tee /etc/docker/daemon.json <<-'EOF'{ "registry-mirrors": ["配置你的加速地址"]}EOF$sudo systemctl daemon-reload$sudo systemctl restart docker
5、查看是否配置成功
[root@bogon docker]# cat /etc/docker/daemon.json { "registry-mirrors": ["配置你的加速地址"]}
6、重新启动docker
# 重新启动服务systemctl daemon-reload# 重新启动dockersystemctl restart docker
我们在安装完成之后也进行了一个简单的测试。
HelloWord程序到底是怎么跑起来的呢?我们一起来分析一波。
我们在运行helloword程序的时候会报出一个Unable to find image
没有找到我们helloword程序、此时Docker会在本机寻找我们需要启动的镜像、docker会给出答复是否有这个镜像,如果有使用这个镜像运行,如果没有Docker就回去DockerHub仓库(默认国外慢、前面配置阿里云)、那么去下载的时候也会进行判断仓库中有没有、如果有那么就进行拉取进行到本地仓库中、添加到run程序中进行运行、如果没有就会报错Unable to find image
,大致Docker的流程就是这样的。
找不到镜像报错如下
docker run hebiyushengUnable to find image 'hebiyusheng:latest' locallyTrying to pull repository docker.io/library/hebiyusheng ... /usr/bin/docker-current: repository docker.io/hebiyusheng not found: does not exist or no pull access.See '/usr/bin/docker-current run --help'.在这里基本的docker安装的HelloWord就结束了、快去安装学习吧。持续跟新!
转载地址:http://udqzi.baihongyu.com/