Напишем простенький hello world:
# docker run ubuntu:14.10 /bin/echo 'Hello world'
Unable to find image 'ubuntu:14.10' locally
Pulling repository ubuntu
d6028e3b0b34: Download complete
511136ea3c5a: Download complete
df50890ba698: Download complete
b526f11c9576: Download complete
dde78202d417: Download complete
Hello world
# docker run ubuntu:14.10 /bin/echo 'Hello world'
Hello world
Что тут произошло? Docker не нашел образ ubuntu:14.10 на локальном компьютере, поэтому скачал его с Docker Hub (https://hub.docker.com)
После указания образа системы, мы указали, какую команду выполнить внутри контейнера: /bin/echo 'Hello world'
Собственно это сообщение мы и увидели.
После выполнения данной программы, Docker контейнер сразу убивается.
Можно перейти в баш контейнера:
# docker run -t -i ubuntu:14.10 /bin/bash
root@c04fd681d2b3:/#
Флаг -t создает псевдо tty-терминал в новом контейнере.
А флаг -i как раз и указывает на интерактивный режим.
И выполним пару команд в нашем контейнере:
root@c04fd681d2b3:/# pwd
/
root@c04fd681d2b3:/# ls
bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
Выйдем из контейнера командой exit (или Ctrl+D)
А теперь сделаем так, что бы контейнер не умирал сразу, а выводил постоянно "hello world"
# docker run -d ubuntu:14.10 /bin/sh -c "while true; do echo hello world; sleep 1; done"
7a561149f7066e28a92ade78ef3842a2c86f177eca00f2a72acef7a5b614ae7b
Флаг -d указывает Docker'у запустить контейнер в бекграунде.
Однако почему мы не увидели постоянный вывод hello world, а какую-то странную строку?
Это ID запущенного контейнера.
Мы будем использовать этот ID , что бы узнать, чем там занимается наш контейнер.
Поглядим, жив ли контейнер?
# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7a561149f706 ubuntu:14.10 "/bin/sh -c 'while t 3 minutes ago Up 3 minutes mad_elion
Однако тут ID контейнера не такой длинный, а потому что docker выводит первые 13 символов из ID контейнера, для более простой работы с ним.
Мы увидели, что контейнер запущен, однако выполняет ли он переданную ему команду?
# docker logs 7a561149f706
hello world
hello world
...
параметр logs выводит весь STDOUT с указанного контейнера.
Остановим этот бесполезный контейнер:
# docker stop 7a561149f706
7a561149f706
И снова проверим, запущен ли контейнер?
# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
#
Видим, что контейнер не запущен.
# docker run ubuntu:14.10 /bin/echo 'Hello world'
Unable to find image 'ubuntu:14.10' locally
Pulling repository ubuntu
d6028e3b0b34: Download complete
511136ea3c5a: Download complete
df50890ba698: Download complete
b526f11c9576: Download complete
dde78202d417: Download complete
Hello world
# docker run ubuntu:14.10 /bin/echo 'Hello world'
Hello world
Что тут произошло? Docker не нашел образ ubuntu:14.10 на локальном компьютере, поэтому скачал его с Docker Hub (https://hub.docker.com)
После указания образа системы, мы указали, какую команду выполнить внутри контейнера: /bin/echo 'Hello world'
Собственно это сообщение мы и увидели.
После выполнения данной программы, Docker контейнер сразу убивается.
Можно перейти в баш контейнера:
# docker run -t -i ubuntu:14.10 /bin/bash
root@c04fd681d2b3:/#
Флаг -t создает псевдо tty-терминал в новом контейнере.
А флаг -i как раз и указывает на интерактивный режим.
И выполним пару команд в нашем контейнере:
root@c04fd681d2b3:/# pwd
/
root@c04fd681d2b3:/# ls
bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
Выйдем из контейнера командой exit (или Ctrl+D)
А теперь сделаем так, что бы контейнер не умирал сразу, а выводил постоянно "hello world"
# docker run -d ubuntu:14.10 /bin/sh -c "while true; do echo hello world; sleep 1; done"
7a561149f7066e28a92ade78ef3842a2c86f177eca00f2a72acef7a5b614ae7b
Флаг -d указывает Docker'у запустить контейнер в бекграунде.
Однако почему мы не увидели постоянный вывод hello world, а какую-то странную строку?
Это ID запущенного контейнера.
Мы будем использовать этот ID , что бы узнать, чем там занимается наш контейнер.
Поглядим, жив ли контейнер?
# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7a561149f706 ubuntu:14.10 "/bin/sh -c 'while t 3 minutes ago Up 3 minutes mad_elion
Однако тут ID контейнера не такой длинный, а потому что docker выводит первые 13 символов из ID контейнера, для более простой работы с ним.
Мы увидели, что контейнер запущен, однако выполняет ли он переданную ему команду?
# docker logs 7a561149f706
hello world
hello world
...
параметр logs выводит весь STDOUT с указанного контейнера.
Остановим этот бесполезный контейнер:
# docker stop 7a561149f706
7a561149f706
И снова проверим, запущен ли контейнер?
# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
#
Видим, что контейнер не запущен.
Nice article i like Agen Judi Poker
ОтветитьУдалить