linux系统安装docker

docker安装

自带源安装

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服务在运行:
结果会显示服务端和客户端的版本,如果只显示客户端版本说明服务没有启动
docker version

查看docker基本信息:
docker info

校验Docker的安装
docker run -it ubuntu bash

如果自动进入下面的容器环境,说明ubuntu镜像运行成功,Docker的安装也没有问题:可以操作容器了
root@50a0449d7729:/# pwd     
/

docker版本和官方源安装

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运行状态:
    # docker info
  
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

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

修改docker数据存放位置
vim /usr/lib/systemd/system/docker.service
	--data-root=/docker-data

生产docker的环境配置

mkdir -p /etc/docker

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


systemctl daemon-reload
systemctl restart docker
#注意:一定注意编码问题,出现错误---查看命令:journalctl -amu docker 即可发现错误

登入登出docker hub

login     Register or log in to a Docker registry
登录到自己的Docker register,需有Docker Hub的注册账号
      # docker login
      Username: test
      Password: 
      Email: xxxx@foxmail.com
      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

查看一下本地镜像:      
docker images


在拉取回来的本地镜像执行命令:
万年不变的"你好世界":    
docker run daocloud.io/library/centos:7 /bin/echo "hello world"
        hello world
    
使用容器中的shell:
docker run -i -t centos:7 /bin/bash  

docker run -i -t daocloud.io/library/centos:7 /bin/bash
    -i   捕获标准输入输出
    -t   分配一个终端或控制台

df -h   #这是我本地主机系统的磁盘分区


重新进入容器:执行其他命令试一下,可以看到我们的容器可以做我们熟悉的所有的事情:
1.可以上网
    [root@9990e6c99bbd /]# ping www.baidu.com -c 2

2.网络yum源已经配置好
    [root@9990e6c99bbd /]# yum repolist

3.可以安装软件:
[root@9990e6c99bbd /]# lsof -i:80
bash: lsof: command not found
[root@9990e6c99bbd /]# yum install lsof httpd -y

相关推荐

  1. linux系统安装docker

    2024-03-10 23:48:04       34 阅读
  2. linux系统安装docker-compose

    2024-03-10 23:48:04       32 阅读
  3. 【教程】在Linux系统安装DockerDocker Compose

    2024-03-10 23:48:04       41 阅读
  4. linux系统离线安装docker服务教程

    2024-03-10 23:48:04       57 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-10 23:48:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-10 23:48:04       101 阅读
  3. 在Django里面运行非项目文件

    2024-03-10 23:48:04       82 阅读
  4. Python语言-面向对象

    2024-03-10 23:48:04       91 阅读

热门阅读

  1. CatBoost高级教程:分布式训练与大规模数据处理

    2024-03-10 23:48:04       38 阅读
  2. Linux运维_Bash脚本_编译安装Mesa-23.3.6(OpenGL)

    2024-03-10 23:48:04       32 阅读
  3. 从零开始 TensorRT(7)C++ 篇:解析 ONNX

    2024-03-10 23:48:04       44 阅读
  4. 云贝福利课程倒计时-Oracle小课

    2024-03-10 23:48:04       32 阅读
  5. 202109CSPT4收集卡牌

    2024-03-10 23:48:04       34 阅读
  6. TypeScript的基础类型和高级类型梳理总结

    2024-03-10 23:48:04       42 阅读
  7. 安装pytorch省流版

    2024-03-10 23:48:04       39 阅读
  8. ArrayList 和 LinkedList 的区别是什么?

    2024-03-10 23:48:04       43 阅读
  9. 蓝桥集训之牛的基因学

    2024-03-10 23:48:04       38 阅读