Linux

EP12: Docker containerizes applications portably



In this episode

– Install docker
– Add docker permissions for users
– Basic docker command
– Run a docker instance
– Inspect Docker image config.
– Mount configurations into Docker instance.

install docker

sudo apt install docker -y
sudo docker version
sudo systemctl status docker

sudo apt list docker*

sudo apt info docker
“`
Description: transitional package
“`

sudo apt install docker.io -y
sudo docker version
&gt 20.10.24+dfsg1

sudo systemctl status docker
sudo apt info docker.io
“`
Description: Linux container runtime
“`

add an admin user to docker group

groups
sudo usermod -aG docker rui
groups

newgrp docker # or relogin
groups

docker version # can execute without sudo

docker command

docker ps # List **running** containers
docker ps -a # List all containers

docker image ls # Manage images – List images, should be empty

docker pull nginx # pull docker image named nginx from docker hub
docker image ls # should find nginx
docker inspect nginx # find infomation in docker hub is great way to know how to use this image.

sudo apt install jq -y

docker inspect nginx | jq ‘.[] | .RepoTags , .Config.Env, .Config.ExposedPorts, .Config.Entrypoint , .Config.Cmd , .Config.Volumes’

***

start a docker instance

docker run nginx # it’s a frontend process
docker ps # another terminal. show info , then go back to break
ss -tln
sudo apt install lynx -y
lynx –dump localhost # there is 80 on port, can we connect to it. no!!

docker run -p 80:80 nginx
docker ps
ss -tln
lynx –dump localhost

stop/start a docker instance

docker run -d -p 80:80 nginx
docker ps
ss -tln
lynx –dump localhost
docker stop {id}
docker ps -a
docker start {id}
lynx –dump localhost

rm a instance

docker run -d –rm -p 80:80 nginx #error port already bind
docker stop {id}
lynx –dump localhost

docker run -d –rm -p 80:80 nginx
docker ps
docker stop {id}
docker ps -a # instance id auto disappear
docker container prune #clean old instance
docker ps -a

restart a instance

docker run -d –restart=always –name labngx -p 80:80 nginx
docker ps
sudo reboot
docker ps

config a instance

docker exec -it {id} bash

cd /etc/nginx
/etc/nginx/nginx.conf
cd conf.d
/etc/nginx/conf.d/default.conf

vi default.conf # got root folder
root = /usr/share/nginx/html

sudo mkdir /opt/docker-ngx
sudo chown rui:rui /opt/docker-ngx
mkdir /opt/docker-ngx/html

docker cp ac4f:/etc/nginx/conf.d /opt/docker-ngx
docker cp ac4f:/etc/nginx/nginx.conf /opt/docker-ngx

docker stop {id}
docker rm {id} #delete ngx

***

docker run -d –name labngx -p 80:80
-v /opt/docker-ngx/nginx.conf:/etc/nginx/nginx.conf
-v /opt/docker-ngx/conf.d:/etc/nginx/conf.d
-v /opt/docker-ngx/html:/usr/share/nginx/html nginx

lynx –dump localhost
&gt 403 Forbidden

ls /opt/docker-ngx/html -al

echo “labngx: hello world!” &gt /opt/docker-ngx/html/index.html

lynx –dump localhost
&gt labngx: hello world!

inspect instance

docker inspect labngx

docker inspect labngx | jq ‘.[] | .Name , .Config.Hostname, .HostConfig.Binds , .NetworkSettings.Ports, .HostConfig.RestartPolicy’

[ad_2]

source

Related Articles

Leave a Reply

Your email address will not be published. Required fields are marked *

Back to top button