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