Docker 安装教程

    基于 Ubuntu 22.04 安装

    安装 Docker

    安装依赖

    如果你过去安装过 docker,先删掉:

    sudo apt-get remove docker docker-engine docker.io
    

    安装 Docker-CE

    export DOWNLOAD_URL="https://mirrors.tuna.tsinghua.edu.cn/docker-ce"
    # 如您使用 curl
    curl -fsSL https://get.docker.com/ | sudo -E sh
    # 如您使用 wget
    wget -O- https://get.docker.com/ | sudo -E sh
    

    配置 Docker Hub 国内源

    编辑 /etc/docker/daemon.json sudo vim /etc/docker/daemon.json 加入:
    中科大源

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

    阿里云私有源(请配成自己的噢):

    {
      "registry-mirrors": ["https://u13zwy2w.mirror.aliyuncs.com"]
    }
    

    免 Sudo 操作 Docker

    如果还没有 docker group 就添加一个:

    sudo groupadd docker
    

    将用户加入该 group 内。

    sudo gpasswd -a ${USER} docker
    

    然后 退出并重新登录 就生效啦。

    构建基础镜像

    众所周知, Linux 上默认的镜像源大多都是国外的, 由于网络相关问题, 在国内使用 apt 等安装软件时难免会出现现在速度慢, 下载失败等原因, 因此有必要初始化一个自己的基础镜像

    配置 Dockerfile

    FROM ubuntu:20.04
    
    ENV version 1.0
    
    RUN apt update && apt install ca-certificates -y
    
    COPY ./sources.list /etc/apt/sources.list
    
    RUN apt-get update
    
    RUN apt install vim net-tools lrzsz curl wget -y
    
    RUN rm -rf /var/lib/apt/lists/*
    

    构建镜像

    需要在 dockerfile 所在目录执行此操作
    docker build -t jansora/base:v1 .

    推送镜像到 Docker hub

    需要登录到 Docker Hub. https://hub.docker.com/?ref=login
    docker push jansora/base:v1

    mac docker 局域网配置

    使用 docker-connector

    首先 Mac 端通过 brew 安装 docker-connector

    1
    brew install wenjunxiao/brew/docker-connector
    然后执行以下命令把 docker 的所有 bridge 网络都添加到路由中

    1
    docker network ls --filter driver=bridge --format "{{.ID}}" | xargs docker network inspect --format "route {{range .IPAM.Config}}{{.Subnet}}{{end}}" >> /usr/local/etc/docker-connector.conf
    也可以手动修改 /usr/local/etc/docker-connector.conf 文件中的路由,格式是

    1
    route 172.17.0.0/16
    路由的子网决定了你能访问那些容器

    配置完成,直接启动服务(需要 sudo,路由配置启动之后仍然可以修改,并且无需重启服务立即生效)

    1
    sudo brew services start docker-connector
    然后使用以下命令在 docker 端运行 wenjunxiao/mac-docker-connector,需要使用 host 网络,并且允许 NET_ADMIN

    1
    docker run -it -d --restart always --net host --cap-add NET_ADMIN --name connector wenjunxiao/mac-docker-connector

    评论栏