Docker Install

Table of contents

  1. Docker 安装
  2. 使用 Docker 仓库进行安装
  3. docker compose

Docker 安装

使用 Docker 仓库进行安装

1、安装仓库

sudo yum install -y yum-utils \
  device-mapper-persistent-data \
  lvm2

2、然后添加源:

使用官方源地址(在国外)

sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

可以选择国内的一些源地址:

阿里云源

sudo yum-config-manager \
    --add-repo \
    http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

清华大学源

$ sudo yum-config-manager \
    --add-repo \
    https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo

3、安装

默认按照stable版本

sudo yum install docker-ce docker-ce-cli containerd.io -y

也可以指定版本安装。

a.先查看版本:

[root@VM-0-3-centos ~]# yum list docker-ce --showduplicates | sort -r
Repository epel is listed more than once in the configuration
 * remi-safe: ftp.riken.jp
 * remi-php74: ftp.riken.jp
Loading mirror speeds from cached hostfile
Loaded plugins: fastestmirror, langpacks
Installed Packages
docker-ce.x86_64            3:20.10.9-3.el7                    docker-ce-stable 
docker-ce.x86_64            3:20.10.8-3.el7                    docker-ce-stable 
docker-ce.x86_64            3:20.10.7-3.el7                    docker-ce-stable 
docker-ce.x86_64            3:20.10.6-3.el7                    docker-ce-stable 
docker-ce.x86_64            3:20.10.5-3.el7                    docker-ce-stable 
docker-ce.x86_64            3:20.10.4-3.el7                    docker-ce-stable 
docker-ce.x86_64            3:20.10.3-3.el7                    docker-ce-stable 
docker-ce.x86_64            3:20.10.2-3.el7                    docker-ce-stable 
docker-ce.x86_64            3:20.10.16-3.el7                   docker-ce-stable 
docker-ce.x86_64            3:20.10.16-3.el7                   @docker-ce-stable

b、指定版本。

通过其完整的软件包名称安装特定版本,该软件包名称是软件包名称(docker-ce)加上版本字符串(第二列),从第一个冒号(:)一直到第一个连字符,并用连字符(-)分隔。 例如:docker-ce-18.09.1。

sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io

4、启动 Docker

sudo systemctl start docker

5、验证

docker version
vi /etc/docker/daemon.json
{
 "data-root":"/var/lib/docker",
 "registry-mirrors" : [
   "https://mirror.ccs.tencentyun.com",
   "http://registry.docker-cn.com",
   "http://docker.mirrors.ustc.edu.cn",
   "http://hub-mirror.c.163.com"
 ],
 "insecure-registries" : [
   "registry.docker-cn.com",
   "docker.mirrors.ustc.edu.cn"
 ],
 "debug" : false,
 "experimental": false
}

6、卸载

systemctl stop docker
yum -y remove docker-ce
rm -rf /var/lib/docker

docker compose

继续安装docker compose

yum install  docker-compose-plugin

验证

[root@VM-0-3-centos ~]# docker compose version
Docker Compose version v2.5.0

自己打包镜像 jdk 镜像

docker build -t small/alpinejdk8.tar .

Dockerfile 文件:

# using alpine-glibc instead of alpine  is mainly because JDK relies on glibc
FROM alpine:3.17

LABEL maintainer="small-rose@qq.com"

ENV TZ=Asia/Shanghai

WORKDIR /app


# A streamlined jre
ADD  jdk-8u202-linux-x64.tar.gz  /usr/local/


# Alpine linux为了精简本身并没有安装太多的常用软件,apk类似于ubuntu的apt-get,
# 用来安装一些常用软V件,其语法如下:apk add bash wget curl git make vim docker
# wget是linux下的ftp/http传输工具,没安装会报错“/bin/sh:   wget: not found”,网上例子少安装wget
# ca-certificates证书服务,是安装glibc前置依赖
#******************更换Alpine源为mirrors.ustc.edu.cn******************
RUN ln -snf /usr/share/zoneinfo/${TZ} /etc/localtime && echo ${TZ} > /etc/timezone  \
	&& echo http://mirrors.aliyun.com/alpine/v3.17/main/ > /etc/apk/repositories && \
    echo http://mirrors.aliyun.com/alpine/v3.17/community/ >> /etc/apk/repositories \
	&& apk update && apk upgrade \
	&& apk --no-cache add libstdc++ ca-certificates bash wget \
    && wget -q -O /etc/apk/keys/sgerrand.rsa.pub https://alpine-pkgs.sgerrand.com/sgerrand.rsa.pub \
    && wget https://github.com/sgerrand/alpine-pkg-glibc/releases/download/2.35-r0/glibc-2.35-r0.apk \
    && wget https://github.com/sgerrand/alpine-pkg-glibc/releases/download/2.35-r0/glibc-bin-2.35-r0.apk \
    && wget https://github.com/sgerrand/alpine-pkg-glibc/releases/download/2.35-r0/glibc-i18n-2.35-r0.apk \
    && apk add --force-overwrite glibc-2.35-r0.apk && apk add glibc-bin-2.35-r0.apk && apk add glibc-i18n-2.35-r0.apk \
    && rm -rf /var/cache/apk/* glibc-2.35-r0.apk glibc-bin-2.35-r0.apk glibc-i18n-2.35-r0.apk \
    && rm -rf  /usr/local/jdk-8u202-linux-x64.tar.gz



# 配置环境变量
ENV JAVA_HOME /usr/local/jdk1.8.0_202
ENV JRE_HOME /usr/local/jdk1.8.0_202/jre

ENV CLASSPATH .:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

ENV PATH $JAVA_HOME/bin:$JRE_HOME/bin:$PATH

#容器启动时需要执行的命令
#CMD ["java","-version"]