制作docker镜像-node

制作node基础镜像

  • 1.拉取ubuntu

    1
    docker pull ubuntu:16.04
  • 2.执行ubuntu

    1
    docker run -ti --name ubuntu ubuntu:16.04
  • 3.安装node环境

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    # 源码安装node

    # 1.从nodejs.org上下载
    wget https://nodejs.org/dist/v10.9.0/node-v10.9.0.tar.gz

    # 2.从宿主机拷贝到容器里
    docker cp node-v10.9.0.tar.gz 4e481178cd60:/root/

    # 3.进入容器内
    docker exec -it ubuntu bash

    # 4.解压node-v10.9.0.tar.gz
    tar zxvf node-v10.9.0.tar.gz

    # 5.进入node-v10.9.0,执行configure,执行之前要安装一些依赖
    cd node-v10.9.0
    apt update
    apt install python
    apt install g++
    ./configure

    # 6.安装,这个过程有点慢
    make && make install

    # 7.测试node是否安装成功
    node -v

    # 8.注意,这里要记得更新时区.否则时间对不上

    # 8.1安装tzdata
    apt install tzdata

    # 8.2执行tzdata
    dpkg-reconfigure tzdata

    # 8.3 地区选择(Asia)

    # 8.4 时区选择(Shanghai)
    echo "Asia/Shanghai"
  • 4.压缩容器

    1
    2
    3
    4
    5
    6
    # 卸载掉多余的依赖.以下命令容器内执行
    apt remove python // 删除 Python
    apt remove g++ // 删除 g++
    apt autoremove // apt清理
    rm -rf node-v10.9.0 // 删除多余文件
    rm -rf /var/lib/apt/lists/* // 清理掉apt安装的文件
  • 5.打包镜像

    1
    2
    3
    # 4e481178cd60 --> containerId
    # source/node:v1 --> 自定义容器名称
    docker commit -a 'auth name' -m 'commit info' 4e481178cd60 source/node:v1
  • 6.推送镜像

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    # 登录
    docker login -u username docker.io.com

    # 生成tag
    docker tag source/node:v1 tag/node:v1

    # 推送镜像
    docker push tag/node:v1

    # 推送成功之后,拉取测试一下
    docker pull source/node:v1

    # 运行容器
    docker run -itd --name node source/node:v1

    # 进入容器内
    docker exec -it node bash