Docker 安装

目录

自带源安装

docker版本和官方源安装

国内源安装新版docker

生产docker的环境配置

登入登出docker hub

国内镜像源

国内源介绍及使用


Docker 安装_第1张图片

自带源安装

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
​

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 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
​

生产docker的环境配置

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 即可发现错误

登入登出docker hub

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

你可能感兴趣的:(docker,容器,运维)