Skip to content

Instantly share code, notes, and snippets.

@mafernando
Last active August 11, 2016 16:23
Show Gist options
  • Save mafernando/2c584458051ee47f4600e68e0b6eea17 to your computer and use it in GitHub Desktop.
Save mafernando/2c584458051ee47f4600e68e0b6eea17 to your computer and use it in GitHub Desktop.
DockerNotes1

Access CentOS Shell from Docker Conatiner

# docker run -it -p 8000:8000 -p 8080:8080 mafernando/forgerock:latest /bin/bash
docker run -it centos:7.2.1511 /bin/bash
@mafernando
Copy link
Author

mafernando commented Jul 14, 2016

Build ForgeRock Dockerfile

docker build -t="mafernando/forgerock:latest" .

See https://hub.docker.com/r/mafernando/forgerock for image.

@mafernando
Copy link
Author

Run from last successful step

Michaels-MacBook-Pro-2:forgerock michael$ docker build -t="forgerock:latest" .
Sending build context to Docker daemon  80.9 kB
Step 1 : FROM centos:7.2.1511
 ---> 686672a1d0cc
Step 2 : MAINTAINER Michael Fernando
 ---> Using cache
 ---> 760807e27b93
Step 3 : RUN yum -y install   nginx   unzip
 ---> Using cache
 ---> 8c50adee4d9d
Step 4 : RUN yum clean all
 ---> Using cache
 ---> 63bb7f7dc0ce
Step 5 : COPY . /app
 ---> Using cache
 ---> 33a19b96eacc
Step 6 : WORKDIR /app
 ---> Using cache
 ---> 898371752f0d
Step 7 : RUN mkdir /srv/www
 ---> Using cache
 ---> 4cd3ea46eeda
Step 8 : RUN chmod +x /scripts/start.sh
 ---> Running in 9e5338bdd8c5
chmod: cannot access '/scripts/start.sh': No such file or directory
The command '/bin/sh -c chmod +x /scripts/start.sh' returned a non-zero code: 1
Michaels-MacBook-Pro-2:forgerock michael$ docker run -it 4cd3ea46eeda /bin/bash
[root@57b50eccd160 app]# 

@mafernando
Copy link
Author

mafernando commented Jul 31, 2016

Fix Error Opening Terminal: Unknown (In Container)

[root@64e9fc214364 app]# nano
Error opening terminal: unknown.
[root@64e9fc214364 app]# export TERM=xterm
[root@64e9fc214364 app]# nano

Single Line Append to /etc/hosts

echo "172.20.0.2    openam.example.com" >> /etc/hosts
echo "172.20.0.3    www.example.com" >> /etc/hosts

Linking Containers

# run web app in detached mode with start script
docker run -d -p 8000:8000 --name apache  mafernando/apache:latest /app/scripts/start.sh
docker run -d -p 8080:8080 --name openam  mafernando/openam:latest /app/scripts/start.sh

curl http://openam.example.com:8080/openam/XUI/#login
# <!DOCTYPE html>
# ...

# docker maps the web app to its localhost
docker port webapp 8000
#0.0.0.0:8000

# docker localhost mapped to docker machine ip

curl http://192.168.99.100:8000
# <html><body><h1>It works!</h1></body></html>

curl http://192.168.99.100:8080/openam/config/options.htm
# <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
# <html xmlns="http://www.w3.org/1999/xhtml">
# ...

docker network create app
# 5859be1135761c069993a3763d9df610488c2477fc01225ea02643803a10d560

docker network ls
# NETWORK ID          NAME                      DRIVER
# 5859be113576        app                       bridge              

docker run -d --net=app -p 8080:8080 --name openam mafernando/openam /app/scripts/start.sh
#ebe82d4b6b9b417600be770ccf5b5b7869697bc237ea4d02ca5ce72d2bfefc29

docker run -d --net=app -p 8000:8000 --name apache mafernando/apache /app/scripts/start.sh
# 6399bfe4f5830b3f7fe4b04ae769712a53f717071e706b3df180a93de08bbd7d

docker exec -it openam /bin/bash
[root@64e9fc214364 app]# ping apache.app
# PING apache.app (172.20.0.3) 56(84) bytes of data.
#64 bytes from apache.app (172.20.0.3): icmp_seq=1 ttl=64 time=0.038 ms
# ...
[root@64e9fc214364 app]# curl apache.app:8000
# <html><body><h1>It works!</h1></body></html>

docker exec -it apache /bin/bash
[root@dec2d891df92 httpd-2.2.31]# ping openam.app                                                                                                                                                                 
# PING openam (172.20.0.2) 56(84) bytes of data.
#64 bytes from openam.app (172.20.0.2): icmp_seq=1 ttl=64 time=0.105 ms
# ...

docker network inspect app
# [
#     {
#         "Name": "app",
#         "Id": "5859be1135761c069993a3763d9df610488c2477fc01225ea02643803a10d560",
#         "Scope": "local",
#         "Driver": "bridge",
#         "EnableIPv6": false,
#         "IPAM": {
#             "Driver": "default",
#             "Options": {},
#             "Config": [
#                 {
#                     "Subnet": "172.20.0.0/16",
#                     "Gateway": "172.20.0.1/16"
#                 }
#             ]
#         },
#         "Internal": false,
#         "Containers": {
#             "6399bfe4f5830b3f7fe4b04ae769712a53f717071e706b3df180a93de08bbd7d": {
#                 "Name": "apache",
#                 "EndpointID": "93f8207a641895e9d4ada4d7ef211cc585f956b03bbb12e7ca3a5c225b029d5c",
#                 "MacAddress": "02:42:ac:14:00:02",
#                 "IPv4Address": "172.20.0.2/16",
#                 "IPv6Address": ""
#             },
#             "ebe82d4b6b9b417600be770ccf5b5b7869697bc237ea4d02ca5ce72d2bfefc29": {
#                 "Name": "openam",
#                 "EndpointID": "47ef02392766f042d8385deb1b68168b63728a0dc7e51f20ad26f32b7262d4ad",
#                 "MacAddress": "02:42:ac:14:00:03",
#                 "IPv4Address": "172.20.0.3/16",
#                 "IPv6Address": ""
#             }
#         },
#         "Options": {},
#         "Labels": {}
#     }
# ]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment