[root@dockerlab ~]# docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu latest fd1d8f58e8ae 13 days ago 77.9MB
httpd 2.4 59bcd61b45fd 3 weeks ago 167MB
httpd latest 59bcd61b45fd 3 weeks ago 167MB
centos latest 5d0da3dc9764 2 years ago 231MB
[root@dockerlab ~]#
[root@dockerlab ~]# docker image inspect httpd
[
{
"Id": "sha256:59bcd61b45fd94a7f19314d259effc3da8b42a0e157263af2246a22c07e96595",
"RepoTags": [
"httpd:2.4",
"httpd:latest"
],
"RepoDigests": [
"httpd@sha256:5ee9ec089bab71ffcb85734e2f7018171bcb2d6707f402779d3f5b28190bb1af"
],
"Parent": "",
"Comment": "buildkit.dockerfile.v0",
"Created": "2024-01-16T18:41:26Z",
"Container": "",
"ContainerConfig": {
"Hostname": "",
"Domainname": "",
"User": "",
"AttachStdin": false,
"AttachStdout": false,
"AttachStderr": false,
"Tty": false,
"OpenStdin": false,
"StdinOnce": false,
"Env": null,
"Cmd": null,
"Image": "",
"Volumes": null,
"WorkingDir": "",
"Entrypoint": null,
"OnBuild": null,
"Labels": null
},
"DockerVersion": "",
"Author": "",
"Config": {
"Hostname": "",
"Domainname": "",
"User": "",
"AttachStdin": false,
"AttachStdout": false,
"AttachStderr": false,
"ExposedPorts": {
"80/tcp": {}
},
"Tty": false,
================================
[root@dockerlab ~]# docker container run --name mycont -it httpd:latest bash
root@aa831b8cebcb:/usr/local/apache2#
root@aa831b8cebcb:/usr/local/apache2# whoami
root
root@aa831b8cebcb:/usr/local/apache2# pwd
/usr/local/apache2
root@aa831b8cebcb:/usr/local/apache2# ps aux
bash: ps: command not found
root@aa831b8cebcb:/usr/local/apache2# which httpd
/usr/local/apache2/bin/httpd
root@aa831b8cebcb:/usr/local/apache2# which httpd-foreground
/usr/local/bin/httpd-foreground
root@aa831b8cebcb:/usr/local/apache2# ls -ltr /usr/local/apache2/bin/httpd
-rwxr-xr-x. 1 root root 2308672 Jan 31 23:56 /usr/local/apache2/bin/httpd
root@aa831b8cebcb:/usr/local/apache2# ls -ltr /usr/local/bin/httpd-foreground
-rwxr-xr-x. 1 root root 138 Jan 31 23:54 /usr/local/bin/httpd-foreground
root@aa831b8cebcb:/usr/local/apache2#
root@aa831b8cebcb:/usr/local/apache2# httpd -v
Server version: Apache/2.4.58 (Unix)
Server built: Jan 31 2024 23:55:14
root@aa831b8cebcb:/usr/local/apache2# httpd -V
Server version: Apache/2.4.58 (Unix)
Server built: Jan 31 2024 23:55:14
Server's Module Magic Number: 20120211:129
Server loaded: APR 1.7.2, APR-UTIL 1.6.3, PCRE 8.39 2016-06-14
Compiled using: APR 1.7.2, APR-UTIL 1.6.3, PCRE 8.39 2016-06-14
Architecture: 64-bit
Server MPM: event
threaded: yes (fixed thread count)
forked: yes (variable process count)
Server compiled with....
-D APR_HAS_SENDFILE
-D APR_HAS_MMAP
-D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
-D APR_USE_PROC_PTHREAD_SERIALIZE
-D APR_USE_PTHREAD_SERIALIZE
-D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
-D APR_HAS_OTHER_CHILD
-D AP_HAVE_RELIABLE_PIPED_LOGS
-D DYNAMIC_MODULE_LIMIT=256
-D HTTPD_ROOT="/usr/local/apache2"
-D SUEXEC_BIN="/usr/local/apache2/bin/suexec"
-D DEFAULT_PIDLOG="logs/httpd.pid"
-D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
-D DEFAULT_ERRORLOG="logs/error_log"
-D AP_TYPES_CONFIG_FILE="conf/mime.types"
-D SERVER_CONFIG_FILE="conf/httpd.conf"
root@aa831b8cebcb:/usr/local/apache2#
root@aa831b8cebcb:/usr/local/apache2# cd /usr/local/apache2
root@aa831b8cebcb:/usr/local/apache2# ls
bin build cgi-bin conf error htdocs icons include logs modules
root@aa831b8cebcb:/usr/local/apache2# cd htdocs/
root@aa831b8cebcb:/usr/local/apache2/htdocs# ll
bash: ll: command not found
root@aa831b8cebcb:/usr/local/apache2/htdocs# ls
index.html
root@aa831b8cebcb:/usr/local/apache2/htdocs# cat index.html
It works!
root@aa831b8cebcb:/usr/local/apache2/htdocs# pwd
/usr/local/apache2/htdocs
root@aa831b8cebcb:/usr/local/apache2/htdocs# ls -l /usr/local/apache2
total 80
drwxr-xr-x. 2 root root 16384 Jan 31 23:56 bin
drwxr-xr-x. 2 root root 167 Jan 31 23:56 build
drwxr-xr-x. 2 root root 78 Jan 31 23:56 cgi-bin
drwxr-xr-x. 4 root root 84 Jan 31 23:56 conf
drwxr-xr-x. 3 root root 16384 Jan 31 23:56 error
drwxr-xr-x. 2 root root 24 Jan 31 23:56 htdocs
drwxr-xr-x. 3 root root 16384 Jan 31 23:56 icons
drwxr-xr-x. 2 root root 16384 Jan 31 23:56 include
drwxr-xr-x. 2 root root 6 Jan 31 23:56 logs
drwxr-xr-x. 2 root root 16384 Jan 31 23:56 modules
root@aa831b8cebcb:/usr/local/apache2/htdocs#
root@aa831b8cebcb:/usr/local/apache2/htdocs#
root@aa831b8cebcb:/usr/local/apache2/htdocs# cd ~
root@aa831b8cebcb:~# cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 12 (bookworm)"
NAME="Debian GNU/Linux"
VERSION_ID="12"
VERSION="12 (bookworm)"
VERSION_CODENAME=bookworm
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"
root@aa831b8cebcb:~#
root@aa831b8cebcb:~# ps aux
bash: ps: command not found
root@aa831b8cebcb:~# apt-get update
Get:1 http://deb.debian.org/debian bookworm InRelease [151 kB]
Get:2 http://deb.debian.org/debian bookworm-updates InRelease [52.1 kB]
Get:3 http://deb.debian.org/debian-security bookworm-security InRelease [48.0 kB]
Get:4 http://deb.debian.org/debian bookworm/main amd64 Packages [8787 kB]
Get:5 http://deb.debian.org/debian bookworm-updates/main amd64 Packages [12.7 kB]
Get:6 http://deb.debian.org/debian-security bookworm-security/main amd64 Packages [137 kB]
Fetched 9188 kB in 1s (6266 kB/s)
Reading package lists... Done
root@aa831b8cebcb:~# apt-get install procps
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
libgpm2 libncursesw6 libproc2-0 psmisc
Suggested packages:
gpm
The following NEW packages will be installed:
libgpm2 libncursesw6 libproc2-0 procps psmisc
0 upgraded, 5 newly installed, 0 to remove and 0 not upgraded.
Need to get 1178 kB of archives.
After this operation, 3778 kB of additional disk space will be used.
Do you want to continue? [Y/n] Y
Get:1 http://deb.debian.org/debian bookworm/main amd64 libncursesw6 amd64 6.4-4 [134 kB]
Get:2 http://deb.debian.org/debian bookworm/main amd64 libproc2-0 amd64 2:4.0.2-3 [62.8 kB]
Get:3 http://deb.debian.org/debian bookworm/main amd64 procps amd64 2:4.0.2-3 [709 kB]
Get:4 http://deb.debian.org/debian bookworm/main amd64 libgpm2 amd64 1.20.7-10+b1 [14.2 kB]
Get:5 http://deb.debian.org/debian bookworm/main amd64 psmisc amd64 23.6-1 [259 kB]
Fetched 1178 kB in 0s (34.7 MB/s)
debconf: delaying package configuration, since apt-utils is not installed
Selecting previously unselected package libncursesw6:amd64.
(Reading database ... 8502 files and directories currently installed.)
Preparing to unpack .../libncursesw6_6.4-4_amd64.deb ...
Unpacking libncursesw6:amd64 (6.4-4) ...
Selecting previously unselected package libproc2-0:amd64.
Preparing to unpack .../libproc2-0_2%3a4.0.2-3_amd64.deb ...
Unpacking libproc2-0:amd64 (2:4.0.2-3) ...
Selecting previously unselected package procps.
Preparing to unpack .../procps_2%3a4.0.2-3_amd64.deb ...
Unpacking procps (2:4.0.2-3) ...
Selecting previously unselected package libgpm2:amd64.
Preparing to unpack .../libgpm2_1.20.7-10+b1_amd64.deb ...
Unpacking libgpm2:amd64 (1.20.7-10+b1) ...
Selecting previously unselected package psmisc.
Preparing to unpack .../psmisc_23.6-1_amd64.deb ...
Unpacking psmisc (23.6-1) ...
Setting up libgpm2:amd64 (1.20.7-10+b1) ...
Setting up psmisc (23.6-1) ...
Setting up libproc2-0:amd64 (2:4.0.2-3) ...
Setting up libncursesw6:amd64 (6.4-4) ...
Setting up procps (2:4.0.2-3) ...
Processing triggers for libc-bin (2.36-9+deb12u4) .
=========
root@aa831b8cebcb:~# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.3 4188 3528 pts/0 Ss 17:44 0:00 bash
root 205 0.0 0.4 8088 3964 pts/0 R+ 17:51 0:00 ps aux
root@aa831b8cebcb:~#
root@aa831b8cebcb:~# ip a
1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
4: eth0@if5: mtu 1500 qdisc noqueue state UP group default
link/ether 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff:ff link-netnsid 0
inet 172.17.0.2/16 brd 172.17.255.255 scope global eth0
valid_lft forever preferred_lft forever
root@aa831b8cebcb:~#
========================================
[root@dockerlab ~]# docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
[root@dockerlab ~]# docker container ls -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
aa831b8cebcb httpd:latest "bash" 11 minutes ago Exited (127) 9 seconds ago mycont
[root@dockerlab ~]#
[root@dockerlab ~]# docker container rm aa831b8cebcb
aa831b8cebcb
[root@dockerlab ~]# docker container ls -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
[root@dockerlab ~]#
===========================================
[root@dockerlab ~]# docker container run --name webserver httpd:latest
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
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
[Wed Feb 07 17:57:56.413128 2024] [mpm_event:notice] [pid 1:tid 139968043865984] AH00489: Apache/2.4.58 (Unix) configured -- resuming normal operations
[Wed Feb 07 17:57:56.413255 2024] [core:notice] [pid 1:tid 139968043865984] AH00094: Command line: 'httpd -D FOREGROUND'
^C[Wed Feb 07 17:58:13.367197 2024] [mpm_event:notice] [pid 1:tid 139968043865984] AH00491: caught SIGTERM, shutting down
[root@dockerlab ~]#
[root@dockerlab ~]#
[root@dockerlab ~]#
[root@dockerlab ~]#
[root@dockerlab ~]# docker container run --name webserver -d httpd:latest
docker: Error response from daemon: Conflict. The container name "/webserver" is already in use by container "b15b0d31a89bc49f52190283743c90f757c92105287441940fa4107289431fe0". You have to remove (or rename) that container to be able to reuse that name.
See 'docker run --help'.
[root@dockerlab ~]#
[root@dockerlab ~]# docker container run --name webservertest -d httpd:latest
560f36ccceda52f2d6b2ed7633dccb35e04443ab7ee59dccd42ca3871973db2b
[root@dockerlab ~]#
==============
[root@dockerlab ~]# docker container inspect 560f36ccceda
[
{
"Id": "560f36ccceda52f2d6b2ed7633dccb35e04443ab7ee59dccd42ca3871973db2b",
"Created": "2024-02-07T17:58:34.772908466Z",
"Path": "httpd-foreground",
"Args": [],
"State": {
"Stat
===
"SandboxKey": "/var/run/docker/netns/80468edcb6dc",
"SecondaryIPAddresses": null,
"SecondaryIPv6Addresses": null,
"EndpointID": "41c5f72331aa42fa4c15f50b5c3340559c0ebc64fdcc38252d9c61c061ecc0c6",
"Gateway": "172.17.0.1",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"IPAddress": "172.17.0.2",
"IPPrefixLen": 16,
"IPv6Gateway": "",
"MacAddress": "02:42:ac:11:00:02",
[root@dockerlab ~]# docker container inspect 560f36ccceda | grep 172
"Gateway": "172.17.0.1",
"IPAddress": "172.17.0.2",
"Gateway": "172.17.0.1",
"IPAddress": "172.17.0.2",
[root@dockerlab ~]#
[root@dockerlab ~]# curl http://172.17.0.2
It works!
[root@dockerlab ~]#
======
[root@dockerlab ~]# docker container exec webservertest cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 12 (bookworm)"
NAME="Debian GNU/Linux"
VERSION_ID="12"
VERSION="12 (bookworm)"
VERSION_CODENAME=bookworm
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"
[root@dockerlab ~]#
=====
[root@dockerlab ~]# docker container exec webservertest ip a
OCI runtime exec failed: exec failed: unable to start container process: exec: "ip": executable file not found in $PATH: unknown
[root@dockerlab ~]#
root@560f36ccceda:/usr/local/apache2# cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 12 (bookworm)"
NAME="Debian GNU/Linux"
VERSION_ID="12"
VERSION="12 (bookworm)"
VERSION_CODENAME=bookworm
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"
root@560f36ccceda:/usr/local/apache2#
root@560f36ccceda:/usr/local/apache2# which ip
root@560f36ccceda:/usr/local/apache2# which ps
root@560f36ccceda:/usr/local/apache2# apt update
Get:1 http://deb.debian.org/debian bookworm InRelease [151 kB]
Get:2 http://deb.debian.org/debian bookworm-updates InRelease [52.1 kB]
Get:3 http://deb.debian.org/debian-security bookworm-security InRelease [48.0 kB]
Get:4 http://deb.debian.org/debian bookworm/main amd64 Packages [8787 kB]
Get:5 http://deb.debian.org/debian bookworm-updates/main amd64 Packages [12.7 kB]
Get:6 http://deb.debian.org/debian-security bookworm-security/main amd64 Packages [137 kB]
Fetched 9188 kB in 2s (6055 kB/s)
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
All packages are up to date.
root@560f36ccceda:/usr/local/apache2
================
root@560f36ccceda:/usr/local/apache2# ip a
1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
8: eth0@if9: mtu 1500 qdisc noqueue state UP group default
link/ether 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff:ff link-netnsid 0
inet 172.17.0.2/16 brd 172.17.255.255 scope global eth0
valid_lft forever preferred_lft forever
root@560f36ccceda:/usr/local/apache2#
root@560f36ccceda:/usr/local/apache2#
root@560f36ccceda:/usr/local/apache2# which ip
/usr/sbin/ip
root@560f36ccceda:/usr/local/apache2# which ps
/usr/bin/ps
root@560f36ccceda:/usr/local/apache2# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.4 5860 4648 ? Ss 17:58 0:00 httpd -DFOREGROUND
www-data 8 0.0 0.4 807160 4152 ? Sl 17:58 0:00 httpd -DFOREGROUND
www-data 9 0.0 0.3 807096 3700 ? Sl 17:58 0:00 httpd -DFOREGROUND
www-data 10 0.0 0.3 807096 3700 ? Sl 17:58 0:00 httpd -DFOREGROUND
root 103 0.0 0.3 4188 3464 pts/0 Ss 18:05 0:00 bash
root 443 0.0 0.4 8088 3948 pts/0 R+ 18:08 0:00 ps aux
root@560f36ccceda:/usr/local/apache2#
============
root@560f36ccceda:/usr/local/apache2# cd htdocs/
root@560f36ccceda:/usr/local/apache2/htdocs# ls
index.html
root@560f36ccceda:/usr/local/apache2/htdocs# cat index.html
It works!
root@560f36ccceda:/usr/local/apache2/htdocs#
[root@dockerlab ~]# docker container exec webservertest ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.4 5860 4648 ? Ss 17:58 0:00 httpd -DFOREGROUND
www-data 8 0.0 0.4 807160 4164 ? Sl 17:58 0:00 httpd -DFOREGROUND
www-data 9 0.0 0.3 807096 3700 ? Sl 17:58 0:00 httpd -DFOREGROUND
www-data 10 0.0 0.3 807096 3700 ? Sl 17:58 0:00 httpd -DFOREGROUND
root 449 50.0 0.4 8088 3928 ? Rs 18:11 0:00 ps aux
[root@dockerlab ~]#
==============
[root@dockerlab ~]# docker container exec webservertest ip a
1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
8: eth0@if9: mtu 1500 qdisc noqueue state UP group default
link/ether 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff:ff link-netnsid 0
inet 172.17.0.2/16 brd 172.17.255.255 scope global eth0
valid_lft forever preferred_lft forever
[root@dockerlab ~]#
[root@dockerlab ~]# docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
560f36ccceda httpd:latest "httpd-foreground" 16 minutes ago Up 16 minutes 80/tcp webservertest
[root@dockerlab ~]#
[root@dockerlab ~]#
[root@dockerlab ~]# docker container stop 560f36ccceda
560f36ccceda
[root@dockerlab ~]# docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
[root@dockerlab ~]#
===========
[root@dockerlab ~]# docker container run --name webserver1 -d -p 8080:80 httpd:latest
97da42bc810ddc1b6a93842e789fce6dcec947c3af6451efe4d338845336f5b7
[root@dockerlab ~]# docker container ls -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
97da42bc810d httpd:latest "httpd-foreground" 11 seconds ago Up 10 seconds 0.0.0.0:8080->80/tcp, :::8080->80/tcp webserver1
[root@dockerlab ~]#
[root@dockerlab ~]# docker container run --name webserver1 -d -p 8080:80 httpd:latest
97da42bc810ddc1b6a93842e789fce6dcec947c3af6451efe4d338845336f5b7
[root@dockerlab ~]# docker container ls -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
97da42bc810d httpd:latest "httpd-foreground" 11 seconds ago Up 10 seconds 0.0.0.0:8080->80/tcp, :::8080->80/tcp webserver1
[root@dockerlab ~]#
[root@dockerlab ~]# docker container run --name webserver2 -d -p 8081:80 httpd:latest
48c3aac7f409b62dbded215e0d2237b65836d1648654d88f44638d77ed3b4c55
[root@dockerlab ~]# docker container run --name webserver3 -d -p 8082:80 httpd:latest
5cbdc204eb295182d89ab9526ad593d1997470512d45955468451fe49dc13c79
[root@dockerlab ~]#
[root@dockerlab ~]# docker container ls -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5cbdc204eb29 httpd:latest "httpd-foreground" 5 seconds ago Up 3 seconds 0.0.0.0:8082->80/tcp, :::8082->80/tcp webserver3
48c3aac7f409 httpd:latest "httpd-foreground" 18 seconds ago Up 16 seconds 0.0.0.0:8081->80/tcp, :::8081->80/tcp webserver2
97da42bc810d httpd:latest "httpd-foreground" About a minute ago Up About a minute 0.0.0.0:8080->80/tcp, :::8080->80/tcp webserver1
[root@dockerlab ~]#
[root@dockerlab ~]# curl http://172.17.0.2
It works!
[root@dockerlab ~]#
[root@dockerlab ~]# curl http://172.17.0.3
It works!
[root@dockerlab ~]#