☸️ Как опубликовать образ Docker в Docker Hub с помощью Podman

by itisgood
Podman – это инструмент, разработанный для управления контейнерами и подами без необходимости использования демона контейнера, как это часто бывает в мире Docker.
Все контейнеры и поды создаются как дочерние процессы инструмента Podman.
CLI Podman (podman) основан на интерфейсе командной строки Docker.
В этом руководстве мы покажем вам, как создавать и публиковать / отправлять образы Docker в Docker Hub с помощью Podman.
Прежде чем начать, убедитесь, что в вашей системе установлен podman.
Вот руководства, к которым вы можете обратиться:

Создайте свой образ Docker.

Для этого я создам простое приложение Node.js.

$ mkdir ~/docker-images/demo/
$ cd ~/docker-images/demo/

Вот мой файл app.js.

$ vim app.js        
const http = require('http');
const os = require('os');

console.log("Node server starting...");

var handler = function(request, response) {
  console.log("Received request from " + request.connection.remoteAddress);
  response.writeHead(200);
  response.end("You've hit " + os.hostname() + "\n");
};

var www = http.createServer(handler);
www.listen(8080);

Создадим Dockerfile.

$ vim Dockerfile 
FROM node
ADD app.js /app.js
ENTRYPOINT ["node", "app.js"]

Соберем образ с тегом.

$ podman build -t docker.io/jmutai/nodejs-demo:v1 .
STEP 1: FROM node
STEP 2: ADD app.js /app.js
afbd0b73b68748a693427c1ed7bf4a40d293632691b385a565a40d0d1092b4de
STEP 3: ENTRYPOINT ["node", "app.js"]
STEP 4: COMMIT docker.io/jmutai/nodejs-demo:v1
ffe0449e93f36fddecc71e701a6011dbbfa0cfcdf6565209c84b845bfca60bae

Замените docker.io/jmutai/nodejs-demo:v1 на тег для вашего приложения.

Осуществим вход в Docker hub

$ podman login docker.io                           
Username: jmutai
Password: 
Login Succeeded!
Поскольку я пометил образ при сборке в формате, необходимом для Docker Hub, я могу просто пушить его.

Скачать образ Docker из Docker Hub с помощью podman

Затем вы можете подтянуть образ с других машин, запустив:

--- Используя клиент Docker ---
$ docker pull docker.io/jmutai/nodejs-demo:v1
$ docker pull jmutai/nodejs-demo:v1

--- Используя podman ---
$ podman pull docker.io/jmutai/nodejs-demo:v1
$ podman pull jmutai/nodejs-demo:v1

Запустите тестовый контейнер:

--- С помощью podman ---
$ podman  run --name nodejs-demo -p 8080:8080 -d docker.io/jmutai/nodejs-demo:v1
d1a669579a39580fd1dfa19aaeed2c7a29aa28a1324d87c301d20f41e30e014f

--- С помошью Docker ---
$ docker run --name nodejs-demo -p 8080:8080 -d docker.io/jmutai/nodejs-demo:v1
Теперь попробуйте получить доступ к вашему приложению по адресу http://localhost:8080
замените localhost именем хоста или IP-адрес хоста Docker, если необходимо
$ curl localhost:8080
You've hit d1a669579a39
Подтвердите идентификатор контейнера:
$ podman ps                                                                         
CONTAINER ID  IMAGE                            COMMAND  CREATED             STATUS                 PORTS                   NAMES
d1a669579a39  docker.io/jmutai/nodejs-demo:v1           About a minute ago  Up About a minute ago  0.0.0.0:8080->8080/tcp  nodejs-demo

Очистите свою среду:

$ podman rm -f d1a669579a39
$ docker rm -f d1a669579a39
Наслаждайтесь использованием Podman для запуска образов-контейнеров.

You may also like

Leave a Comment