Howto podman: Difference between revisions

From Vidalinux Wiki
Jump to navigation Jump to search
Line 71: Line 71:
= create container image =
= create container image =
runconfig.sh:
runconfig.sh:
cat > runconfig.sh << EOF
cat > runconfig.sh << EOF
  #!/bin/bash
  #!/bin/bash
   
   

Revision as of 01:17, 31 January 2023

install podman archlinux

install podman packages:

pacman -Syu podman podman-compose 

install podman centos/almalinux/rocky

install podman packages:

yum -y install podman

install podman-compose:

curl -o /usr/local/bin/podman-compose https://raw.githubusercontent.com/containers/podman-compose/devel/podman_compose.py
chmod +x /usr/local/bin/podman-compose

install podman debian/ubuntu

install podman packages:

apt-get -y install podman

install podman-compose:

curl -o /usr/local/bin/podman-compose https://raw.githubusercontent.com/containers/podman-compose/devel/podman_compose.py
chmod +x /usr/local/bin/podman-compose

commands

create container image from file:

podman build -f Dockerfile

list containers that are running or have exited:

podman ps -a

remove a local container image by its image:

podman rmi docker.io/library/almalinux:9

pull a remote container image from docker.io:

podman pull docker.io/library/almalinux:9

list all local images:

podman images

display information about how an image was built:

podman history docker.io/library/almalinux:9

log in to a remote registry:

podman login registryURL -u username -p password

pull an image from a remote registry:

podman pull docker.io/library/almalinux:9

search local cache and remote registries for images:

podman search searchstring

create a new image based on the current state of a running container:

podman commit container mynewimage:tag

create (but don’t start) a container from an image:

podman create docker.io/library/almalinux:9

start an existing container from an image:

podman start container

restart an existing container:

podman restart container

stop a running container gracefully

podman stop container

send a signal to a running container

podman kill container

Remove a container (use -f if the container is running)

podman rm [-f] container

display a live stream of a container’s resource usage:

podman stats container 

return metadata about a running container:

podman inspect container

execute a command in a running container:

podman exec container command

display the running processes of a container:

podman top container

display the logs of a container:

podman logs [-tail] container

pause all the processes in a container

podman pause container

unpause all the processes in a container

podman unpause container

list the port mappings from a container to localhost

podman port container

attach to a running container:

podman attach container

enter container environment:

podman exec -it container /bin/sh

create container image

runconfig.sh:

cat > runconfig.sh << EOF
#!/bin/bash

VRFY_USER=$(grep -c "$SMB_USER" /etc/passwd)
VRFY_GROUP=$(grep -c "$SMB_GROUP" /etc/group)

# add username for samba

if [ $VRFY_USER -ne 0 ];
then
echo "user $SMB_USER already exist"
else
echo "adding user $SMB_USER"
useradd $SMB_USER -s /bin/nologin
echo -ne "$SMB_PASS\n$SMB_PASS\n" | smbpasswd -a -s $SMB_USER
fi

# add group

if [ $VRFY_GROUP -ne 0 ];
then
echo "user $SMB_USER already exist"
else
groupadd $SMB_GROUP
gpasswd -a $SMB_USER $SMB_GROUP
fi

# set directory permissions

chown root.$SMB_GROUP -R /share
chmod 2770 /share

unset SMB_USER
unset SMB_PASS
unset SMB_GROUP

# start samba
smbd --foreground --debug-stdout
EOF

private local registry

compose file to create registry:

version: '3'

services:
  registry:
    restart: always
    image: registry:2
    ports:
    - "5000:5000"
    environment:
      REGISTRY_AUTH: htpasswd
      REGISTRY_AUTH_HTPASSWD_REALM: Registry
      REGISTRY_AUTH_HTPASSWD_PATH: /auth/htpasswd
      REGISTRY_STORAGE_FILESYSTEM_ROOTDIRECTORY: /data
    volumes:
      - ~/docker-registry/auth:/auth
      - ~/docker-registry/data:/data

create password file:

mkdir ~/docker-registry/auth -p 
podman run --rm --entrypoint htpasswd httpd:2 -Bbn testuser testpassword > ~/docker-registry/auth/htpasswd

add another user to registry:

podman run --rm --entrypoint htpasswd httpd:2 -Bbn testuser2 testpassword2 >> ~/docker-registry/auth/htpasswd

run the registry by executing:

podman-compose up -d

log in to a private registry:

podman login --tls-verify=false http://localhost:5000 -u testuser testpassword

logout from local registry:

podman logout http://localhost:5000