Last active
December 21, 2017 13:34
-
-
Save ryanpadilha/f0a85c3370e7333fb8aa5311aae84dad to your computer and use it in GitHub Desktop.
Docker - operate container on Linux environment
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# | |
# Installation of Docker Environment | |
# For Ubuntu 16.04 | |
# https://www.digitalocean.com/community/tutorials/como-instalar-e-usar-o-docker-no-ubuntu-16-04-pt | |
# adicional packages | |
sudo apt-get update | |
sudo apt-get install build-essential python-software-properties git | |
# docker auto-install | |
curl -sSL https://get.docker.com/ | sh | |
# docker official repo | |
sudo sh -c "wget -qO- https://get.docker.io/gpg | apt-key add -" | |
sudo sh -c "echo deb http://get.docker.io/ubuntu docker main\ > /etc/apt/sources.list.d/docker.list" | |
sudo apt-get update | |
sudo apt-get install lxc-docker | |
# docker configuration file | |
# /etc/default/docker | |
# start docker (network interface problems) | |
# sudo docker daemon -s overlay | |
# test docker installation | |
# sudo docker run ubuntu /bin/echo Hello, Ryan! | |
# containers execution list | |
# docker ps | |
# create a container and access the shell | |
# -i : interact, -t : terminal access | |
# sudo docker run -i -t ubuntu /bin/bash | |
# verify release | |
# cat /etc/lsb-release | |
# verify release CentOS | |
# cat /etc/centos-release | |
# cat /etc/os-release | |
# machine details on runtine | |
# docker stats 6b4e5f3b04af | |
# list docker images | |
# docker images | |
# remove a container from list | |
# docker rm 4833f9f94944 | |
# create container with name | |
# sudo docker run -it --name ex_nginx ubuntu | |
# save changes on container via docker commit | |
# docker commit 520d8ba08fb3 ubuntu/nginx | |
# auto-destruct container, with shell start nginx | |
# docker run -it -rm -p 8090:80 ubuntu/nginx /bin/bash | |
# docker run on background and start nginx service | |
# docker run -d -p 8090:80 ubuntu/nginx /usr/sbin/nginx -g "daemon off;" | |
# curl -IL http://localhost:8090 | |
# stop container | |
# docker stop 123385304a85 | |
# start container | |
# docker start docker stop 123385304a85 | |
# remove container image | |
# docker rmi 3d16d956962d | |
# remove all container from machine | |
# docker rm $(docker ps -qa) | |
# remove all images from machine | |
# docker rmi $(docker images -q) | |
## | |
# Dockerfile - create a snapshot on build via shell script | |
## | |
# bootfs is an abstraction of lxc/libcontainer over kernel linux | |
# rootfs execuete over bootfs, is an read-only filesystem with all distro files for operate | |
# unionfs is a read-write abstract layer for docker operate programs and images | |
# | |
FROM ubuntu | |
MAINTAINER ryan.padilha | |
RUN apt-get update && apt-get install -y nginx | |
RUN ln -sf /dev/stdout /var/log/nginx/access.log | |
RUN ln -sf /dev/stderr /var/log/nginx/error.log | |
EXPOSE 80 | |
CMD ["nginx", "-g", "daemon off;"] | |
# CMD service nginx start | |
# build an image from Dockerfile | |
# sudo docker build -t nginx . | |
# inspect container, return json-context | |
# docker inspect bf4faa258b7f | |
# access bash on container | |
# docker exec -it bf4faa258b7f bash | |
# view logs | |
# docker logs bf4faa258b7f | |
# save container to move it | |
# docker save nginx_prod > /var/wplex/devops/nginx_prod.tar | |
# load container | |
# docker load < nginx_prod.tar | |
# volumes for mysql - /var/lib/mysql | |
# --volumes-from <ID> : volumes replication for containers | |
# docker rm -v volume_name : remove a docker volume | |
# containers communication | |
# remove a network interface (bridge) | |
# sudo ip link set dev docker0 down | |
# sudo brctl delbr docker0 | |
# ping containers (A1 > B1) | |
# docker exec -it bf4faa258b7f ping 172.17.0.8 | |
# link containers (same host) - --link <container_name>:<alias> | |
# docker run -d --name app --link postgres:db nginx | |
# link containers (different host) - TODO | |
# automate docker execution via composer | |
# docker-compose -f production.yml up -d | |
# create docker container with limitation of cpu, memory, i/o | |
# c 1024 (100% CPU) | |
# docker run -d -p 8080 -c 512 -m 1024m nginx | |
# dockerhub login | |
# docker login -e $DOCKER_EMAIL -u $DOCKER_USER -p $DOCKER_PASS | |
# remove all stopped containers | |
# docker container prune | |
# docker network create --driver bridge network_name | |
# docker network ls | |
# (--network <name>) | |
# | |
# Docker Compose | |
# docker-compose build | |
# docker-compose up | |
# | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment