操作系统基础镜像
名称
大小
包管理
场景
busybox
1.xMB
apk, lbu
超级简化版嵌入式
alpine
5.x MB
apk, lbu
Alpine是一个面向安全的、轻量级的Linux系统,基于musl libc和busybox
ubuntu
70~80 MB
apt-get, dpkg
非常出色的Linux发行版
debian
120~+/- MB
apt-get, dpkg
非常出色的Linux发行版,很多基于它的发行版
centos
200+ MB
yum, rpm
CentOS是RedHat的社区版
编程语言基础镜像
名称
tag
说明
java
openjdk:11
由于oracle jdk版本,不提供docker官方,可手动下载打docker镜像
python
3.9.7-alpine3.14
略
go
1.16.8-alpine3.14
略
nodejs
14-alpine3.12/16-alpine3.12
略
个人常用工具及应用
名称
tag
说明
maven
3.8.2-jdk-8-slim/3.8.2-openjdk-17
略
jenkins
2.60.3
略
GitLab
gitlab/gitlab-ce
略
yearning
2.3.5
略
mysql
8.0.26
略
nginx
stable-alpine, 1.20-alpine
略
名称
用途
说明
alpine/k8s
CI/CD相关的时候
Kubernetes toolbox for EKS (kubectl, helm, iam-authenticator, eksctl, etc)
alpine/git
临时的git command
A simple git container running in alpine linux, especially for tiny linux distro.
alpine/helm
heam相关
Auto-trigger docker build for kubernetes helm when new release is announced
alpine/jmeter
压测
略
alpine/dfimage
解析镜像中的内容,便于重新反写Dockerfile文件
reverse Docker images into Dockerfiles
alpine/ansible
运维管理工作
略
运行一些常用docker的命令 mysql server :
1 docker run --name mysql8 -v /data/mysql8/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:8.0.26 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
redis:
1 run -d --name redis -p 6379:6379 -v /mnt/redis/data:/data -v /mnt/redis/conf/redis.conf:/etc/redis/redis.conf redis:4 --requirepass "redispass"
portainer:
1 docker run -d -p 8000:8000 -p 9000:9000 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer
elasticsearch:
1 docker run --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms512m -Xmx768m" -d elasticsearch:7.12.0
运行一个操作系统或某种环境,在后台:
1 docker run -d centos /bin/bash -c "while true;do echo hello ;sleep 3;done"
jenkins:
1 2 docker run --name myjenkins -p 8080:8080 -p 50000:50000 -v /var/jenkins_home jenkins
git:
1 docker run -ti --rm -v ${HOME} :/root -v $(pwd ):/git alpine/git clone https://github.com/alpine-docker/git.git
dfimage:
1 2 alias dfimage="docker run -v /var/run/docker.sock:/var/run/docker.sock --rm alpine/dfimage" dfimage -sV=1.36 nginx:latest
ansible:
1 2 3 4 5 alias ansible="docker run -ti --rm -v ~/.ssh:/root/.ssh -v ~/.aws:/root/.aws -v $(pwd) :/apps -w /apps alpine/ansible ansible" ansible <follow command > 或 alias ansible-playbook=" docker run -ti --rm -v ~/.ssh:/root/.ssh -v ~/.aws:/root/.aws -v $(pwd) :/apps -w /apps alpine/ansible ansible-playbook" ansible-playbook -i inventory < follow command >
几个Dockerfile mysql client
1 2 3 4 FROM alpine:latestRUN echo https://mirrors.aliyun.com/alpine/latest-stable/main/ > /etc/apk/repositories RUN apk add --no-cache mysql-client
jdk 17(这里如果使用alpine的话,有报错,因此采用ubuntu镜像):
1 2 3 4 5 FROM ubuntu:20.04 ADD jdk-17_linux-x64_bin.tar.gz /root ENV JAVA_HOME /root/jdk-17 /ENV PATH $PATH:$JAVA_HOME/binENTRYPOINT ["java" , "-version" ]
go:
1 2 3 4 5 6 7 8 9 FROM golang:1.17 WORKDIR /go/src/app COPY . . RUN go get -d -v ./... RUN go install -v ./... CMD ["app" ]
Yearning:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 FROM alpine:3.12 LABEL maintainer="HenryYee-2020/11/16" EXPOSE 8000 COPY Yearning /opt/Yearning COPY conf.toml /opt/conf.toml RUN echo "http://mirrors.ustc.edu.cn/alpine/v3.12/main/" > /etc/apk/repositories && \ apk add --no-cache tzdata libc6-compat && \ ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \ echo "Asia/Shanghai" >> /etc/timezone && \ echo 'hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4' >> /etc/nsswitch.conf WORKDIR /opt CMD /opt/Yearning install && /opt/Yearning run