Instalar docker (CentOS7)
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum-config-manager --enable docker-ce-edge
yum install docker-ce
systemctl start docker
groupadd docker
usermod -aG docker $USER
Outra forma de instalar (CentOS7)
Criar o arquivo docker.repo em /etc/yum.repos.d/ com o conteúdo:
[dockerrepo]
name=Docker Repository
baseurl=https://yum.dockerproject.org/repo/main/centos/7/
enabled=1
gpgcheck=1
gpgkey=https://yum.dockerproject.org/gpg
Executar os comandos abaixos:
yum install docker-engine
systemctl start docker
systemctl enable docker
yum install -y python-pip
pip install docker-compose
Instalação Debian 9 / Ubuntu 16.04+:
Com super usuário (ou sudo), execute os seguintes comandos
apt-get remove docker docker-engine docker.io
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
software-properties-common
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
apt-key fingerprint 0EBFCD88
add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/debian \
$(lsb_release -cs) \
stable"
apt-get update
apt-get install docker-ce
OBS: Possivelmente também funcione com Ubuntu (Não testado)
Imagens do Docker:
docker images
Obteremos a seguinte saída de exemplo:
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx-php7 1.12 267c03fe7642 2 minutes ago 157MB
mariadb 10.1 ef76a230d60e 2 hours ago 207MB
alpine 3.7 3fd9065eaf02 4 months ago 4.14MB
alpine latest 3fd9065eaf02 4 months ago 4.14MB
Para remover uma imagem utilizamos o comando:
docker rmi [IMAGE_ID], conforme o exemplo:
docker rmi 267c
OBS: Apenas parte do ID já irá funcionar. Não é necessário utilizar o
ID inteiro, basta apenas parte dele, se não houver repetido, ou a parte
for diferenciada.
Processos do Docker:
docker ps
Obteremos a saída conforme exemplo:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
523c5e905bf1 nginx-php7:1.12 "/usr/local/bin/do..." 7 minutes ago Up 7 minutes 0.0.0.0:80->80/tcp, 443/tcp web
754408af3ab9 mariadb:10.1 "/scripts/run.sh" 2 hours ago Up 2 hours 0.0.0.0:3306->3306/tcp db
Criando rede Docker:
docker network create --driver bridge [NOME_DA_REDE]
Limpando Docker:
docker system prune --all
OBS: Tudo que não estiver sendo utilizado, por nenhum contêiner (Processo Docker), será apagado, incluindo redes.
A saída desse comando irá gerar algo do tipo:
WARNING! This will remove:
- all stopped containers
- all volumes not used by at least one container
- all networks not used by at least one container
- all images without at least one container associated to them
Are you sure you want to continue? [y/N] y
]Deleted Containers:
624fae42277f3a735f0a981bd896d97a6641c551b5e3317a2e301a62889e9458
5907b5398035030826dbad6d4b9cd906604f28d74759361fc54379dd0b348212
15242833ebf65c07df68ded825f14d5f8a4873d6e3ede55d64b38b5c4b28c37f
e0eb43bf776b8863330edd3937076268930bbbd57bfb9344b56d7b900c170116
4afa38bb6a500a1c08ee137e0419373ed2d8bc5a55520f41cdd0e41701905b3a
d87db5b1107b0513de582b6d0296a91337c86e1c66a272495f18a37eac71a85c
8a696aae4a70227f3589194c0ad057618644f6a9b1a5623bf91bf7800cad5e01
a2980d01aaf8290670112669d920db44af71c0bc3d8e2e4a53a7ab972497a823
aaa59c6257023e0d9eda22ae40ab0d526a2ffc60db946e33200336342e13c92b
90bb9ab5d49eea03f8a323ac9992c73edb30e5bfa2207a2515fdc1d1fda86c43
Deleted Volumes:
c7ddda00247b7c653205d2e541b1f47d2fee7b16a0530543b96753633f9dee5e
54ca3dadafd1b53568686ce7cf0e421796251f95743ba209562ccb80195f0858
796ed51f5e45ef2a9ec2f93dfee09a5268517d9c0ddd101b8d8d59f34e590026
Deleted Networks:
net
Deleted Images:
deleted: sha256:ba3678f609b221f5c5bcc872821dee565286edc757de298a49adf4f18a4d2d83
deleted: sha256:b713b248db24fcb617eae474a38b78235569b96ac7957e54b75853528630c0d6
...
deleted: sha256:c5b65b0d88e270043ae217c5fbd897c1cb66c2a1d3333d3ad089a6e573f8cdfc
deleted: sha256:a52bb21efc57851191d28a648fe23963d8e1fc386d4369424829a069cfa04c1d
untagged: alpine:latest
untagged: alpine@sha256:e1871801d30885a610511c867de0d6baca7ed4e6a2573d506bbec7fd3b03873f
untagged: nginx-php7:1.12
deleted: sha256:4a1639baeb752a431a4aa557b49a42998f68a9bdd8afcb5a99257dbdbc95630e
deleted: sha256:d7a9f9ff766a1d39b48e15cae4d882a5ff7dcc5b6ae6c967d5f4fb5a970f8fb8
...
deleted: sha256:3fd9065eaf02feaf94d68376da52541925650b81698c53c6824d92ff63f98353
deleted: sha256:cd7100a72410606589a54b932cabd804a17f9ae5b42a1882bd56d263e02b6215
Total reclaimed space: 485.7MB
Exemplos de comandos para utitização do docker:
Comandos para instalação e utilização de projetos no docker
-----------------------------------------------------------
Ver sua versão do linux
$ lsb_release -cs
Ver a versão do docker instalado no host:
$ docker -v
Instalação:
ver na wiki (no início dessa página) a instalação para seu S.O.
Criar um grupo e incluir seu usuario do S.O. para como sudo do docker
$sudo groupadd docker
$sudo usermod -aG docker $USER
Para iniciar automaticamente o serviço docker
$ sudo systemctl enable docker
Para configurar o docker para responder via TCP na porta 2375
$sudo systemctl edit docker.service
OBS: Incluir as três linhas abaixo no arquivo
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd -H fd:// -H tcp://0.0.0.0:2375
Recarregando o servico docker
$ sudo systemctl daemon-reload
$ sudo systemctl restart docker.service
Onde o docker guarda os dados (imagens, containers, networks e vlumes)
$ sudo ls -lha /var/lib/docker/
user@host:~$ sudo ls -lha /var/lib/docker/
total 56K
drwx--x--x 14 root root 4,0K Jun 7 09:37 .
drwxr-xr-x 70 root root 4,0K Jun 6 15:55 ..
drwx------ 2 root root 4,0K Jun 6 15:55 builder
drwx--x--x 3 root root 4,0K Jun 6 15:55 containerd
drwx------ 2 root root 4,0K Jun 7 10:35 containers
drwx------ 3 root root 4,0K Jun 6 15:55 image
drwxr-x--- 3 root root 4,0K Jun 6 15:55 network
drwx------ 3 root root 4,0K Jun 7 10:36 overlay2
drwx------ 4 root root 4,0K Jun 6 15:55 plugins
drwx------ 2 root root 4,0K Jun 7 09:37 runtimes
drwx------ 2 root root 4,0K Jun 6 15:55 swarm
drwx------ 2 root root 4,0K Jun 7 10:14 tmp
drwx------ 2 root root 4,0K Jun 6 15:55 trust
drwx------ 2 root root 4,0K Jun 7 10:39 volumes
O log do docker
$ journalctl -u docker.service
Status, stop e start do serviço docker
$ sudo service docker status
$ sudo service docker stop
$ sudo service docker start
procurar uma imagem (por exemplo ubuntu) no Docker Hub
$ docker search ubuntu
baixar uma imagem do Docker Hub (mas sem executar)
$ docker pull mariadb:latest
listar as imagens baixadas no seu docker host
$ docker images
O comando run abaixo baixa a imagem (no nosso exemplo mysql:5.6) e já executa o respectivo container (container_mysql-5.6)
$ docker run -p 3306:3306 --name container_mysql-5.6 -e MYSQL_ROOT_PASSWORD=segredo -d mysql:5.6
Iniciar, parar, reiniciar um container docker
$ docker start container_mysql-5.6
$ docker stop container_mysql-5.6
$ docker restart container_mysql-5.6
listar os containers existentes (inclusive os que não estão rodando)
$ docker ps -l
Overview do ambiente docker:
$ docker system df
Retorno:
user@host:~$ docker system df
TYPE TOTAL ACTIVE SIZE RECLAIMABLE
Images 0 0 0B 0B
Containers 0 0 0B 0B
Local Volumes 0 0 0B 0B
Build Cache 0B 0B
Apaga tudo que não está sendo mais utilizado no docker:
$ docker system prune
Retorno:
WARNING! This will remove:
- all stopped containers
- all networks not used by at least one container
- all dangling images
- all build cache
Are you sure you want to continue? [y/N] y
Total reclaimed space: 0B
Comandos poderosos (e perigosos)
--------------------------------
*Apaga todos os objetos (imagens, containers, networks e volumes) não utilizados (danglin's) do seu host docker
docker system prune --all --force --volumes
*pode ser criado um alias no S.O. para ser chamado no terminal com o comando: docker-clean-unused
alias docker-clean-unused='docker system prune --all --force --volumes'
*Apaga todos os objetos (imagens, containers, networks e volumes) mesmo que utilizados, do seu host docker
* Esse cara APAGA TUDO MESMO
docker stop $(docker container ls -a -q) && docker system prune -a -f --volumes
*pode ser criado um alias no S.O. para ser chamado no terminal com o comando: docker-clean-all
* Esse cara APAGA TUDO MESMO
alias docker-clean-all='docker stop $(docker container ls -a -q) && docker system prune -a -f --volumes'
Referências
https://docs.docker.com/install/linux/docker-ce/centos/