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
> 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
> 403 Forbidden
ls /opt/docker-ngx/html -al
echo “labngx: hello world!” > /opt/docker-ngx/html/index.html
lynx –dump localhost
> labngx: hello world!
inspect instance
—
docker inspect labngx
docker inspect labngx | jq ‘.[] | .Name , .Config.Hostname, .HostConfig.Binds , .NetworkSettings.Ports, .HostConfig.RestartPolicy’
[ad_2]
source