zoukankan      html  css  js  c++  java
  • 使用static binaries离线安装docker

      许多国产化项目部署需要用到docker,而服务器有必须处于离线状态,那么离线安装docker就成为了一个问题,离线安装docker本身并不难,难的是安装docker的依赖软件。

      经过多次尝试,依赖软件也没有安装成功,在一筹莫展之际,在docker官网看到,有一种离线安装方式叫:static binaries

    一、static binaries安装docker

    1,下载离线静态包:https://download.docker.com/linux/static/stable/

    2,执行命令:

    1 sudo cp docker/* /usr/bin/
    2 sudo dockerd &

    二、启动遇到的问题

       正常只要进行上述两个步骤就可以成功了,但是还是遇到了一些问题。

    1,failed to start daemon: Devices cgroup isn't mounted

    这个是因为默认的cgroup的cpu,memory等没有被挂载,需要使用一个脚本来挂载,具体使用脚本是

     1 #!/bin/sh
     2 # Copyright 2011 Canonical, Inc
     3 #           2014 Tianon Gravi
     4 # Author: Serge Hallyn <serge.hallyn@canonical.com>
     5 #         Tianon Gravi <tianon@debian.org>
     6 set -e
     7 
     8 # for simplicity this script provides no flexibility
     9 
    10 # if cgroup is mounted by fstab, don't run
    11 # don't get too smart - bail on any uncommented entry with 'cgroup' in it
    12 if grep -v '^#' /etc/fstab | grep -q cgroup; then
    13     echo 'cgroups mounted from fstab, not mounting /sys/fs/cgroup'
    14     exit 0
    15 fi
    16 
    17 # kernel provides cgroups?
    18 if [ ! -e /proc/cgroups ]; then
    19     exit 0
    20 fi
    21 
    22 # if we don't even have the directory we need, something else must be wrong
    23 if [ ! -d /sys/fs/cgroup ]; then
    24     exit 0
    25 fi
    26 
    27 # mount /sys/fs/cgroup if not already done
    28 if ! mountpoint -q /sys/fs/cgroup; then
    29     mount -t tmpfs -o uid=0,gid=0,mode=0755 cgroup /sys/fs/cgroup
    30 fi
    31 
    32 cd /sys/fs/cgroup
    33 
    34 # get/mount list of enabled cgroup controllers
    35 for sys in $(awk '!/^#/ { if ($4 == 1) print $1 }' /proc/cgroups); do
    36     mkdir -p $sys
    37     if ! mountpoint -q $sys; then
    38         if ! mount -n -t cgroup -o $sys cgroup $sys; then
    39             rmdir $sys || true
    40         fi
    41     fi
    42 done
    43 
    44 # example /proc/cgroups:
    45 #  #subsys_name    hierarchy    num_cgroups    enabled
    46 #  cpuset    2    3    1
    47 #  cpu    3    3    1
    48 #  cpuacct    4    3    1
    49 #  memory    5    3    0
    50 #  devices    6    3    1
    51 #  freezer    7    3    1
    52 #  blkio    8    3    1
    53 
    54 # enable cgroups memory hierarchy, like systemd does (and lxc/docker desires)
    55 # https://github.com/systemd/systemd/blob/v245/src/core/cgroup.c#L2983
    56 # https://bugs.debian.org/940713
    57 if [ -e /sys/fs/cgroup/memory/memory.use_hierarchy ]; then
    58     echo 1 > /sys/fs/cgroup/memory/memory.use_hierarchy
    59 fi
    60 
    61 exit 0

    2,failed to create NAT chain DOCKER: iptables failed

     docker的运行依赖于iptables,利用其中的nat功能

    下载iptables:http://mirrors.ustc.edu.cn/debian/pool/main/i/iptables/

    安装即可。

  • 相关阅读:
    JavaScript操作符instanceof揭秘
    Linux打开txt文件乱码的解决方法
    Working copy locked run svn cleanup not work
    poj 2299 UltraQuickSort 归并排序求解逆序对
    poj 2312 Battle City 优先队列+bfs 或 记忆化广搜
    poj2352 stars 树状数组
    poj 2286 The Rotation Game 迭代加深
    hdu 1800 Flying to the Mars
    poj 3038 Children of the Candy Corn bfs dfs
    hdu 1983 Kaitou Kid The Phantom Thief (2) DFS + BFS
  • 原文地址:https://www.cnblogs.com/guanghe/p/14807884.html
Copyright © 2011-2022 走看看