目录
自带源安装
docker版本和官方源安装
国内源安装新版docker
生产docker的环境配置
登入登出docker hub
国内镜像源
国内源介绍及使用
CentOS 7 中 Docker 的安装: Docker 软件包已经包括在默认的 CentOS-Extras 软件源(联网使用centos7u2自带网络Yum源)里。因此想要安装 docker,只需要运行下面的 yum 命令: # yum install docker 启动 Docker 服务: # service docker start # chkconfig docker on CentOS 7 # systemctl start docker.service # systemctl enable docker.service 确定docker服务在运行: 结果会显示服务端和客户端的版本,如果只显示客户端版本说明服务没有启动 [root@docker1 yum]# docker version Client: Docker Engine - Community Version: 19.03.4 API version: 1.40 Go version: go1.12.10 Git commit: 9013bf583a Built: Fri Oct 18 15:52:22 2019 OS/Arch: linux/amd64 Experimental: false Server: Docker Engine - Community Engine: Version: 19.03.4 API version: 1.40 (minimum version 1.12) Go version: go1.12.10 Git commit: 9013bf583a Built: Fri Oct 18 15:50:54 2019 OS/Arch: linux/amd64 Experimental: false containerd: Version: 1.2.10 GitCommit: b34a5c8af56e510852c35414db4c1f4fa6172339 runc: Version: 1.0.0-rc8+dev GitCommit: 3e425f80a8c931f88e6d94a8c831b9d5aa481657 docker-init: Version: 0.18.0 GitCommit: fec3683 •查看docker基本信息: #docker info 校验Docker的安装 [root@master ~]# docker run -it ubuntu bash Unable to find image 'ubuntu:latest' locally Trying to pull repository daocloud.io/ubuntu ... latest: Pulling from daocloud.io/ubuntu 22ecafbbcc4a: Pull complete 580435e0a086: Pull complete Digest: sha256:80c2902178d79f439b13c5a244f3b1ef67ca890dbbe58d19caa13301ca56a505 如果自动进入下面的容器环境,说明•ubuntu镜像运行成功,Docker的安装也没有问题:可以操作容器了 root@50a0449d7729:/# pwd / root@50a0449d7729:/# ls bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
moby、docker-ce与docker-ee 最早时docker是一个开源项目,主要由docker公司维护。 2017年3月1日起,docker公司将原先的docker项目改名为moby,并创建了docker-ce和docker-ee。 三者关系: moby是继承了原先的docker的项目,是社区维护的的开源项目,谁都可以在moby的基础打造自己的容器产品 docker-ce是docker公司维护的开源项目,是一个基于moby项目的免费的容器产品 docker-ee是docker公司维护的闭源产品,是docker公司的商业产品。 moby project由社区维护,docker-ce project是docker公司维护,docker-ee是闭源的。 要使用免费的docker,从https://github.com/docker/docker-ce上获取。 要使用收费的docker,从https://www.docker.com/products/docker-enterprise上获取。 docker-ce的发布计划 v1.13.1之后,发布计划更改为: Edge: 月版本,每月发布一次,命名格式为YY.MM,维护到下个月的版本发布 Stable: 季度版本,每季度发布一次,命名格式为YY.MM,维护4个月 安装: docker-ce的release计划跟随moby的release计划,可以使用下面的命令直接安装最新的docker-ce: # curl -fsSL https://get.docker.com/ | sh CentOS 如果是centos,上面的安装命令会在系统上添加yum源:/etc/yum.repos.d/docker-ce.repo # wget https://download.docker.com/linux/centos/docker-ce.repo # mv docker-ce.repo /etc/yum.repos.d # yum install -y docker-ce 或者直接下载rpm安装: # wget https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-17.09.0.ce-1.el7.centos.x86_64.rpm # yum localinstall docker-ce-17.09.0.ce-1.el7.centos.x86_64.rpm 注意: 在说docker的时候尽量说Linux docker 因为Docker on Mac,以及 Windows Docker(Hyper-V 实现),实际上是基于虚拟化技术实现的,跟我们介绍使用的 Linux 容器完全不同。国内源安装新版docker
使用aliyun docker yum源安装新版docker 删除已安装的Docker # yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-selinux \ docker-engine-selinux \ docker-engine 配置阿里云Docker Yum源 # yum install -y yum-utils device-mapper-persistent-data lvm2 git # yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 安装指定版本 查看Docker版本: # yum list docker-ce --showduplicates 安装较旧版本(比如Docker 17.03.2) : 需要指定完整的rpm包的包名,并且加上--setopt=obsoletes=0 参数: # yum install -y --setopt=obsoletes=0 \ docker-ce-17.03.2.ce-1.el7.centos.x86_64 \ docker-ce-selinux-17.03.2.ce-1.el7.centos.noarch 安装Docker新版本(比如Docker 18.03.0): 加上rpm包名的版本号部分或不加都可以: # yum install docker-ce-18.03.0.ce -y 或者 # yum install docker-ce -y 启动Docker服务: #systemctl enable docker #systemctl start docker 查看docker版本状态: # docker -v Docker version 1.13.1, build 8633870/1.13.1 # docker version Client: Version: 18.09.0 API version: 1.39 Go version: go1.10.4 Git commit: 4d60db4 Built: Wed Nov 7 00:48:22 2018 OS/Arch: linux/amd64 Experimental: false Server: Docker Engine - Community Engine: Version: 18.09.0 API version: 1.39 (minimum version 1.12) Go version: go1.10.4 Git commit: 4d60db4 Built: Wed Nov 7 00:19:08 2018 OS/Arch: linux/amd64 Experimental: false 查看docker运行状态: # docker info Containers: 0 Running: 0 Paused: 0 Stopped: 0 Images: 0 Server Version: 18.09.0 Storage Driver: overlay2 Backing Filesystem: xfs Supports d_type: true Native Overlay Diff: true Logging Driver: json-file Cgroup Driver: cgroupfs Plugins: Volume: local Network: bridge host macvlan null overlay Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog Swarm: inactive Runtimes: runc Default Runtime: runc Init Binary: docker-init containerd version: c4446665cb9c30056f4998ed953e6d4ff22c7c39 runc version: 4fc53a81fb7c994640722ac585fa9ca548971871 init version: fec3683 Security Options: seccomp Profile: default Kernel Version: 3.10.0-957.el7.x86_64 Operating System: CentOS Linux 7 (Core) OSType: linux Architecture: x86_64 CPUs: 4 Total Memory: 1.934GiB Name: docker ID: MF5S:ZX25:SWJ3:XEIG:FFHP:5VXF:F5AL:KQFF:KKXP:XZGY:YGTE:EBQF Docker Root Dir: /var/lib/docker Debug Mode (client): false Debug Mode (server): false Registry: https://index.docker.io/v1/ Labels: Experimental: false Insecure Registries: 127.0.0.0/8 Live Restore Enabled: false Product License: Community Engine ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ bonding 报错1: docker info的时候报如下错误 bridge-nf-call-iptables is disabled 解决1: 追加如下配置,然后重启系统 # vim /etc/sysctl.conf net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 net.bridge.bridge-nf-call-arptables = 1 问题2: 虚拟机ping百度也能ping通,但是需要等好几秒才出结果,关键是下载镜像一直报错如下 # docker pull daocloud.io/library/nginx Using default tag: latest Error response from daemon: Get https://daocloud.io/v2/: dial tcp: lookup daocloud.io on 192.168.1.2:53: read udp 192.168.1.189:41335->192.168.1.2:53: i/o timeout 解决2: 我的虚拟机用的网关和dns都是虚拟机自己的.1或者.2,把DNS改成8.8.8.8问题就解决了,ping百度也秒出结果 # vim /etc/resolv.conf nameserver 8.8.8.8
sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://pilvpemn.mirror.aliyuncs.com"], "exec-opts": ["native.cgroupdriver=systemd"], "log-driver": "json-file", "log-opts": { "max-size": "100m" }, "storage-driver": "overlay2" } EOF sudo systemctl daemon-reload sudo systemctl restart docker #注意:一定注意编码问题,出现错误---查看命令:journalctl -amu docker 即可发现错误
login Register or log in to a Docker registry 登录到自己的Docker register,需有Docker Hub的注册账号 # docker login Username: test Password: Email: [email protected] WARNING: login credentials saved in /root/.docker/config.json Login Succeeded logout Log out from a Docker registry 退出登录 # docker logout Remove login credentials for https://index.docker.io/v1/ 注:推送镜像库到私有源(可注册 docker 官方账户,推送到官方自有账户)
去查看如何使用aliyun的docker镜像库 去查看如何使用网易蜂巢的docker镜像库 Docker 加速器 使用 Docker 的时候,需要经常从官方获取镜像,但是由于显而易见的网络原因,拉取镜像的过程非常耗时,严重影响使用 Docker 的体验。因此 DaoCloud 推出了加速器工具解决这个难题,通过智能路由和缓存机制,极大提升了国内网络访问 Docker Hub 的速度,目前已经拥有了广泛的用户群体,并得到了 Docker 官方的大力推荐。 如果您是在国内的网络环境使用 Docker,那么 Docker 加速器一定能帮助到您。 Docker 加速器对 Docker 的版本有要求吗? 需要 Docker 1.8 或更高版本才能使用,如果您没有安装 Docker 或者版本较旧,请安装或升级。 Docker 加速器支持什么系统? Linux, MacOS 以及 Windows 平台。 Docker 加速器是否收费? DaoCloud 为了降低国内用户使用 Docker 的门槛,提供永久免费的加速器服务,请放心使用。 国内比较好的镜像源:网易蜂巢、aliyun和daocloud,下面是daocloud配置方式: •Docker Hub并没有在国内部署服务器或者使用国内的CDN服务,因此在国内特殊的网络环境下,镜像下载十分耗时。 为了克服跨洋网络延迟,能够快速高效地下载Docker镜像,可以采用DaoCloud提供的服务Docker Hub Mirror,速度 快很多 1.注册网站账号 2.然后进入你自己的""制台",选择"加速器",点"立即开始",接入你自有的主机,就看到如下的内容了 curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361XXX.m.daocloud.io 该脚本可以将 --registry-mirror 加入到你的 Docker 配置文件 /etc/docker/daemon.json 中。适用于 Ubuntu14.04、Debian、CentOS6 、CentOS7、Fedora、Arch Linux、openSUSE Leap 42.1,其他版本可能有细微不同。更多详情请访问文档。 3.配置完成后从Docker Hub Mirror下载镜像,命令: #dao pull ubuntu 注1:第一次使用daocloud是配置了加速器的,可以直接使用dao pull centos拉取经过加速之后的镜像,但是后来发现,不使用加速器也可以直接在daocloud官网上找到想要拉取的镜像地址进行拉取,•比如:#docker pull daocloud.io/library/tomcat:6.0-jre7 注2:上面配置加速器的方法,官网会更新,最新方法你应该根据官网提示去操作。 ===========以下为tigerfive亲测================ 使用国内镜像: 进入网站:https://hub.daocloud.io/ 注册帐号:tigerfive 进入镜像市场:填写搜索的镜像名称 选择第一个 点击右边快速部署: 写入名称,选择我的主机,按提示继续在主机上进行所有操作 # mkdir /docker # cd /docker # curl -L -o /tmp/daomonit.x86_64.rpm https://get.daocloud.io/daomonit/daomonit.x86_64.rpm # rpm -Uvh /tmp/daomonit.x86_64.rpm # daomonit -token=36e3dedaa2e6b352f47b26a3fa9b67ffd54f5077 save-config # service daomonit start 出现如下界面:说明自有主机接入完成(注意:这里我用的主机是我自己笔记本上的一台虚拟机) 接下来我们在镜像市场找到一个centos的镜像:点击右面的拉取按钮,会出现拉取命令如下: 我们按命令执行: # docker pull daocloud.io/library/centos:7 出现如下提示:说明拉取成功 Trying to pull repository daocloud.io/library/centos ... latest: Pulling from daocloud.io/library/centos 08d48e6f1cff: Pull complete Digest: sha256:934ff980b04db1b7484595bac0c8e6f838e1917ad3a38f904ece64f70bbca040 Status: Downloaded newer image for daocloud.io/library/centos:latest 查看一下本地镜像: [root@docker1 docker]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE daocloud.io/library/centos latest 0584b3d2cf6d 3 weeks ago 196.5 MB 在拉取回来的本地镜像执行命令: 万年不变的"你好世界": # docker run daocloud.io/library/centos:7 /bin/echo "hello world" hello world 使用容器中的shell: [root@docker1 docker]# docker run -i -t centos:7 /bin/bash Unable to find image 'centos:latest' locally Trying to pull repository docker.io/library/centos ... 注意上面这样是不行的,因为默认使用的是docker官方默认镜像库的位置,需要按如下命令执行: [root@docker1 docker]# docker run -i -t daocloud.io/library/centos:7 /bin/bash -i 捕获标准输入输出 -t 分配一个终端或控制台 进去之后可以在里面执行其他命令 [root@336412c1b562 /]# ls anaconda-post.log bin dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var [root@336412c1b562 /]# df -h #可以看到这里的磁盘分区是镜像本身的磁盘分区 Filesystem Size Used Avail Use% Mounted on /dev/mapper/docker-253:0-134984824-bc712573ec743c160ea903f6196ff4814056230d6a232eb3d39761d182bc7d1c 10G 240M 9.8G 3% / tmpfs 497M 0 497M 0% /dev tmpfs 497M 0 497M 0% /sys/fs/cgroup /dev/mapper/centos-root 38G 2.3G 36G 7% /etc/hosts shm 64M 0 64M 0% /dev/shm [root@336412c1b562 /]# exit exit [root@docker1 docker]# df -h #这是我本地主机系统的磁盘分区 文件系统 容量 已用 可用 已用% 挂载点 /dev/mapper/centos-root 38G 2.3G 36G 7% / devtmpfs 487M 0 487M 0% /dev tmpfs 497M 0 497M 0% /dev/shm tmpfs 497M 20M 478M 4% /run tmpfs 497M 0 497M 0% /sys/fs/cgroup /dev/vda1 497M 107M 391M 22% /boot tmpfs 100M 0 100M 0% /run/user/0 /dev/sr0 7.3G 7.3G 0 100% /mnt/centos7u2 重新进入容器:执行其他命令试一下,可以看到我们的容器可以做我们熟悉的所有的事情: 1.可以上网 [root@9990e6c99bbd /]# ping www.baidu.com -c 2 PING www.a.shifen.com (180.97.33.107) 56(84) bytes of data. 64 bytes from 180.97.33.107: icmp_seq=1 ttl=52 time=19.8 ms 64 bytes from 180.97.33.107: icmp_seq=2 ttl=52 time=19.1 ms 2.网络yum源已经配置好 [root@9990e6c99bbd /]# yum repolist Loaded plugins: fastestmirror, ovl base | 3.6 kB 00:00:00 extras | 3.4 kB 00:00:00 updates | 3.4 kB 00:00:00 (1/4): base/7/x86_64/group_gz | 155 kB 00:00:01 (2/4): extras/7/x86_64/primary_db | 166 kB 00:00:04 (3/4): updates/7/x86_64/primary_db | 9.1 MB 00:00:07 (4/4): base/7/x86_64/primary_db | 5.3 MB 00:00:22 Determining fastest mirrors * base: mirrors.tuna.tsinghua.edu.cn * extras: mirrors.tuna.tsinghua.edu.cn * updates: mirrors.163.com repo id repo name status base/7/x86_64 CentOS-7 - Base 9007 extras/7/x86_64 CentOS-7 - Extras 393 updates/7/x86_64 CentOS-7 - Updates 2560 repolist: 11960 3.可以安装软件: [root@9990e6c99bbd /]# lsof -i:80 bash: lsof: command not found [root@9990e6c99bbd /]# yum install lsof httpd -y Loaded plugins: fastestmirror, ovl Loading mirror speeds from cached hostfile * base: mirrors.tuna.tsinghua.edu.cn * extras: mirrors.tuna.tsinghua.edu.cn * updates: mirrors.163.com Resolving Dependencies --> Running transaction check ---> Package lsof.x86_64 0:4.87-4.el7 will be installed --> Finished Dependency Resolution Dependencies Resolved ====================================================================================================================================================== Package Arch Version Repository Size ====================================================================================================================================================== Installing: lsof x86_64 4.87-4.el7 base 331 k
Docker 加速器 使用 Docker 的时候,需要经常从官方获取镜像,但是由于显而易见的网络原因,拉取镜像的过程非常耗时,严重影响使用 Docker 的体验。因此 DaoCloud 推出了加速器工具解决这个难题,通过智能路由和缓存机制,极大提升了国内网络访问 Docker Hub 的速度,目前已经拥有了广泛的用户群体,并得到了 Docker 官方的大力推荐。 如果您是在国内的网络环境使用 Docker,那么 Docker 加速器一定能帮助到您。 Docker 加速器对 Docker 的版本有要求吗? 需要 Docker 1.8 或更高版本才能使用,如果您没有安装 Docker 或者版本较旧,请安装或升级。 Docker 加速器支持什么系统? Linux, MacOS 以及 Windows 平台。 Docker 加速器是否收费? DaoCloud 为了降低国内用户使用 Docker 的门槛,提供永久免费的加速器服务,请放心使用。 国内比较好的镜像源:网易蜂巢、aliyun和daocloud,下面是daocloud配置方式: Docker Hub并没有在国内部署服务器或者使用国内的CDN服务,因此在国内特殊的网络环境下,镜像下载十分耗时。 为了克服跨洋网络延迟,能够快速高效地下载Docker镜像,可以采用DaoCloud提供的服务Docker Hub Mirror,速度 快很多 1.注册网站账号 2.然后进入你自己的"控制台",选择"加速器",点"立即开始",接入你自有的主机,就看到如下的内容了 • 下载并安装相关软件 #curl -L -o /tmp/daomonit_amd64.deb https://get.daocloud.io/daomonit/daomonit_amd64.debsudo #dpkg -4i /tmp/daomonit_amd64.deb • 配置 #sudo daomonit -token=e16ed16b2972865e19b143695cf08cad850d5570 save-config • 启动服务 #service daomonit start 3.配置完成后从Docker Hub Mirror下载镜像,命令: #dao pull ubuntu