Рубрики
Uncategorized

Learning Docker 001 ~ Контейнеры ~

Я использовал Docker, но просто использую для конкретных вещей, и все изображения сделаны другими. Так что пора … Tagged с Docker, DevOps.

Я использовал Docker, но просто использую для конкретных вещей, и все изображения сделаны другими. Так что пришло время создать мое собственное изображение, чтобы правильно понять Docker.

Отображать информацию Docker

$ docker info

Запустить Docker

$ docker run -it --rm ubuntu bash

~/Desktop/docker » docker run -ti --rm ubuntu bash                                                               
Unable to find image 'ubuntu:latest' locally
latest: Pulling from library/ubuntu
5b7339215d1d: Pull complete
14ca88e9f672: Pull complete
a31c3b1caad4: Pull complete
b054a26005b7: Pull complete
Digest: sha256:9b1702dcfe32c873a770a32cfd306dd7fc1c4fd134adfb783db68defc8894b3c
Status: Downloaded newer image for ubuntu:latest
root@7aae2cd83925:/# ls
bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var

root@7aae2cd83925:/# uname -a
Linux 7aae2cd83925 4.9.125-linuxkit #1 SMP Fri Sep 7 08:20:28 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

Показать изображения

$ docker images

Запустить контейнер

$ ~/Desktop/docker » docker run -it ubuntu:latest bash                                                             
root@fa598f1d1951:/# ls
bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
root@fa598f1d1951:/# pwd
/
root@fa598f1d1951:/# cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=18.04
DISTRIB_CODENAME=bionic
DISTRIB_DESCRIPTION="Ubuntu 18.04.2 LTS"

Проверьте контейнеры

$ docker ps -a --format=$FORMAT

https://gist.github.com/wzulfikar/f6f7dc8b9d6aa5bc207eaa31913201d8

Остановить контейнер

root@d558c3197d2e:/# exit

$ docker kill container_name/id

Совершить и тег

$ docker commit 82924883df95
$ docker tag 83cc840f9145b441be80be8fe45c094c162c56917ccf4f63ec38ea5b60e7ea4f ml_image
$ docker images

Прикрепите и отсоедините

# Attach
$ docker attach container_name

# Detach
Control-p and Control-q

Очистите контейнеры

$ docker rm $(docker ps -qa --no-trunc --filter "status=exited")

https://gist.github.com/bastman/5b57ddb3c11942094f8d0a97d461b430

Журналы

$ docker logs container_name

Разоблачить порт

$ docker run --name nc_test -it  -p 45678:45678 -p 45679:45679 bash
$ nc -lp 45678 | nc -lp 45679

Затем открыть 2 сеанса

# first session
$ nc localhost 45678
hello world

# second session
$ nc localhost 45679

Вы увидите Привет, мир во второй сессии.

Подключите контейнеры

Открыть 2 сеанса

# first
$ docker run --rm -it -p 1234:1234 ubuntu:14.04 bash
$ nc -lp 1234

# second
$ docker run --rm -it ubuntu:14.04 bash
$ nc ip_address 1234

Используйте частную сеть

$ docker network create test
# first
$ docker run --rm -it --net=test --name server ubuntu:14.04 bash
$ nc -lp 1234

# second
$ docker run --rm -it --link server --net=test --name client ubuntu:14.04 bash
$ nc ip_address 1234

Громкость (общая папка)

Я создал test.txt в папке Docker.

$ docker run --rm -it -v /Users/koji.kanao/Desktop/docker:/shared-folder ubuntu bash

root@4340eb3f3de0:/# cd shared-folder/
root@4340eb3f3de0:/shared-folder# ls
test.txt

Общие данные между контейнерами

# first
$ docker run --rm -it -v /shared_folder ubuntu bash
root@4950f8cf8345:/# echo hello world > /shared_folder/test.txt

# second
$ docker run --rm -it --volumes-from flamboyant_hermann ubuntu bash
root@69669fa09156:/# ls shared_folder/
test.txt

Оригинал: «https://dev.to/kojikanao/learning-docker-001-containers-5ac6»