Docker
install docker on fedora 21
Step 1: Install Docker on Fedora 21
- As a matter of best practice, we’ll update our packages:
yum update -y
- Let’s install Docker by installing the docker-io package:
yum -y install docker-io
- Once the installation completes, we’ll need to start the Docker daemon:
systemctl start docker
- And finally, and optionally, let’s configure Docker to start when the server boots:
systemctl enable docker
- Step 2: Download a Docker Container
docker pull marina/fedora21-i386
Step 3: Run a Docker Container basic fedora container with a bash shell, we just run one command. docker run will run a command in a new container, -i attaches stdin and stdout, -t allocates a tty, and we’re using the standard fedora
docker run -i -t marina/fedora21-i386 /bin/bash
connect, or detach, from the shell without exiting use the escape sequence Ctrl-p + Ctrl-q.
sudo docker run -i -t -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix --rm marina/fedora21-i386 /bin/bash
Update image
sed -i 's/\$releasever/21/g;s/\$basearch/i386/g' /etc/yum.repos.d/* yum clean all yum -y update yum -y install firefox yum -y install https://www.halfface.se/jdk-8u40-linux-i586.rpm alternatives --install /usr/bin/java java /usr/java/latest/jre/bin/java 200000 alternatives --install /usr/bin/javaws javaws /usr/java/latest/jre/bin/javaws 200000 alternatives --install /usr/lib/mozilla/plugins/libjavaplugin.so libjavaplugin.so /usr/java/latest/jre/lib/i386/libnpjp2.so 200000 alternatives --install /usr/lib64/mozilla/plugins/libjavaplugin.so libjavaplugin.so.x86_64 /usr/java/latest/jre/lib/amd64/libnpjp2.so 200000 ln -sf /usr/java/latest/jre/lib/i386/libnpjp2.so /etc/alternatives/libjavaplugin.so yum -y install 'xorg-x11-fonts*' *Search for images. docker search fedora
attach container
List containers.
sudo docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 315ea401e287 marina/fedora21-i386:0.1.0 "/bin/bash" About an hour ago Up About an hour elated_nobel
list all containers
docker ps -a docker ps -a --no-trunc
Connect container
Reconnect process. When you do CTRL + c it will die.
sudo docker attach 315ea401e287
list images
sudo docker images
delete image
docker rmi 315ea401e287
delete container
docker container rm cc3f2ff51cab cd20b396a061
Connect to image
docker exec -it elated_nobel /bin/bash
logs
Look at log output from container.
docker logs some-guacamole docker logs --follow 123141234
stop
Stop docker image.
docker stop 7bcf035e1a4e
start
Start docker image
docker start 7bcf035e1a4e
list ip address of container
docker inspect -f 'Template:Range.NetworkSettings.NetworksTemplate:.IPAddressTemplate:End' c7eec987a17b
If you want to see all settings
docker inspect e2f7a7e275d5
look at mounts
docker inspect -f ‘Template:.Mounts’ 79b9ab19ace0
Guess which container uses which ip.
docker ps 2>&1 | grep -v '^CONTAINER ID' | while read ID THE_REST ; do echo '***' $ID $THE_REST ; docker inspect $ID | grep '"5000"' ; done
install guacamole
Create a mysql database.
mysql ...
Start guacd
docker run --name some-guacd -d guacamole/guacd
Start guacamole
CREDS=guacamole ; docker run --name some-guacamole --link some-guacd:guacd -e MYSQL_DATABASE=${CREDS} -e MYSQL_HOSTNAME=172.17.0.1 -e MYSQL_PORT=3306 -e MYSQL_USER=${CREDS} -e MYSQL_PASSWORD=${CREDS} -d -p 8080:8080 guacamole/guacamole
docker images
List images
docker history image_name
name> will show the layers baked into an image.
docker history $image
docker version
Which version of docker are we running.
docker info
Information about docker
docker cp
Copy file in and out of docker image.
docker cp <containerId>:/file/path/in/container/file /host/local/path/file
create docker image based on centos 7
sudo docker run -i -t --name centos7 centos:7 /bin/bash
create podman image based on centor 7
sudo podman run -i -t --name centos7 centos:7 /bin/bash
Add mount to container
Commit existing image.
sudo podman commit d3c982e9e73e centos7_2021-04-05_12-33
Add mount to new container
sudo podman run -ti --mount type=bind,source=/opt/autopanopro/,target=/opt/autopanopro/ centos7_2021-04-05_12-33 /bin/bash
podman where are files stored
Which image is interesting.
[root@worker-1 ~]# podman ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES a1c2397ccd1a registry.redhat.io/rhel8/support-tools:latest /usr/bin/bash 3 months ago Exited (0) 2 months ago toolbox-root 6782eb51bb24 registry.redhat.io/rhel8/support-tools:latest /usr/bin/bash 3 months ago Exited (0) 22 minutes ago toolbox-core 3a11d6bb76c9 registry.redhat.io/rhel8/support-tools:latest /usr/bin/bash 5 months ago Exited (0) 5 months ago toolbox-
Where are files stored.
[root@worker-1 ~]# podman inspect 6782eb51bb24 | grep 02a2f9b0010d4232445bb8bbc42ac4848e3c768e814849c711c19685bd2f46ac "UpperDir": "/var/lib/containers/storage/overlay/02a2f9b0010d4232445bb8bbc42ac4848e3c768e814849c711c19685bd2f46ac/diff", "WorkDir": "/var/lib/containers/storage/overlay/02a2f9b0010d4232445bb8bbc42ac4848e3c768e814849c711c19685bd2f46ac/work"
docker login halfface.se
Log in to a Docker registry.
docker login halfface.se
autostart
Make all docker images autostart.
docker update --restart unless-stopped $(docker ps -q)