一、概述

Docker 在1.13版本之后,从2017年的3月1日开始,版本命名规则变为如下:

项目 说明
版本格式 YY.MM
Stable  每个季度发行
Edge版本 每个月发行

同时Docker划分为CE和EE。CE即社区版(免费,支持后期三个月),EE即企业版,强调安全,付费使用。

本实验虚拟机CentOS7,采用阿里云yum源安装

二、安装Docker CE先决条件

官方各个版本安装文档:https://docs.docker.com/install/

系统要求

Docker CE支持64位版本CentOS ,并且要求内核版本不低于3.。CentOS 7满足最低内核的要求,但由于内核版本比较低,部分功能(如overlay2存储层驱动)无法使用,并且部分功能可能不太稳定。

查看系统内核版本

[root@linux-node1 ~]# cat /proc/version
Linux version 3.10.-.el7.x86_64 (builder@kbuilder.dev.centos.org) (gcc version 4.8. (Red Hat 4.8.-) (GCC) ) # SMP Tue Nov :: UTC
[root@linux-node1 ~]# uname -a
Linux linux-node1.example.com 3.10.-.el7.x86_64 # SMP Tue Nov :: UTC x86_64 x86_64 x86_64 GNU/Linux
[root@linux-node1 ~]#

卸载旧版本

老版本的Docker被称为docker或docker-engine。如果安装了它们,请卸载他们以及相关的依赖项。

$ sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine
[root@linux-node1 ~]# yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-selinux docker-engine-selinux docker-engine
Loaded plugins: fastestmirror
No Match for argument: docker
No Match for argument: docker-client
No Match for argument: docker-client-latest
No Match for argument: docker-common
No Match for argument: docker-latest
No Match for argument: docker-latest-logrotate
No Match for argument: docker-logrotate
No Match for argument: docker-selinux
No Match for argument: docker-engine-selinux
No Match for argument: docker-engine
No Packages marked for removal

示例一

如上示例一中所示报告说没有安装这些软件包,就OK了。

/var/lib/docker/包括图像,容器,卷和网络的内容将被保留,现在调用Docker CE包docker-ce。

三、安装Docker CE

使用存储库进行安装

首次在新的主机上安装Docker CE之前,需要设置Docker存储库,之后,您可以从存储安装和更新Docker。

设置存储库

  • 安装所需要的包。yum-utils提供了yum-config-manager,并device-mapper-persistent-datalvm2由需要 devicemapper存储驱动程序。
[root@linux-node1 ~]# yum -y install yum-utils device-mapper-persistent-data lvm2

使用以下命令设置稳定的存储库

Complete!
[root@linux-node1 ~]# yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

如果需要使用最新版的Docker CE使用以下命令(默认处于禁用状态)

yum-config-manager --enable docker-ce-edge

如果使用测试版本的Docker CE请使用以下命令(默认处于禁用状态)

yum-config-manager --enable docker-ce-test

可以通过使用该标志运行命令来禁用边缘或测试存储库 。要重新启用它,请使用标志。以下命令禁用边缘存储库。yum-config-manager--disable--enable

yum-config-manager --disable docker-ce-edge

注意:从Docker 17.06开始,稳定版本也被推到边缘并测试版本库。

yum安装Docker

[root@linux-node1 ~]# yum -y install docker-ce

Installed:
docker-ce.x86_64 0:18.03.1.ce-1.el7.centos

Dependency Installed:
container-selinux.noarch 2:2.55-1.el7

启动Docker

[root@linux-node1 ~]# systemctl start docker

查看Docker运行状态

[root@linux-node1 ~]# systemctl status docker

测试Docker是否安装正确

[root@linux-node1 ~]# docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
9bb5a5d4561a: Pull complete
Digest: sha256:f5233545e43561214ca4891fd1157e1c3c563316ed8e237750d59bde73361e77
Status: Downloaded newer image for hello-world:latest Hello from Docker!
This message shows that your installation appears to be working correctly. To generate this message, Docker took the following steps:
. The Docker client contacted the Docker daemon.
. The Docker daemon pulled the "hello-world" image from the Docker Hub.
(amd64)
. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
. 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 bash Share images, automate workflows, and more with a free Docker ID:
https://hub.docker.com/ For more examples and ideas, visit:
https://docs.docker.com/engine/userguide/

