podman-desktop/tutorial/interacting-with-a-database-server.html

118 lines
26 KiB
HTML
Raw Normal View History

<!doctype html>
<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-tutorial docs-version-current docs-doc-page docs-doc-id-interacting-with-a-database-server" data-has-hydrated="false">
<head>
<meta charset="UTF-8">
<meta name="generator" content="Docusaurus v3.7.0">
<title data-rh="true">Interacting with a database server | Podman Desktop</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://podman-desktop.io/img/banner_podman-desktop.png"><meta data-rh="true" name="twitter:image" content="https://podman-desktop.io/img/banner_podman-desktop.png"><meta data-rh="true" property="og:url" content="https://podman-desktop.io/tutorial/interacting-with-a-database-server"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-tutorial-current"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-tutorial-current"><meta data-rh="true" property="og:title" content="Interacting with a database server | Podman Desktop"><meta data-rh="true" name="description" content="Interacting with databases from the Podman Desktop application"><meta data-rh="true" property="og:description" content="Interacting with databases from the Podman Desktop application"><meta data-rh="true" name="keywords" content="podman desktop,podman,databases"><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://podman-desktop.io/tutorial/interacting-with-a-database-server"><link data-rh="true" rel="alternate" href="https://podman-desktop.io/tutorial/interacting-with-a-database-server" hreflang="en"><link data-rh="true" rel="alternate" href="https://podman-desktop.io/tutorial/interacting-with-a-database-server" hreflang="x-default"><link data-rh="true" rel="preconnect" href="https://MR01ANKQ9S-dsn.algolia.net" crossorigin="anonymous"><link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Podman Desktop RSS Feed">
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Podman Desktop Atom Feed">
<link rel="alternate" type="application/json" href="/blog/feed.json" title="Podman Desktop JSON Feed">
<link rel="search" type="application/opensearchdescription+xml" title="Podman Desktop" href="/opensearch.xml">
<link rel="preconnect" href="https://podman-desktop-website.goatcounter.com">
<script async src="//gc.zgo.at/count.js" data-goatcounter="https://podman-desktop-website.goatcounter.com/count"></script><link rel="stylesheet" href="/assets/css/styles.518a1471.css">
<script src="/assets/js/runtime~main.751105c1.js" defer="defer"></script>
<script src="/assets/js/main.29b8e98c.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div role="region" aria-label="Skip to main content"><a class="skipToContent_oPtH" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><div class="navbar__logo"><img src="/img/logo.svg" alt="Podman Desktop Logo" class="themedComponent_siVc themedComponent--light_hHel" height="56"><img src="/img/logo.svg" alt="Podman Desktop Logo" class="themedComponent_siVc themedComponent--dark_yETr" height="56"></div><b class="navbar__title text--truncate">podman desktop</b></a><a class="navbar__item navbar__link" href="/docs/intro">Documentation</a><a class="navbar__item navbar__link" href="/downloads">Downloads</a><a class="navbar__item navbar__link" href="/community">Community</a><div class="navbar__item dropdown dropdown--hoverable"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">Resources</a><ul class="dropdown__menu"><li><a class="dropdown__link" href="/features">Features</a></li><li><a aria-current="page" class="dropdown__link dropdown__link--active" href="/tutorial">Tutorials</a></li><li><a class="dropdown__link" href="/extend">Extend</a></li></ul></div><a class="navbar__item navbar__link" href="/blog">Blog</a></div><div class="navbar__items navbar__items--right"><div><a class="hidden lg:flex font-semibold no-underline hover:no-underline items-center text-white hover:text-white bg-gradient-to-b from-violet-500 to-violet-600 border-0 py-3 px-6 focus:outline-hidden hover:from-violet-600 hover:to-violet-700 rounded-lg text-base mt-0 mb-0 ml-4" href="/downloads">Download</a></div><a href="https://github.com/podman-desktop/podman-desktop" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link header-github-link"></a><div class="toggle_ki11 colorModeToggle_Hewu"><button class="clean-btn toggleButton_MMFG toggleButtonDisabled_Uw7m" type="button" disabled="" title="Switch between dark and light mode (currently dark mode)" aria-label="Switch between dark and light mode (currently dark mode)" aria-live="polite" aria-pressed="true"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_lgto"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-
<p>This tutorial covers the following end-to-end tasks required to interact with a database server from within the Podman Desktop UI:</p>
<ul>
<li>Pulling a database server image</li>
<li>Creating a database server instance</li>
<li>Accessing the instance from terminal</li>
</ul>
<p>For creating a database instance, you can use one of the following options:</p>
<ul>
<li><a href="/docs/containers/images/building-an-image">Build a database server image using a container or docker file</a></li>
<li><a href="/tutorial/managing-your-application-resources#managing-images">Import a database server image from your local machine</a> using the <strong>Import</strong> button on the <em>Images</em> component page</li>
<li>Pull a database server image from a registry (covered in this tutorial)</li>
</ul>
<p>This tutorial focuses on creating a PostgreSQL server instance by pulling the <code>quay.io/fedora/postgresql-16</code> image from the <em>quay.io</em> registry.</p>
<h2 class="anchor anchorWithStickyNavbar_JmGV" id="before-you-begin">Before you begin<a href="#before-you-begin" class="hash-link" aria-label="Direct link to Before you begin" title="Direct link to Before you begin"></a></h2>
<p>Make sure you have:</p>
<ul>
<li><a href="/docs/installation">Installed Podman Desktop</a>.</li>
<li><a href="/docs/podman/creating-a-podman-machine">A running Podman machine</a>.</li>
<li>A developer role.</li>
</ul>
<h2 class="anchor anchorWithStickyNavbar_JmGV" id="pulling-a-postgresql-server-image">Pulling a PostgreSQL server image<a href="#pulling-a-postgresql-server-image" class="hash-link" aria-label="Direct link to Pulling a PostgreSQL server image" title="Direct link to Pulling a PostgreSQL server image"></a></h2>
<ol>
<li>Click <strong>Images</strong> in the left navigation pane.</li>
<li>Click the <strong>Pull</strong> button.
<img decoding="async" loading="lazy" alt="pulling an image" src="/assets/images/pull-button-b61a933a48870abeefb656425505cdf1.png" width="983" height="187" class="img_SS3x"></li>
<li>Enter the name of the image to pull from the registry.</li>
<li>Click <strong>Pull image</strong>. A download complete notification opens.
<img decoding="async" loading="lazy" alt="clicking the pull button" src="/assets/images/click-pull-image-020dee62bb11f3d9e9f3b62c2482cbb0.png" width="981" height="546" class="img_SS3x"></li>
<li>Click <strong>Done</strong>.
<img decoding="async" loading="lazy" alt="image pulled successfully" src="/assets/images/image-successfully-pulled-13e3d2c1b3dd2cf2b2176b9b90ece773.png" width="979" height="316" class="img_SS3x"></li>
<li>View the newly created <code>quay.io/fedora/postgresql-16</code> image on the same page.
<img decoding="async" loading="lazy" alt="image added on the page" src="/assets/images/new-image-added-30bcc973e8ac784a28895b18d9655371.png" width="996" height="177" class="img_SS3x"></li>
</ol>
<h2 class="anchor anchorWithStickyNavbar_JmGV" id="creating-a-postgresql-server-instance">Creating a PostgreSQL server instance<a href="#creating-a-postgresql-server-instance" class="hash-link" aria-label="Direct link to Creating a PostgreSQL server instance" title="Direct link to Creating a PostgreSQL server instance"></a></h2>
<ol>
<li>
<p>Click <strong>Images</strong> in the left navigation pane.</p>
</li>
<li>
<p>Click the <strong>Run Image</strong> icon corresponding to the PostgreSQL server image you want to run.
<img decoding="async" loading="lazy" alt="running an image" src="/assets/images/run-image-icon-7bbf95c413596d1a899d3af1d30e7460.png" width="991" height="185" class="img_SS3x"></p>
</li>
<li>
<p>Configure the basic details, such as container name, port mapping, and environment variables for the PostgreSQL server instance.</p>
</li>
<li>
<p>Click <strong>Start Container</strong>.
<img decoding="async" loading="lazy" alt="starting a container" src="/assets/images/starting-a-postgresql-container-eaf09f815af6044b5c3b1fba5882fcd8.png" width="994" height="622" class="img_SS3x"></p>
</li>
<li>
<p>View the successful operation notification in the <em>Tty</em> tab of the <em>Container Details</em> page.
<img decoding="async" loading="lazy" alt="sql server started" src="/assets/images/postgresql-server-started-d473dead665265b5e300cf1a879d9240.png" width="1005" height="574" class="img_SS3x"></p>
<div class="theme-admonition theme-admonition-note admonition_WCGJ alert alert--secondary"><div class="admonitionHeading_GCBg"><span class="admonitionIcon_L39b"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"></path></svg></span>note</div><div class="admonitionContent_pbrs"><p>You can also check the <em>Logs</em> tab for the same notification.</p></div></div>
</li>
<li>
<p>Click the <strong>close</strong> icon on the right hand side of the page.</p>
</li>
<li>
<p>Click <strong>Containers</strong> in the left navigation pane.</p>
</li>
<li>
<p>View the newly created PostgreSQL server container on the page.
<img decoding="async" loading="lazy" alt="database container created" src="/assets/images/database-container-created-96d3e084032be89d60aff3fe735e29d6.png" width="994" height="393" class="img_SS3x"></p>
</li>
</ol>
<h2 class="anchor anchorWithStickyNavbar_JmGV" id="accessing-the-instance-from-terminal">Accessing the instance from terminal<a href="#accessing-the-instance-from-terminal" class="hash-link" aria-label="Direct link to Accessing the instance from terminal" title="Direct link to Accessing the instance from terminal"></a></h2>
<ol>
<li>
<p>Click <strong>Containers</strong> in the left navigation pane.</p>
</li>
<li>
<p>Click the created <code>postgresql-database</code> container. The <em>Container Details</em> page opens.
<img decoding="async" loading="lazy" alt="database container" src="/assets/images/database-container-created-96d3e084032be89d60aff3fe735e29d6.png" width="994" height="393" class="img_SS3x"></p>
</li>
<li>
<p>Select the <strong>Terminal</strong> tab.</p>
</li>
<li>
<p>Run the <code>psql</code> command to connect to the database server. The prompt changes to <code>postgres=#</code>.
<img decoding="async" loading="lazy" alt="connect to the PostgreSQL server instance" src="/assets/images/connect-to-postgresql-f1e17c026240963edac51b465d8ecfe4.png" width="1007" height="201" class="img_SS3x"></p>
</li>
<li>
<p>Interact with the database server by running any PostgreSQL commands, such as <code>\list</code>:
<img decoding="async" loading="lazy" alt="interact with the database" src="/assets/images/interacted-with-database-5a2cd6462083643891b88f15dcfc5b0d.png" width="1002" height="305" class="img_SS3x"></p>
</li>
</ol>
<div class="theme-admonition theme-admonition-note admonition_WCGJ alert alert--secondary"><div class="admonitionHeading_GCBg"><span class="admonitionIcon_L39b"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"></path></svg></span>note</div><div class="admonitionContent_pbrs"><p>To access this database server instance from inside a running application container, use the <code>podman exec -it postgresql-database /bin/bash</code> command.</p></div></div></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-tags-row"><div class="col"><b>Tags:</b><ul class="tags_Ow0B padding--none margin-left--sm"><li class="tag_DFxh"><a class="tag_otG2 tagRegular_s0E1" href="/tutorial/tags/podman-desktop">podman-desktop</a></li><li class="tag_DFxh"><a class="tag_otG2 tagRegular_s0E1" href="/tutorial/tags/interacting-with-databases">interacting-with-databases</a></li></ul></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/tutorial/deploying-a-kubernetes-application"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Deploying a Kubernetes application</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/tutorial/managing-your-application-resources"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Managing your application resources</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_XG6w thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#before-you-begin" class="table-of-contents__link toc-highlight">Before you begin</a></li><li><a href="#pulling-a-postgresql-server-image" class="table-of-contents__link toc-highlight">Pulling a PostgreSQL server image</a></li><li><a href="#creating-a-postgresql-server-instance" class="table-of-contents__link toc-highlight">Creating a PostgreSQL server instance</a></li><li><a href="#accessing-the-instance-from-terminal" class="table-of-contents__link toc-highlight">Accessing the instance from terminal</a></li></ul></div></div></div></div></main></div></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/docs/installation">Installing Podman Desktop</a></li><li class="footer__item"><a class="footer__link-item" href="/docs/migrating-from-docker">Migrating from Docker</a></li><li class="footer__item"><a class="footer__link-item" href="/docs/kubernetes">Working with Kubernetes</a></li><li class="footer__item"><a class="footer__link-item" href="/docs/troubleshooting">Troubleshooting</a></li></ul></div><div class="col footer__col"><div class="footer__title">Links</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://github.com/podman-desktop/podman-desktop" target="_blank" rel="noopener noreferrer" class="footer__link-item">GitHub<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPrP"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discord.com/invite/x5GzFF6QH4" target="_blank" rel="noopener noreferrer" class="footer__link
<div class="w-80"><img class="dark:hidden" alt="Cloud Native Computing Foundation" src="/img/cncf-logo.svg"><img class="hidden dark:inline" alt="Cloud Native Computing Foundation" src="/img/cncf-logo-dark.svg"></div>
<div>We are a <a href="https://cncf.io/">Cloud Native Computing Foundation</a> sandbox project.</div>
<div class="text-sm">
© Copyright podman desktop Contributors 2025. © 2025 The Linux Foundation. All rights reserved.
</div>
<div class="text-xs">The Linux Foundation has registered trademarks and uses trademarks. For a list of trademarks of The Linux Foundation, please see our <a href="https://www.linuxfoundation.org/trademark-usage/"> Trademark Usage</a> page.
</div>
</div></div></div></div></footer></div>
</body>
</html>