Docker Engine - yenbohuang/techNotes GitHub Wiki
- Ubuntu
- CentOS
- Always use the latest CentOS version; it has less issues.
- https://github.com/yenbohuang/shellscripts/blob/master/docker/install-docker-ce-centos8.sh
- https://docs.docker.com/engine/install/centos/
- https://linuxconfig.org/how-to-install-docker-in-rhel-8
- Post install steps
These blog posts (from part 1 to 4) introduce about how to use "Docker + Consul + Swarm + Registrator + Nginx" for blue-green deployment:
- https://technologyconversations.com/2015/07/02/scaling-to-infinity-with-docker-swarm-docker-compose-and-consul-part-14-a-taste-of-what-is-to-come/
- https://technologyconversations.com/2015/07/02/scaling-to-infinity-with-docker-swarm-docker-compose-and-consul-part-24-manually-deploying-services/
- https://technologyconversations.com/2015/07/02/scaling-to-infinity-with-docker-swarm-docker-compose-and-consul-part-34-blue-green-deployment-automation-and-self-healing-procedure/
- https://technologyconversations.com/2015/07/02/scaling-to-infinity-with-docker-swarm-docker-compose-and-consul-part-44-scaling-individual-services/
See if this command works.
docker run hello-world
See details on https://docs.docker.com/linux/step_one/
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
docker images
See details on https://docs.docker.com/linux/step_three/
docker ps
See details on https://docs.docker.com/engine/tutorials/dockerizing/
#!/bin/sh
while [ 1=1 ]
do
clear
docker images | grep -v none
docker ps --format "table {{.Names}}\t{{.Image}}\t{{.Command}}\t{{.RunningFor}}\t{{.Status}}"
echo "Refreshed every 5 seconds....$(date)"
sleep 5
done
See details on https://docs.docker.com/engine/reference/commandline/ps/
docker logs -f <container name>
See details on https://docs.docker.com/engine/tutorials/dockerizing/
docker top <container name>
See details on https://docs.docker.com/engine/tutorials/usingdocker/
docker inspect <container name>
See details on https://docs.docker.com/engine/tutorials/usingdocker/
docker exec -it <container name> /bin/sh
See details on https://docs.docker.com/engine/tutorials/networkingcontainers/
docker stop <container name>
See details on https://docs.docker.com/engine/tutorials/usingdocker/
docker kill $(docker ps -aq)
docker rm $(docker ps -aq)
docker rmi -f $(docker images -aq)
- Get container ID by the following command:
docker container ls -l
- Export to tarball
docker export <container iD> -o my.tar
- Run Nexus on Windows
- https://help.sonatype.com/repomanager3/formats/docker-registry/proxy-repository-for-docker
- Remember
- Change "HTTP port" in docker group repo proxy config.
- Use "https://registry-1.docker.io" as URL.
- Enable V1 API protocol.
- Use "Docker Hub" as index.
- Modify
/etc/docker/daemon.json
- https://docs.docker.com/registry/insecure/
- I don't know how to make it work with hostname, use IP address for now.
{
"insecure-registries" : ["<Nexus IP>:<Nexus Port>"]
}
- You must restart docker engine to pick up config.
sudo service docker restart
- Login docker
- Remember adding port number, or CLI will use 443 (default) port number.
docker login <Nexus IP>:<Nexus port>
- See of it works
docker run <Nexus IP>:<Nexus Port>/hello-world
- Remember adding "gitlab" in front of "gitlab-ce" because it's tag name is "gitlab/gitlab-ce"
docker pull <Nexus IP>:<Nexus Port>/gitlab/gitlab-ce
- TODO: Fix this issue later
WARNING! Your password will be stored unencrypted in /home/yenbohuang/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store
Login docker hub by docker login command and run the following:
docker scan <image name>