四、创建docker用户组(此操作可以不执行)

docker守护程序绑定到一个Unix套接字而不是TCP端口。默认情况下,Unix套接字由root用户拥有,其它用户只能使用sudo来访问它,该docker守护进程始终运行的root用户。
处于安全考虑,一般Linux系统上不会直接使用root用户,因此,更好的做法是将需要使用docker的用户加入docker用户组。当docker守护进程启动时,它使得Unix套接字的所有权可以被docker组读/写

提示:该docker组授予root用户等效的权限。有关会如何影响系统安全性的详细信息,参阅:https://docs.docker.com/engine/security/security/#docker-daemon-attack-surface

  • 创建docker组
groupadd docker
  • 将您的用户添加到docker组中
usermod -aG docker $USER
  • 注销并重新登录,以便重新评估您的组成员资格。

    如果在虚拟机上进行测试,则可能需要重新启动虚拟机才能使更改生效。

    在桌面Linux环境(如X Windows)上,完全退出会话并重新登录。

  • 验证您可以不使用运行docker命令sudo
docker run hello-world

五、内核参数修改

  • 添加内核参数

默认配置下,如果在CentOS使用Docker CE看到下面的这些警告信息:

WARING: bridge-nf-call-iptables is disabled
WARING: bridge-nf-call-ip6tables is disabled

请添加内核配置参数以启用这些功能

net.bridge.bridge-nf-call-ip6tables =
net.bridge.bridge-nf-call-iptables =

然后重新加载sysctl.conf即可

sysctl -p

六、配置加速器

建议安装Docker之后配置国内镜像加速。

官方文档:https://docs.docker.com/registry/recipes/mirror/#run-a-registry-as-a-pull-through-cache

配置Docker守护进程

--registry-mirrordockerd手动启动时传递选项,或者编辑/etc/docker/daemon.json 和添加registry-mirrors键和值,以使更改持久化。

{
"registry-mirrors": ["https://<my-docker-mirror-host>"]
}

示例:中国镜像

中国注册镜像的URL是registry.docker-cn.com。通过在docker pull 命令中指定完整路径(包括注册表),您可以像从其他注册表那样从该镜像中提取镜像,例如:

$ docker pull registry.docker-cn.com/library/ubuntu

您可以添加"https://registry.docker-cn.com"registry-mirrors阵列中/etc/docker/daemon.json 以默认从China注册表镜像中拉取。

{
"registry-mirrors": ["https://registry.docker-cn.com"]
}

保存文件并重新加载Docker以使更改生效。

[root@linux-node1 ~]# systemctl daemon-reload
[root@linux-node1 ~]# systemctl stop docker
[root@linux-node1 ~]# systemctl start docker
[root@linux-node1 ~]# systemctl status docker

或者,您可以使用--registry-mirror启动参数配置Docker守护程序:

dockerd --registry-mirror=https://registry.docker-cn.com

