forked from containers/podman.io
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Restore old blogs from podman_old. (containers#198)
The format which was used formerly and that used by Docusaurus are incompatible. Hence, corrected yaml fields from the markdown files. Then made provisions to display the blogs. Signed-off-by: Chetan Giradkar <cgiradka@redhat.com>
- Loading branch information
Showing
259 changed files
with
8,367 additions
and
1,508 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
--- | ||
title: Podman Alpha version 0.6.1 Release Announcement | ||
layout: default | ||
author: bbaude | ||
categories: [releases] | ||
tags: [community, open source, podman] | ||
--- | ||
|
||
 | ||
|
||
# Podman release 0.6.1 | ||
|
||
It seems that when we have a short work week here in the US, we have rather large releases. To me, that flies in the face of logic. Speaking of which, one particular milestone was reached this week … | ||
We had our 1000th commit in Podman! | ||
|
||
That is particularly special, because prior to this repository, all libpod work was being done within the CRI-O repository. So the 1000 commits is in actuality since we broke apart from CRI-O. I want to recognize all the contributors who have been helping us along way. Great job! | ||
##Other notable items in the release: | ||
|
||
<!--truncate--> | ||
|
||
## Improvements to podman Remote API | ||
|
||
* Example usage for the Podman python API | ||
* Correct issue with varlink container inspect where not all information was being parsed | ||
* varlink build added to the varlink API | ||
* Python API now can attach to a container | ||
|
||
## Improvements to podman build | ||
|
||
* OnBuild support for podman build | ||
|
||
## General Improvements | ||
|
||
* Correctly drop security capabilities when running containers with — user | ||
* Fix edge case of pulling images with shortnames and no registries defined | ||
* Lots of changes with the hooks command | ||
* Make some run options exclusive when using an existing container network namespace | ||
* Podman ps and images now sorts containers and images by their created time. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
--- | ||
title: Podman Alpha version 0.6.4 Release Announcement | ||
layout: default | ||
author: bbaude | ||
categories: [releases] | ||
tags: [community, open source, podman] | ||
--- | ||
|
||
 | ||
|
||
# Podman release 0.6.4 | ||
|
||
This afternoon we were able to overcome some last minute bugs and release a new Podman. The packages are building in Fedora and will work their way through Fedora’s bodhi system. For giggles, I looked at the number of individual contributors this week and was glad to see the number at 10. | ||
|
||
Mainly bugfixes this week, one big one was that we do a better job cleaning up containers that run in the back ground. | ||
|
||
<!--truncate--> | ||
|
||
**podman container cleanup** was added to cleanup mountpoint, cgroups and network configuration when containers exit. When a container is run in background mode (-d), the podman command exits, but **conmon** continues to run and monitor the container, when the container exits, conmon executes podman container cleanup to cleanup the container. | ||
|
||
There were a number of bug fixes and a lot of vendoring new code — Golang speak for updating the code we depend on from other projects. Interesting things are in store for podman in the upcoming weeks. Stay tuned! | ||
|
||
I missed writing this blog the last couple of weeks, and wanted to point out a huge new feature from the **buildah project**. **podman build** now supports layering. As you may know podman build by default only adds one layer when processing a Dockerfile. This is different the **docker build**. Docker defaults to layering each line in the Dockerfile, which makes the creation of an application easier, since docker build jumps to the first line changed in the Dockerfile since the previous build. Podman build on the other hand starts at the beginning, which works better in using a Dockerfile in a build system. With the introducion of the — layers flag, you can now get the same behaviour in podman build that you have in docker build, incremental changes to the Dockerfile will start the build at the change point rather then in the beginning. There is even a environment variable BUILDAH_LAYERS which can be set to default to the layers method. | ||
|
||
## Notable features include: | ||
|
||
* Continued work on podman remote client. A mock up of a podman remote client went into the contrib/ section of our repository. This is not ready for anyone but Jhon Honce as the primary contributor to the python library code. | ||
* Continued work on running podman without requiring you to be root. Giuseppe Scrivano made a bunch of commits related to rootless containers. | ||
* added podman-image and podman-container man page links | ||
* fixed a fatal error where when a container disappeared during podman ps. | ||
* added an authfile option to podman search to deal with private registries. | ||
* fixed a bug related to container startup and attached mode. | ||
* building podman with varlink support is now optionional. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
--- | ||
title: Podman Alpha version 0.7.1 Release Announcement | ||
layout: default | ||
author: bbaude | ||
categories: [releases] | ||
tags: [community, open source, podman] | ||
--- | ||
|
||
 | ||
|
||
# Podman release 0.7.1 | ||
|
||
Last week was a busy holiday week here in the United States, but we still managed a nice release full of interesting merges. | ||
|
||
Many of the significant merges are going to be less than noticeable to users. A lot of updated vendor code was added as well as the removal of unused functions due to cgroups and platform changes. | ||
|
||
<!--truncate--> | ||
|
||
Speaking of platform changes, one thing I have been working on the last few weeks is to cross-compile for Darwin from Linux. This was really our first need to deal with other platforms and was rather invasive at times. It took several merges over the last few weeks to complete but we have are able to _build_ a Darwin binary. I must emphasize _build_ because the binary is known to not run — as there is a lengthy list of things that would need to be fixed or implemented first. Nevertheless, my goal here was to implement a CI test that would always perform the build so we can protect against subsequent regressions for Darwin should someone decide to work on that platform. | ||
|
||
## Other significant changes include: | ||
|
||
* several changes to the makefile to make it more efficient | ||
* fix parsing of short options by vendoring in a new urfave/cli | ||
* tutorial fixes | ||
* revert back to a shared cgroup for conmon processes | ||
* remove buildah requirement for the libpod image library | ||
* block use of /proc/acpi from inside containers | ||
* factor pkg/ctime into a separate package |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,48 @@ | ||
--- | ||
title: Podman Alpha version 0.7.2 Release Announcement | ||
layout: default | ||
author: bbaude | ||
categories: [releases] | ||
tags: [community, open source, podman] | ||
--- | ||
|
||
 | ||
|
||
# Podman release 0.7.2 | ||
|
||
As most weeks are, this was fast and furious. You will see hand fulls of significant features below that have been added to podman this week. All of it is awesome work from the core team and its contributors. There were also two interesting features that users will be interested in: the ability to create a container with multiple networks and the podman remote client. | ||
|
||
<!--truncate--> | ||
|
||
We have heard from users that they wish to be able to create containers with multiple networks. This can now be done with a combination of CNI configurations and podman. The easiest approach is to take the default podman configuration file `/etc/cni/net.d/87-podman-bridge.conflist` and duplicate it. Within the file, change the: | ||
|
||
* network name | ||
* bridge device (cni0 -> cni1) | ||
* subnet | ||
|
||
Then run podman like: | ||
|
||
``` | ||
$ podman run -it --network=podman,podman2 fedora:28 /bin/bash | ||
``` | ||
|
||
Jhon Honce and I have also been working on a remote client for podman, called pypodman. It is written in Python and allows users to have a podman-like front-end that accesses an actual podman backend on another node. It relies heavily on ssh and we recommend the use of ssh keys to simplify things. | ||
|
||
Our vision is this could eventually become useful for those using Macs or Windows as a development environment. Look for more official blogs and write-ups specifically on this. | ||
|
||
This is also the release where we start introducing pod concepts. We now have minimal support for pods. Try `podman pod — help` for further information. | ||
|
||
# Other significant features include but are not limited to: | ||
|
||
* More unit tests for the varlink python client | ||
* Correction behavior for podman stats | ||
* Add — volumes-from to podman run and create | ||
* Fix a small regression in our opt handling | ||
* Add a default AppArmor profile | ||
* Fix path for rootless containers | ||
* Varlink API fixes in how we start start and attach to containers | ||
* Podman ps now reports containers as ‘dead’ instead of ‘unknown’ | ||
* Correct behavior in podman rmi on how to handle parent image deletions | ||
* Logged output now goes to syslog as well as STDERR | ||
* When pulling an image by SHA1, we now set the name and tag correctly. | ||
* Better recording of exit codes for container exits |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
--- | ||
title: Podman Alpha version 0.8.1 Release Announcement | ||
layout: default | ||
author: bbaude | ||
categories: [releases] | ||
tags: [community, open source, podman] | ||
--- | ||
|
||
 | ||
|
||
# Podman release 0.8.1 | ||
|
||
Our latest podman release turned out to be a lot of internal plumbing. We had more than 50 commits but most were tweaks that most users would not notice. So I don’t have a singular, hot feature to point you at. | ||
|
||
<!--truncate--> | ||
|
||
That said, if you haven’t tried the python client to for podman, I recommend you do. It allows you to interact with a remote podman instance via SSH. | ||
|
||
## Other notable benefits of this release are: | ||
|
||
* Fixes to rootless containers including network support using slirp4netns written by Akihiro Suda | ||
* Adjustments to how images are pulled and their metadata | ||
* podman build now supports different isolation mechanims, to better run within a confined container. | ||
* Changes to our integration tests to speed them up | ||
* podman load now supports xz compression | ||
* Tidy up man pages |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,151 @@ | ||
--- | ||
title: Python3 support for Podman | ||
layout: default | ||
author: jwhonce | ||
categories: [blogs] | ||
tags: [podman, containers] | ||
--- | ||
|
||
 | ||
|
||
# Python3 support for Podman | ||
|
||
## By Jhon Honce [GitHub](https://github.com/jwhonce) | ||
|
||
You’ve learned of Podman and all it’s coolness for running OCI-based containers, but you need a solution that is repeatable and scripted. Rather than just executing Podman commands, you want a stable API to call into and not need to screen scrape the output. | ||
|
||
We heard you and now provide a Python package, python3-podman. This package allows you to access the facilities of a Podman service with #nobigfatdaemons. | ||
|
||
<!--truncate--> | ||
|
||
The python3-podman package containers a module that allows you to connect to a Podman socket activated systemd service on the same host or a remote host using a ssh tunnel. Using the python interface means you can run these commands from a MAC or Windows Box, as long as you have a Linux box with podman installed. We connect using _varlink_ for the messaging protocol between client and service. | ||
|
||
For the environment, you will need: | ||
|
||
* Linux host | ||
* podman package | ||
* enable the io.podman.socket systemd unit file by executing | ||
|
||
systemctl enable --now io.podman.socket | ||
|
||
* Python3 | ||
* The python3-podman rpm, or podman package from PyPi. | ||
|
||
_Note: Currently, there is a matching rpm for each version of podman. In time, after the API stabilizes that may no longer be true._ | ||
|
||
## Now lets start coding: | ||
|
||
Using your favorite code editor you can copy and paste the following Python program into a file named latest_containers.py. Don’t forget Python uses whitespace to signify end-of-line and code blocks when you paste. The below python code will show all of the containers created since midnight UTC when it is run. The code comments provide a running commentary on how the module works in context. | ||
|
||
```console | ||
#!/usr/bin/env python3 | ||
|
||
# Python standard date/time support | ||
from datetime import datetime, time, timezone | ||
|
||
# the module with all the goodness | ||
import podman | ||
|
||
midnight = datetime.combine(datetime.today(), time.min, tzinfo=timezone.utc) | ||
|
||
# Our client is a context manager to make resource clean up easy. No arguments implies | ||
# connect to a local Podman service using the default interfaces. | ||
with podman.Client() as client: | ||
|
||
# Retrieve all containers in containers storage. Each container is presented | ||
# as a Namespace and dict. You determine which is easiest for you to use | ||
# for your solution. | ||
for c in client.containers.list(): | ||
|
||
# A bit of sugar, convert any podman-formatted timestamp to | ||
# a python datetime | ||
created_at = podman.datetime_parse(c.createdat) | ||
|
||
if created_at > midnight: | ||
|
||
# Now the results. We provide datetime_format() for consistent | ||
# iso format in results if you wish to use it. | ||
print('ID: {}\n image: {}\n createdAt: {}'.format( | ||
c.id[:12], c.image[:33], podman.datetime_format(created_at))) | ||
``` | ||
|
||
Once you have this code copied into the file: | ||
|
||
* chmod 755 latest_containers.py | ||
* podman run fedora sleep 300 & | ||
* ./latest_containers.py | ||
|
||
```console | ||
ID: d7337530c6d1 | ||
image: registry.fedoraproject.org/fedora | ||
createdAt: 2018–08–10T09:18:09.728858–07:00 | ||
``` | ||
|
||
You can watch the whole process [here](https://asciinema.org/a/mu8Knm5dj8mII19evrF9heNCF). | ||
|
||
The container object above supports the Namespace and dict protocols. This is our most used data structure providing you the ability to use the returned object in your code as you wish. | ||
|
||
Connecting to a remote host, requires only changing how you create the Client() in any script: | ||
|
||
```console | ||
With podman.Client(uri='unix:/run/user/17945/podman/io.podman', | ||
remote_uri='ssh://ruser@podman.example.com:22/run/podman/io.podman') as client: | ||
``` | ||
|
||
* uri provides the local side of the ssh tunnel | ||
* user is your username | ||
* remote_uri provides the details needed to connect to the remote host, plus the socket file for podman. A complete ssh uri is supported to allow configuration of ports etc. | ||
* ruser is the remote host username to be used for authentication | ||
* podman.example.com is the FQDN of the host you are running the podman service on | ||
* The port number of 22 is given above for completeness, that is the default and may be omitted. | ||
* An identity file may be provided via identity_file, otherwise the podman library will defer to ssh for authenticating. | ||
|
||
All other function and method calls are the same whether they are remote or local. Note: all filesystem paths are resolved on the host running the podman service not the podman client. | ||
|
||
## But wait there is more! | ||
|
||
To iterate over all the images stored on the system, you only need to change containers to images like: | ||
|
||
```console | ||
for i in client.images.list(): | ||
``` | ||
|
||
To find podman system information, you need to use: `client.system.info()`. Or, `client.system.versions()` if you need to know the release of the podman service components. | ||
|
||
To determine if the podman service is available and working, `client.system.ping()` will return `True` if everything is working correctly. | ||
|
||
One of the most complex operations is creating a new container from an image, the workflow: | ||
|
||
* Pull image from registry | ||
* Instantiate image object | ||
* Set container options | ||
* Create OCI container and object | ||
|
||
```console | ||
with podman.Client() as client: | ||
ident = client.images.pull(name) | ||
img = client.images.get(ident) | ||
opts = { | ||
'memory': '1G', | ||
'memory-reservation': '750M', | ||
'Memory-swap': '1.5G', | ||
} | ||
ctnr = img.container(**opts) | ||
``` | ||
|
||
Our calling pattern is “client.<model>.<method>(<options>)”, where the current models are: | ||
|
||
* Images | ||
* Containers | ||
* System | ||
|
||
The Podman man pages provide details on the methods and options to be used for each. | ||
|
||
What’s been shown in this blog is how easy it is to use the Python module to do Podman commands from your Linux host. These bindings can be used on the same host that Podman is running on, or they could be used on a remote host. Although there is not a complete one to one correspondence between the Podman commands and the ones available via the Python bindings — yet, the end goal for this project is to get to that point. For instance the commands for interacting with pods are currently under development and when available, the Python module will be updated to allow access. In addition to that, there’s work underway to make this Python module available on MacOS and Windows via PyPi. When these ports go live, you will be able to interact with Podman service from any Linux, MacOS or Windows host. | ||
|
||
I hope you have found the information in this blog to be useful and gives you further insight into Podman and this Python module. If you have any questions a great place to ask them is the IRC channel _#podman_ on _FREENODE_. | ||
|
||
Better yet if you’d like to help contribute to Podman or this Python module, please feel free to join us on GitHub! | ||
|
||
[https://github.com/containers/podman](https://github.com/containers/podman) | ||
[https://github.com/containers/podman/tree/main/contrib/python](https://github.com/containers/podman/tree/main/contrib/python) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
--- | ||
title: Podman Alpha version 0.8.3 Release Announcement | ||
layout: default | ||
author: bbaude | ||
categories: [releases] | ||
tags: [community, open source, podman] | ||
--- | ||
|
||
 | ||
|
||
# Podman release 0.8.3 | ||
|
||
Our release this week was very smooth. It seems like between CI infrastructure stability, last minute pull requests, and sometimes just plain bad luck, something always gives us trouble on Friday’s. The Fedora packages are created and I see that they are getting their karma and working through the process already. | ||
|
||
By the way, we moved! Our new upstream location is [https://github.com/containers/podman](https://github.com/containers/podman). It seems to be a more natural fit for our project and more closely associates us with some of our sister projects. | ||
|
||
<!--truncate--> | ||
|
||
Some of the more obvious changes in this release are: | ||
|
||
* Updated documentation to mention that systemd is now the default cgroup manager. | ||
* The create|run switch of — uts-host now works correctly. | ||
* Add pod stats as a sub-command. Similar to podman stats, it allows you to see statistics about running pods and their containers. | ||
* Varlink API endpoints for many of the pod subcommands were added. | ||
* Support format for the varlink API endpoint Commit (OCI or docker) | ||
* Fix handling of the container’s hostname when using — host=net | ||
* When searching multiple registries, do not make an error from one registry be fatal. | ||
* Create and Pull commands were added to the python client. | ||
|
||
Our IRC channel has not moved. Much of the development team can be found on Freenode in #podman. Come by and introduce yourself! |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
--- | ||
layout: default | ||
title: What's NEW! | ||
categories: [new] | ||
--- | ||
|
||
# Welcome to the [podman.io](https://podman.io) website! | ||
|
||
If you've missed the news so far, CoreOS was acquired by Red Hat at the beginning of 2018. This also means some changes for Buildah and Podman. | ||
|
||
Buildah and Podman were previously projects within Project Atomic which is going to be sunset in favor of an immutable host combination of Container Linux and Fedora Atomic Host: this combination is called [Fedora CoreOS](https://coreos.fedoraproject.org). We therefore welcome you to the new websites, [buildah.io](https://buildah.io) and [podman.io](https://podman.io) where you will find news, announcements, and more around the respective projects. | ||
|
||
To start it up, check out the new [Blogs](https://podman.io/blogs) and [Releases](https://podman.io/releases) sections on the site. |
Oops, something went wrong.