콘텐츠로 이동

Docker(Podman) 설치방법

author: Onejay
createdAt: 2024-09-08
updatedAt: 2024-09-08

```shell
$ sudo apt update
$ sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin
```
- Hello world
```shell
$ sudo docker run hello-world
...
Hello from Docker!
...
```
```shell
$ sudo apt remove docker docker-engine docker.io containerd runc
```

Podman: Redhat 에서 개발한 Container Tool

Docker Desktop 이 유료화가 되었을 뿐 Docker 자체가 유료화가 되었다는 뜻은 아니다
DockerEngine Community Edition(CE) 과 Docker CLI 는 무료이기에 CLI 환경에서 사용한다면 무료로 사용 가능하다.
  • podman-docker: podman 명령어를 docker 로 사용 할 수 있는 패키지
Terminal window
$ sudo apt update
$ sudo apt install -y podman
# optional
$ sudo apt install podman-docker
  • docker 의 명령어를 그대로 사용할수 있다.
    • Podman

      Terminal window
      $ podman ps
      CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
    • Docker

      Terminal window
      $ docker ps
      Emulate Docker CLI using podman. Create /etc/containers/nodocker to quiet msg.
      CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
      • docker 명령어를 쓰는 경우 Emulate Docker CLI using podman. Create /etc/containers/nodocker to quiet msg. 란 메시지가 나온다. 아래의 명령어로 파일을 생성해서 해결한다.

        Terminal window
        $ sudo touch /etc/containers/nodocker
        $ docker ps
        CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
- Dockerfile 을 작성해서 build 를 하거나 `podman pull <DOCKER_IMGAE_NAME>` 명령어를 사용할 때 아래와 같은 에러가 발생할 때가 있다.
```shell
Error: error creating build container: short-name "eclipse-temurin:17" did not resolve to an alias and no unqualified-search registries are defined in "/etc/containers/registries.conf"
```
+ _short-name_ : docker image 의 별칭(alias). `docker pull ubuntu` 는 `docker pull docker.io/library/ubuntu` 의 short-name 이다.
- Docker 레지스트리에서 이미지 파일을 찾을 수 없는 것이 원인이므로 아래의 명령어를 실행해 해결한다.
```shell
$ echo "unqualified-search-registries = [\"docker.io\"]" | sudo tee -a /etc/containers/registries.conf
```