Dockerfile创建全新镜像

Dockerfile创建全新镜像

使用docker build,从0开始构建一个新的镜像。如下面步骤基于centos7的基础镜像创建全新的镜像。

  1. 编写Dockerfile文件
# 基础的镜像,从DockerHub网站进行搜索
FROM centos:centos7 
MAINTAINER      Charley "[email protected]"
# RUN表示在容器内执行的命令
RUN     /bin/echo 'root:123456' |chpasswd 
RUN     useradd charley
RUN     /bin/echo 'charley:123456' |chpasswd
RUN     /bin/echo -e "LANG=\"zh-CN.UTF-8\"" >/etc/default/local
EXPOSE 22
EXPOSE 80
CMD     /usr/sbin/sshd -D

  1. 在Dockerfile文件同级目录运行docker build命令,进行构建
$ docker build -t charley/centos:centos7 .
[+] Building 152.8s (10/10) FINISHED    docker:default
 => [internal] load build definition from Dockerfile 0.0s
 => => transferring dockerfile: 306B 0.0s
 => [internal] load metadata for docker.io/library/centos:centos7  96.9s
 => [auth] library/centos:pull token for registry-1.docker.io  0.0s
 => [internal] load .dockerignore  0.0s
 => => transferring context: 2B  0.0s
 => [1/5] FROM docker.io/library/centos:centos7@sha256:be65f488b7764ad3638f236b7b515b3678369a5124c47b8d32916d6487418ea4  50.5s
 => => resolve docker.io/library/centos:centos7@sha256:be65f488b7764ad3638f236b7b515b3678369a5124c47b8d32916d6487418ea4 0.0s
 => => sha256:eeb6ee3f44bd0b5103bb561b4c16bcb82328cfe5809ab675bb17ab3a16c517c9 2.75kB / 2.75kB   0.0s
 => => sha256:2d473b07cdd5f0912cd6f1a703352c82b512407db6b05b43f2553732b55df3bc 76.10MB / 76.10MB  36.7s
 => => sha256:be65f488b7764ad3638f236b7b515b3678369a5124c47b8d32916d6487418ea4 1.20kB / 1.20kB   0.0s
 => => sha256:dead07b4d8ed7e29e98de0f4504d87e8880d4347859d839686a31da35a3b532f 529B / 529B   0.0s
 => => extracting sha256:2d473b07cdd5f0912cd6f1a703352c82b512407db6b05b43f2553732b55df3bc   12.6s
 => [2/5] RUN /BIN/ECHO 'root:123456' |chpasswd  1.7s
 => [3/5] RUN USERADD charley    1.5s
 => [4/5] RUN /BIN/ECHO 'charley:123456' |chpasswd    0.8s
 => [5/5] RUN /BIN/ECHO -e "LANG="zh-CN.UTF-8"" >/etc/default/local    1.0s
 => exporting to image      0.2s
 => => exporting layers    0.2s
 => => writing image sha256:1ce28aeb6c159baf225ef336968a04b033c7f1f90e988cc74e56eaf50ac8f2e0   0.0s
 => => naming to docker.io/charley/centos:centos7    0.0s

$ docker images
REPOSITORY       TAG       IMAGE ID       CREATED         SIZE
charley/centos   centos7   1ce28aeb6c15   8 minutes ago   204MB
charley/ubuntu   v1        f2135bec3c53   16 hours ago    125MB
test/ubuntu      v1        05443cf468db   20 hours ago    0B
ubuntu           latest    e34e831650c1   2 weeks ago     77.9MB
ubuntu           20.04     f78909c2b360   6 weeks ago     72.8MB
hello-world      latest    d2c94e258dcb   9 months ago    13.3kB
  1. 利用新的镜像创建容器
$ docker run -it 1ce28aeb6c15 charley/centos:centos7 /bin/bash