mirror of
https://github.com/LCTT/TranslateProject.git
synced 2024-12-23 21:20:42 +08:00
161 lines
4.7 KiB
Markdown
161 lines
4.7 KiB
Markdown
|
[#]: subject: (Getting Started with Podman on Fedora)
|
|||
|
[#]: via: (https://fedoramagazine.org/getting-started-with-podman-in-fedora/)
|
|||
|
[#]: author: (Yazan Monshed https://fedoramagazine.org/author/yazanalmonshed/)
|
|||
|
[#]: collector: (lujun9972)
|
|||
|
[#]: translator: ( )
|
|||
|
[#]: reviewer: ( )
|
|||
|
[#]: publisher: ( )
|
|||
|
[#]: url: ( )
|
|||
|
|
|||
|
Getting Started with Podman on Fedora
|
|||
|
======
|
|||
|
|
|||
|
![][1]
|
|||
|
|
|||
|
Podman logo from the Podman project <https://github.com/containers/podman/tree/main/logo>
|
|||
|
|
|||
|
[Podman][2] is a daemonless container engine for developing, managing, and running OCI Containers on your Linux System. In this article, we will introduce podman and how to use it with a small application build using nodejs. The app will be very simple and clean.
|
|||
|
|
|||
|
### Install Podman
|
|||
|
|
|||
|
Podman command is the same as [docker][3] just type in your terminal **alias docker=podman** if you have docker already installed
|
|||
|
|
|||
|
Podman is installed by default in Fedora. But if you don’t have it for any reason, you can install it using the following command:
|
|||
|
|
|||
|
```
|
|||
|
sudo dnf install podman
|
|||
|
```
|
|||
|
|
|||
|
For fedora [silverblue][4] users, podman is already installed in your OS.
|
|||
|
|
|||
|
After installation, run the hello world image to ensure everything is working:
|
|||
|
|
|||
|
```
|
|||
|
podman pull hello-world
|
|||
|
podman run hello-world
|
|||
|
```
|
|||
|
|
|||
|
If everything is working well you will see the following output in your terminal:
|
|||
|
|
|||
|
```
|
|||
|
Hello from Docker!
|
|||
|
This message shows that your installation appears to be working correctly.
|
|||
|
To generate this message, Docker took the following steps:
|
|||
|
1.The Docker client contacted the Docker daemon.
|
|||
|
2.The Docker daemon pulled the "hello-world" image from the Docker Hub. (amd64)
|
|||
|
3.The Docker daemon created a new container from that image which runs the executable that produces the output you are currently reading.
|
|||
|
4.The Docker daemon streamed that output to the Docker client, which sent it to your terminal.
|
|||
|
To try something more ambitious, you can run an Ubuntu container with:
|
|||
|
$ docker run -it ubuntu bash
|
|||
|
Share images, automate workflows, and more with a free Docker ID:
|
|||
|
https://hub.docker.com/
|
|||
|
For more examples and ideas, visit:
|
|||
|
https://docs.docker.com/get-started/
|
|||
|
```
|
|||
|
|
|||
|
### Simple Nodejs App
|
|||
|
|
|||
|
First, we will create a folder **webapp** , type the following command in your terminal
|
|||
|
|
|||
|
```
|
|||
|
mkdir webapp && cd webapp
|
|||
|
```
|
|||
|
|
|||
|
Now create the file ****_package.json_ This file includes all the dependencies that the project needs to work well. Copy the following code inside the file _package.json ._
|
|||
|
|
|||
|
```
|
|||
|
{
|
|||
|
"dependencies": {
|
|||
|
"express": "*"
|
|||
|
},
|
|||
|
"scripts": {
|
|||
|
"start": "node index.js"
|
|||
|
}
|
|||
|
}
|
|||
|
```
|
|||
|
|
|||
|
Create the file _index.js_ and add the following code there:
|
|||
|
|
|||
|
```
|
|||
|
const express = require('express')
|
|||
|
|
|||
|
const app = express();
|
|||
|
|
|||
|
app.get('/', (req, res)=> {
|
|||
|
res.send("Hello World!")
|
|||
|
});
|
|||
|
app.listen(8081, () => {
|
|||
|
console.log("Listing on port 8080");
|
|||
|
});
|
|||
|
```
|
|||
|
|
|||
|
You can download source code from [here][5].
|
|||
|
|
|||
|
### Create Dockerfile
|
|||
|
|
|||
|
First of all, create a file called _Dockerfile_ and make sure the first character is a capital, NOT lower case, then add the following code there:
|
|||
|
|
|||
|
```
|
|||
|
FROM node:alpine
|
|||
|
WORKDIR usr/app
|
|||
|
COPY ./ ./
|
|||
|
RUN npm install
|
|||
|
CMD ["npm", "start"]
|
|||
|
```
|
|||
|
|
|||
|
Be sure you are inside the folder _webapp_ then show the image and then type the following command:
|
|||
|
|
|||
|
```
|
|||
|
podman build .
|
|||
|
```
|
|||
|
|
|||
|
Make sure to add the **dot**. The image is created on your machine and you can show it using the following command:
|
|||
|
|
|||
|
```
|
|||
|
podman images
|
|||
|
```
|
|||
|
|
|||
|
The last step is to run the image inside a container by typing the following command:
|
|||
|
|
|||
|
```
|
|||
|
podman run -p 8080:8080 <image-name>
|
|||
|
```
|
|||
|
|
|||
|
Now open your browser in _localhost:8080_ and you will see that your app works.
|
|||
|
|
|||
|
### Stopping and Remove Container
|
|||
|
|
|||
|
To exit from the container use _CTRL-C._ You can remove the container by using the container id. Get the id and stop the container using these commands:
|
|||
|
|
|||
|
```
|
|||
|
podman ps -a
|
|||
|
podman stop <container_id>
|
|||
|
```
|
|||
|
|
|||
|
You can delete the images from your machine by using the following command:
|
|||
|
|
|||
|
```
|
|||
|
podman rmi <image_id>
|
|||
|
```
|
|||
|
|
|||
|
Read more about podman and how it works on the [official website][2]
|
|||
|
|
|||
|
--------------------------------------------------------------------------------
|
|||
|
|
|||
|
via: https://fedoramagazine.org/getting-started-with-podman-in-fedora/
|
|||
|
|
|||
|
作者:[Yazan Monshed][a]
|
|||
|
选题:[lujun9972][b]
|
|||
|
译者:[译者ID](https://github.com/译者ID)
|
|||
|
校对:[校对者ID](https://github.com/校对者ID)
|
|||
|
|
|||
|
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
|||
|
|
|||
|
[a]: https://fedoramagazine.org/author/yazanalmonshed/
|
|||
|
[b]: https://github.com/lujun9972
|
|||
|
[1]: https://fedoramagazine.org/wp-content/uploads/2020/06/Get_Started_w_Podman_on_Fedora-816x345.jpg
|
|||
|
[2]: https://podman.io/
|
|||
|
[3]: https://www.docker.com/
|
|||
|
[4]: https://silverblue.fedoraproject.org/
|
|||
|
[5]: https://github.com/YazanALMonshed/webapp
|