文科生 / 网管 / 看书写字 / 动漫 / 不爱国

Docker 的一些信息

2017.03.06

制作自己的 base 镜像

docker 镜像本质是一个 tar 包,可以直接把正在使用的 os 打包 import 使用,debootstrap 是 deb 系提供的一个系统安装工具,提供 chroot 临时环境极为方便,做 docker 用的 base 镜像当然也很简单。

~ λ sudo apt install debootstrap
~ λ sudo debootstrap buster buster/ http://mirrors.ustc.edu.cn/debian
~ λ sudo tar -C buster -c . | sudo docker import - debian:baster

不要 sudo

普通用户默认情况下不可直接执行 docker 命令,需要sudo权限,如需要,可将 用户 加入 docker 组——

~$ sudo usermod -a -G docker xxxxxxx              # xxxxxxx为用户名,需注销重新登录。

docker info 警告

Debian系发行版默认情况下,执行docker info会返回警告——

~$ docker info
[...]
WARNING: No kernel memory limit support

消除方法是在GRUB配置文件中添加内核参数——

~$ sudo cat /etc/default/grub
[...]
GRUB_CMDLINE_LINUX="cgroup_enable=memory swapaccount=1"
[...]
~$ sudo update-grub2
~$ sudo reboot                      # 需要重启

docker-compose 和 registry

docker-compose 是一个编排工具,可通过 pip 安装。

在阿里云 VPC 内的 ECS 实例上开启一个后端存储为 OSS 的私有仓库——

~# docker-compose -f registry.yaml up &

---
registry:
  restart: always
  image: registry:2.5.1
  ports:
    - 5000:5000
  environment:
    - REGISTRY_HTTP_ADDR=0.0.0.0:5000
    - REGISTRY_STORAGE=oss
    - REGISTRY_STORAGE_OSS_INTERNAL=true
    - REGISTRY_STORAGE_OSS_SECURE=false
    - REGISTRY_STORAGE_OSS_ACCESSKEYID={{ access_key }}
    - REGISTRY_STORAGE_OSS_ACCESSKEYSECRET={{ secret_key }}
    - REGISTRY_STORAGE_OSS_BUCKET={{ oss_bucket }}
    - REGISTRY_STORAGE_OSS_REGION={{ oss_region }}
    - REGISTRY_STORAGE_OSS_ENDPOINT={{ oss_bucket }}.vpc100-{{ oss_region }}.aliyuncs.com
    - REGISTRY_STORAGE_OSS_ROOTDIRECTORY=registry_v2
    - REGISTRY_STORAGE_DELETE_ENABLED=True