Docker CE部署的更多相关文章

  1. centos7 部署 docker ce

    =============================================== 2019/4/9_第1次修改                       ccb_warlock === ...

  2. 部署:阿里云ECS部署Docker CE

    1 部署阿里云ECS,选择CentOS操作系统,并启动实例: 2 部署Docker CE: a.检查centos版本: $ cat /etc/redhat-release CentOS Linux r ...

  3. 从头认识一下docker-附带asp.net core程序的docker化部署

    从头认识一下docker-附带asp.net core程序的docker化部署 简介 在计算机技术日新月异的今天, Docker 在国内发展的如火如荼,特别是在一线互联网公司, Docker 的使用是 ...

  4. debian上安装docker ce

    在Debian9上安装Docker CE 使用从包中安装的方式 Docker是一个开源的容器引擎,它有助于更快地交付产品.Docker可将应用程序和基础设施层隔离,并且将基础设施当作程序一样进行管理. ...

  5. docker -ce(社区免费版)

    Docker -ce https://www.cnblogs.com/zhangxiaoyong/p/9706392.html Docker 是世界领先的软件容器平台.开发人员利用 Docker 可以 ...

  6. Get Docker CE for Ubuntu

    Docker 分为开源免费的 CE(Community Edition)版本和收费的 EE(Enterprise Edition)版本. 配置 Docker 的 apt 源 1. 安装包,允许 apt ...

  7. Ubuntu安装 Docker CE,VNC访问docker图形界面并安装ROS

    从包安装 如果您无法使用Docker的存储库来安装Docker CE,则可以下载.deb适用于您的发行版的 文件并手动安装.每次要升级Docker CE时都需要下载新文件. 安装Docker CE,将 ...

  8. 如果您无法使用Docker的存储库来安装Docker CE

    如果您无法使用Docker的存储库来安装Docker CE,则可以下载.deb适用于您的发行版的 文件并手动安装.每次要升级Docker CE时都需要下载新文件. 转到https://download ...

  9. Exceptionless 5.0.0 本地Docker快速部署介绍

    在之前我有专门写两篇文章介绍过Exceptionless这款开源日志项目的使用和部署,但是当时是基于4.1.0版本(2017年的release),时隔两年多Exceptionless也推出了5.0.0 ...

随机推荐

  1. hadoop之 Hadoop2.2.0中HDFS的高可用性实现原理

    在Hadoop2.0.0之前,NameNode(NN)在HDFS集群中存在单点故障(single point of failure),每一个集群中存在一个NameNode,如果NN所在的机器出现了故障 ...

  2. python3api-ms-win-crt-runtime-l1-1-0.dll丢失解决方法

    先记录一个之前遇到的问题: 在安装了pycharm后,发现 通过上网发现,其实就是没有安装pip和setuptools,其实 Python3以后都是默认安装pip的,所以最后的解决办法是将我目前的Py ...

  3. 常见企业IT支撑【5、内网DNS cache轻量服务dnsmasq】

    可参考http://www.centoscn.com/CentosServer/dns/2014/0113/2355.html 布署keepalive高可用方式 此方案只适合小型企业,规模少的情况下使 ...

  4. 监控mysql状态并发送Email

    */10 * * * *  /shell/mysql_status.sh > /dev/null 2>&1 #!/bin/bash port55=`/usr/sbin/lsof - ...

  5. Hibernate学习11——Hibernate 高级配置(连接池、log4j)

    第一节:配置数据库连接池 这里配置c3p0连接池,需要的jar包: jar包位于hibernate压缩包的:hibernate-release-4.3.5.Final\lib\optional\c3p ...

  6. eclipse 创建一个java项目 运行

    五.使用Eclipse 1)第一次打开需要设置工作环境,你可以指定工作目录,或者使用默认的C盘工作目录,点击 ok 按钮. 2)创建一个项目 3)输入项目名称,比如我输入Orz_Jlx,然后点击fin ...

  7. 【转】利用JMeter进行压力测试

    压力测试以软件响应速度为测试目标,尤其是在较短时间内大量并发用户的同时访问时,软件的性能和抗压能力. JMeter是一款开源的压力测试工具,目前最新Release版本是2.3.4,它不仅可以测试Web ...

  8. java代码--------实现随机输出100个随机数,10行,0--到9的数字

    总结:妹纸不是那么会表述,如有不妥之处,请提出来 package com.sads; //杰伦的世界 //实现在0-100个数中,随机输出数每行10个数,也就是10行10列,这些数在0---到9之间 ...

  9. mysql分区表之二:MySQL的表的四种分区类型介绍

    一.什么是表分区 通俗地讲表分区是将一大表,根据条件分割成若干个小表.mysql5.1开始支持数据表分区了.如:某用户表的记录超过了600万条,那么就可以根据入库日期将表分区,也可以根据所在地将表分区 ...

  10. Eclipse中设置JDK、${user}变量

    为eclipse设置jdk方法: 两个方法: 1.设置PATH路径-eclipse自动会查找! 2.在快捷方式中加上参数:-VM java虚拟机路径 Eclipse中设置${user}变量 在Ecli ...