从零开始构建docker基础镜像的方法

2020-06-17 07:16:49易采站长站整理

[root@bogon ubuntu-16.04]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
[root@bogon ubuntu-16.04]# docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
[root@bogon ubuntu-16.04]# pwd
/home/ml/ubuntu-16.04
[root@bogon ubuntu-16.04]# ll -h
total 40M
-rw-rw-r--. 1 ml ml 2.8K Dec 19 12:37 Dockerfile
-rw-rw-r--. 1 ml ml 40M Dec 19 12:39 ubuntu-xenial-core-cloudimg-amd64-root.tar.gz
[root@bogon ubuntu-16.04]#
[root@bogon ubuntu-16.04]# docker build -t ubuntu:16.04 .
Sending build context to Docker daemon 41.94 MB
Sending build context to Docker daemon
Step 0 : FROM scratch
--->
Step 1 : ADD ubuntu-xenial-core-cloudimg-amd64-root.tar.gz /
---> 537c2f6dd023
Removing intermediate container dee7679a7ee2
Step 2 : RUN set -xe && echo '#!/bin/sh' > /usr/sbin/policy-rc.d &&
echo 'exit 101' >> /usr/sbin/policy-rc.d && chmod +x /usr/sbin/policy-rc.d &&
dpkg-divert --local --rename --add /sbin/initctl && cp -a /usr/sbin/policy-rc.d /sbin/initctl && sed -i 's/^exit.*/exit 0/' /sbin/initctl &&
...---> Running in 41d719b68981
+ echo #!/bin/sh
+ echo exit 101
+ chmod +x /usr/sbin/policy-rc.d
+ dpkg-divert --local --rename --add /sbin/initctl
Adding 'local diversion of /sbin/initctl to /sbin/initctl.distrib'
+ cp -a /usr/sbin/policy-rc.d /sbin/initctl
+ sed -i s/^exit.*/exit 0/ /sbin/initctl
+ echo force-unsafe-io
+ echo DPkg::Post-Invoke { "rm -f /var/cache/apt/archives/*.deb /var/cache/apt/archives/partial/*.deb /var/cache/apt/*.bin || true"; };
+ echo APT::Update::Post-Invoke { "rm -f /var/cache/apt/archives/*.deb /var/cache/apt/archives/partial/*.deb /var/cache/apt/*.bin || true"; };
+ echo Dir::Cache::pkgcache ""; Dir::Cache::srcpkgcache "";
+ echo Acquire::Languages "none";
+ echo Acquire::GzipIndexes "true"; Acquire::CompressionTypes::Order:: "gz";
+ echo Apt::AutoRemove::SuggestsImportant "false";
---> c49bdbf61888
Removing intermediate container 41d719b68981
Step 3 : RUN rm -rf /var/lib/apt/lists/*
---> Running in 6389964016a2
---> 4508181f7442
Removing intermediate container 6389964016a2
Step 4 : RUN sed -i 's/^#s*(deb.*universe)$/1/g' /etc/apt/sources.list
---> Running in cbed2b28c988
---> 8eed06df8f19
Removing intermediate container cbed2b28c988
Step 5 : RUN mkdir -p /run/systemd && echo 'docker' > /run/systemd/container
---> Running in aff40dbc6e05
---> 19c96e7912a4
Removing intermediate container aff40dbc6e05
Step 6 : CMD /bin/bash
---> Running in 2469ee9d7251
---> 77e565a65647
Removing intermediate container 2469ee9d7251
Successfully built 77e565a65647
[root@bogon ubuntu-16.04]# docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
ubuntu 16.04 77e565a65647 33 seconds ago 110.5 MB