v0.0

v0.0

Sandbox

user@workstation:~$ sudo docker pull alpine
[sudo] password for user: 
Using default tag: latest
latest: Pulling from library/alpine
ff3a5c916c92: Pull complete 
Digest: sha256:7b848083f93822dd21b0a2f14a110bd99f6efb4b838d499df6d04a49d0debf8b
Status: Downloaded newer image for alpine:latest
user@workstation:~$
user@workstation:~$ sudo docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
friendlyhello       latest              23f8ef6f5ce3        7 hours ago         148MB
python              2.7-slim            52ad41c7aea4        2 weeks ago         139MB
ubuntu              latest              0458a4468cbc        5 weeks ago         112MB
alpine              latest              3fd9065eaf02        7 weeks ago         4.15MB
hello-world         latest              f2a91732366c        3 months ago        1.85kB
user@workstation:~$
user@workstation:~$ sudo docker run -p 4000:80 alpine
user@workstation:~$ sudo docker run -it alpine /bin/sh
/ # ls
bin    etc    lib    mnt    root   sbin   sys    usr
dev    home   media  proc   run    srv    tmp    var
/ #
/ # uname -a
Linux 8839e86faf94 4.13.0-36-generic #40~16.04.1-Ubuntu SMP Fri Feb 16 23:25:58 UTC 2018 x86_64 Linux
/ #
/ # ifconfig
eth0      Link encap:Ethernet  HWaddr 02:42:AC:11:00:02  
          inet addr:172.17.0.2  Bcast:172.17.255.255  Mask:255.255.0.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:41587 errors:0 dropped:0 overruns:0 frame:0
          TX packets:23257 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:64353520 (61.3 MiB)  TX bytes:1580471 (1.5 MiB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:4 errors:0 dropped:0 overruns:0 frame:0
          TX packets:4 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:200 (200.0 B)  TX bytes:200 (200.0 B)

/ #
/ # apk update
fetch http://dl-cdn.alpinelinux.org/alpine/v3.7/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.7/community/x86_64/APKINDEX.tar.gz
v3.7.0-106-gf61baacc21 [http://dl-cdn.alpinelinux.org/alpine/v3.7/main]
v3.7.0-105-g4b8b158c40 [http://dl-cdn.alpinelinux.org/alpine/v3.7/community]
OK: 9048 distinct packages available
/ # apk upgrade
Upgrading critical system libraries and apk-tools:
(1/1) Upgrading apk-tools (2.8.2-r0 -> 2.9.1-r0)
Executing busybox-1.27.2-r7.trigger
Continuing the upgrade transaction with new apk-tools:
fetch http://dl-cdn.alpinelinux.org/alpine/v3.7/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.7/community/x86_64/APKINDEX.tar.gz
(1/3) Upgrading musl (1.1.18-r2 -> 1.1.18-r3)
(2/3) Upgrading busybox (1.27.2-r7 -> 1.27.2-r8)
Executing busybox-1.27.2-r8.post-upgrade
(3/3) Upgrading musl-utils (1.1.18-r2 -> 1.1.18-r3)
Executing busybox-1.27.2-r8.trigger
OK: 197 MiB in 26 packages
/ #
/ # apk add openrc --no-cache
fetch http://dl-cdn.alpinelinux.org/alpine/v3.7/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.7/community/x86_64/APKINDEX.tar.gz
(1/1) Installing openrc (0.24.1-r4)
Executing openrc-0.24.1-r4.post-install
Executing busybox-1.27.2-r8.trigger
OK: 199 MiB in 27 packages
/ #
/ # apk add curl --no-cache
fetch http://dl-cdn.alpinelinux.org/alpine/v3.7/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.7/community/x86_64/APKINDEX.tar.gz
(1/4) Installing ca-certificates (20171114-r0)
(2/4) Installing libssh2 (1.8.0-r2)
(3/4) Installing libcurl (7.58.0-r1)
(4/4) Installing curl (7.58.0-r1)
Executing busybox-1.27.2-r8.trigger
Executing ca-certificates-20171114-r0.trigger
OK: 201 MiB in 31 packages
/ #
/ # apk add apache2
(1/6) Installing libuuid (2.31-r0)
(2/6) Installing apr (1.6.3-r0)
(3/6) Installing expat (2.2.5-r0)
(4/6) Installing apr-util (1.6.1-r1)
(5/6) Installing pcre (8.41-r1)
(6/6) Installing apache2 (2.4.29-r1)
Executing apache2-2.4.29-r1.pre-install
Executing busybox-1.27.2-r7.trigger
OK: 8 MiB in 17 packages
/ #
/ # rc-update add apache2
 * service apache2 added to runlevel sysinit
/ # rc-service apache2 status
 * WARNING: apache2 is already starting
/ #
/ # apk add mariadb mariadb-client
(1/9) Installing mariadb-common (10.1.28-r1)
(2/9) Installing libaio (0.3.110-r1)
(3/9) Installing ncurses-terminfo-base (6.0_p20171125-r0)
(4/9) Installing ncurses-terminfo (6.0_p20171125-r0)
(5/9) Installing ncurses-libs (6.0_p20171125-r0)
(6/9) Installing libgcc (6.4.0-r5)
(7/9) Installing libstdc++ (6.4.0-r5)
(8/9) Installing mariadb (10.1.28-r1)
Executing mariadb-10.1.28-r1.pre-install
(9/9) Installing mariadb-client (10.1.28-r1)
Executing busybox-1.27.2-r7.trigger
OK: 197 MiB in 26 packages
/ #
user@workstation:~$ sudo docker run -p 4000:80 alpine
user@workstation:~$ sudo docker run -it alpine /bin/sh
/ #

Get Mentored :: AlpineApache2 :: Dockerfile

user@workstation:~$ mkdir alpineapache2
user@workstation:~$ cd alpineapache2/
user@workstation:~/alpineapache2$ nano Dockerfile
FROM alpine:latest

MAINTAINER Abraham Arce <xe1gyq@gmail.com>

ENV TIMEZONE America/Mexico_City

RUN     apk update && \
        apk upgrade && \
        apk add openrc --no-cache && \
        apk add curl --no-cache && \
        apk add apache2 

EXPOSE 80 443

ENTRYPOINT  ["/bin/sh"]
user@workstation:~/alpineapache2$ sudo docker build -t alpineapache2 .
Sending build context to Docker daemon  2.048kB
Step 1/6 : FROM alpine:latest
 ---> 3fd9065eaf02
Step 2/6 : MAINTAINER Abraham Arce <xe1gyq@gmail.com>
 ---> Using cache
 ---> d104c8c28ac5
Step 3/6 : ENV TIMEZONE America/Mexico_City
 ---> Using cache
 ---> 777b73795c2b
Step 4/6 : RUN     apk update &&     apk upgrade &&     apk add openrc --no-cache &&     apk add curl --no-cache &&     apk add apache2
 ---> Running in 85c87ee29e6e
fetch http://dl-cdn.alpinelinux.org/alpine/v3.7/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.7/community/x86_64/APKINDEX.tar.gz
v3.7.0-106-gf61baacc21 [http://dl-cdn.alpinelinux.org/alpine/v3.7/main]
v3.7.0-105-g4b8b158c40 [http://dl-cdn.alpinelinux.org/alpine/v3.7/community]
OK: 9048 distinct packages available
Upgrading critical system libraries and apk-tools:
(1/1) Upgrading apk-tools (2.8.2-r0 -> 2.9.1-r0)
Executing busybox-1.27.2-r7.trigger
Continuing the upgrade transaction with new apk-tools:
fetch http://dl-cdn.alpinelinux.org/alpine/v3.7/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.7/community/x86_64/APKINDEX.tar.gz
(1/3) Upgrading musl (1.1.18-r2 -> 1.1.18-r3)
(2/3) Upgrading busybox (1.27.2-r7 -> 1.27.2-r8)
Executing busybox-1.27.2-r8.post-upgrade
(3/3) Upgrading musl-utils (1.1.18-r2 -> 1.1.18-r3)
Executing busybox-1.27.2-r8.trigger
OK: 4 MiB in 11 packages
fetch http://dl-cdn.alpinelinux.org/alpine/v3.7/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.7/community/x86_64/APKINDEX.tar.gz
(1/1) Installing openrc (0.24.1-r4)
Executing openrc-0.24.1-r4.post-install
Executing busybox-1.27.2-r8.trigger
OK: 6 MiB in 12 packages
fetch http://dl-cdn.alpinelinux.org/alpine/v3.7/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.7/community/x86_64/APKINDEX.tar.gz
(1/4) Installing ca-certificates (20171114-r0)
(2/4) Installing libssh2 (1.8.0-r2)
(3/4) Installing libcurl (7.58.0-r1)
(4/4) Installing curl (7.58.0-r1)
Executing busybox-1.27.2-r8.trigger
Executing ca-certificates-20171114-r0.trigger
OK: 8 MiB in 16 packages
(1/6) Installing libuuid (2.31-r0)
(2/6) Installing apr (1.6.3-r0)
(3/6) Installing expat (2.2.5-r0)
(4/6) Installing apr-util (1.6.1-r1)
(5/6) Installing pcre (8.41-r1)
(6/6) Installing apache2 (2.4.29-r1)
Executing apache2-2.4.29-r1.pre-install
Executing busybox-1.27.2-r8.trigger
OK: 11 MiB in 22 packages
Removing intermediate container 85c87ee29e6e
 ---> 5c100f731c01
Step 5/6 : EXPOSE 80 443
 ---> Running in e8be3126a71b
Removing intermediate container e8be3126a71b
 ---> 443b0331cf0f
Step 6/6 : ENTRYPOINT  ["/bin/sh"]
 ---> Running in a5b462e2f89e
Removing intermediate container a5b462e2f89e
 ---> bdf1f77e581c
Successfully built bdf1f77e581c
Successfully tagged alpineapache2:latest
user@workstation:~/alpineapache2$
user@workstation:~/alpineapache2$ sudo docker run -it alpineapache2 /bin/sh
/ #
/ # exec /usr/sbin/httpd -D FOREGROUND -f /etc/apache2/httpd.conf 
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 172.17.0.2. Set the 'ServerName' directive globally to suppress this message
user@workstation:~/alpineapache2$
user@workstation:~/alpineapache2$ sudo docker ps
[sudo] password for user: 
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                           NAMES
09c0b70ed9a8        alpineapache2       "/bin/sh"           55 seconds ago      Up 54 seconds       443/tcp, 0.0.0.0:4000->80/tcp   dazzling_austin
user@workstation:~/alpineapache2$
user@workstation:~/alpineapache2$ sudo docker inspect 09c0b70ed9a8
[
    {
        "Id": "09c0b70ed9a8117d0431d6bf0aa6fb7d02f8e0fc1c6df1677f64990c5c2b6e36",
        "Created": "2018-03-05T02:06:42.528418511Z",
        "Path": "/bin/sh",
        "Args": [],
        "State": {
            "Status": "running",
            "Running": true,
            "Paused": false,
            "Restarting": false,
            "OOMKilled": false,
            "Dead": false,
            "Pid": 18244,
            "ExitCode": 0,
            "Error": "",
            "StartedAt": "2018-03-05T02:06:42.956925463Z",
            "FinishedAt": "0001-01-01T00:00:00Z"
        },
        "Image": "sha256:443b0331cf0fe191808e802b8029c969084ecd2f1f1808fc9627f99936c73f4f",
        "ResolvConfPath": "/var/lib/docker/containers/09c0b70ed9a8117d0431d6bf0aa6fb7d02f8e0fc1c6df1677f64990c5c2b6e36/resolv.conf",
        "HostnamePath": "/var/lib/docker/containers/09c0b70ed9a8117d0431d6bf0aa6fb7d02f8e0fc1c6df1677f64990c5c2b6e36/hostname",
        "HostsPath": "/var/lib/docker/containers/09c0b70ed9a8117d0431d6bf0aa6fb7d02f8e0fc1c6df1677f64990c5c2b6e36/hosts",
        "LogPath": "/var/lib/docker/containers/09c0b70ed9a8117d0431d6bf0aa6fb7d02f8e0fc1c6df1677f64990c5c2b6e36/09c0b70ed9a8117d0431d6bf0aa6fb7d02f8e0fc1c6df1677f64990c5c2b6e36-json.log",
        "Name": "/dazzling_austin",
        "RestartCount": 0,
        "Driver": "overlay2",
        "Platform": "linux",
        "MountLabel": "",
        "ProcessLabel": "",
        "AppArmorProfile": "docker-default",
        "ExecIDs": null,
        "HostConfig": {
            "Binds": null,
            "ContainerIDFile": "",
            "LogConfig": {
                "Type": "json-file",
                "Config": {}
            },
            "NetworkMode": "default",
            "PortBindings": {
                "80/tcp": [
                    {
                        "HostIp": "",
                        "HostPort": "4000"
                    }
                ]
            },
            "RestartPolicy": {
                "Name": "no",
                "MaximumRetryCount": 0
            },
            "AutoRemove": false,
            "VolumeDriver": "",
            "VolumesFrom": null,
            "CapAdd": null,
            "CapDrop": null,
            "Dns": [],
            "DnsOptions": [],
            "DnsSearch": [],
            "ExtraHosts": null,
            "GroupAdd": null,
            "IpcMode": "shareable",
            "Cgroup": "",
            "Links": null,
            "OomScoreAdj": 0,
            "PidMode": "",
            "Privileged": false,
            "PublishAllPorts": false,
            "ReadonlyRootfs": false,
            "SecurityOpt": null,
            "UTSMode": "",
            "UsernsMode": "",
            "ShmSize": 67108864,
            "Runtime": "runc",
            "ConsoleSize": [
                0,
                0
            ],
            "Isolation": "",
            "CpuShares": 0,
            "Memory": 0,
            "NanoCpus": 0,
            "CgroupParent": "",
            "BlkioWeight": 0,
            "BlkioWeightDevice": [],
            "BlkioDeviceReadBps": null,
            "BlkioDeviceWriteBps": null,
            "BlkioDeviceReadIOps": null,
            "BlkioDeviceWriteIOps": null,
            "CpuPeriod": 0,
            "CpuQuota": 0,
            "CpuRealtimePeriod": 0,
            "CpuRealtimeRuntime": 0,
            "CpusetCpus": "",
            "CpusetMems": "",
            "Devices": [],
            "DeviceCgroupRules": null,
            "DiskQuota": 0,
            "KernelMemory": 0,
            "MemoryReservation": 0,
            "MemorySwap": 0,
            "MemorySwappiness": null,
            "OomKillDisable": false,
            "PidsLimit": 0,
            "Ulimits": null,
            "CpuCount": 0,
            "CpuPercent": 0,
            "IOMaximumIOps": 0,
            "IOMaximumBandwidth": 0
        },
        "GraphDriver": {
            "Data": {
                "LowerDir": "/var/lib/docker/overlay2/e225e76f8150bcb5f6d1ca8c9271193509b2e5ab4202476eca417097d618c1c5-init/diff:/var/lib/docker/overlay2/ef33caeddfd65f6600c5d6e389748c512a7bfb81fad75a26e276902f386fce69/diff:/var/lib/docker/overlay2/e65511ca98418d7577292f3baac3019bda769ca9c3b844161c208cf39fa4d26b/diff",
                "MergedDir": "/var/lib/docker/overlay2/e225e76f8150bcb5f6d1ca8c9271193509b2e5ab4202476eca417097d618c1c5/merged",
                "UpperDir": "/var/lib/docker/overlay2/e225e76f8150bcb5f6d1ca8c9271193509b2e5ab4202476eca417097d618c1c5/diff",
                "WorkDir": "/var/lib/docker/overlay2/e225e76f8150bcb5f6d1ca8c9271193509b2e5ab4202476eca417097d618c1c5/work"
            },
            "Name": "overlay2"
        },
        "Mounts": [],
        "Config": {
            "Hostname": "09c0b70ed9a8",
            "Domainname": "",
            "User": "",
            "AttachStdin": true,
            "AttachStdout": true,
            "AttachStderr": true,
            "ExposedPorts": {
                "443/tcp": {},
                "80/tcp": {}
            },
            "Tty": true,
            "OpenStdin": true,
            "StdinOnce": true,
            "Env": [
                "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
                "TIMEZONE=America/Mexico_City"
            ],
            "Cmd": [
                "/bin/sh"
            ],
            "Image": "alpineapache2",
            "Volumes": null,
            "WorkingDir": "",
            "Entrypoint": null,
            "OnBuild": null,
            "Labels": {}
        },
        "NetworkSettings": {
            "Bridge": "",
            "SandboxID": "5d6f022990270cdd51f2f5cc7be26cece6ab2e5d0d31b5cc7eef51fa7ce3322d",
            "HairpinMode": false,
            "LinkLocalIPv6Address": "",
            "LinkLocalIPv6PrefixLen": 0,
            "Ports": {
                "443/tcp": null,
                "80/tcp": [
                    {
                        "HostIp": "0.0.0.0",
                        "HostPort": "4000"
                    }
                ]
            },
            "SandboxKey": "/var/run/docker/netns/5d6f02299027",
            "SecondaryIPAddresses": null,
            "SecondaryIPv6Addresses": null,
            "EndpointID": "60a2d18a3555a37c3c190ea760cf3ff1b4704a2cd6203a053c4dbcf5294bac6e",
            "Gateway": "172.17.0.1",
            "GlobalIPv6Address": "",
            "GlobalIPv6PrefixLen": 0,
            "IPAddress": "172.17.0.2",
            "IPPrefixLen": 16,
            "IPv6Gateway": "",
            "MacAddress": "02:42:ac:11:00:02",
            "Networks": {
                "bridge": {
                    "IPAMConfig": null,
                    "Links": null,
                    "Aliases": null,
                    "NetworkID": "d73ae00947ded34d538f9e05cd7eca55c103f17569edd727e7ec5feef84c3f8d",
                    "EndpointID": "60a2d18a3555a37c3c190ea760cf3ff1b4704a2cd6203a053c4dbcf5294bac6e",
                    "Gateway": "172.17.0.1",
                    "IPAddress": "172.17.0.2",
                    "IPPrefixLen": 16,
                    "IPv6Gateway": "",
                    "GlobalIPv6Address": "",
                    "GlobalIPv6PrefixLen": 0,
                    "MacAddress": "02:42:ac:11:00:02",
                    "DriverOpts": null
                }
            }
        }
    }
]
user@workstation:~/alpineapache2$
user@workstation:~/alpineapache2$ sudo docker inspect 09c0b70ed9a8  | grep IPAddress | cut -d '"' -f 4
172.17.0.2
172.17.0.2
user@workstation:~/alpineapache2$ sudo docker port 09c0b70ed9a8 80 | cut -d ":" -f2
4000
user@workstation:~/alpineapache2$

Last updated