{"id":230,"date":"2024-07-21T11:43:52","date_gmt":"2024-07-21T11:43:52","guid":{"rendered":"https:\/\/dockerpros.com\/?p=230"},"modified":"2024-07-21T11:43:52","modified_gmt":"2024-07-21T11:43:52","slug":"how-do-i-use-docker-with-jenkins","status":"publish","type":"post","link":"https:\/\/dockerpros.com\/it\/integrations-and-use-cases\/how-do-i-use-docker-with-jenkins\/","title":{"rendered":"Come posso usare Docker con Jenkins?"},"content":{"rendered":"<h1>How to Use Docker with Jenkins: An Advanced Guide<\/h1>\n<p>In the world of continuous integration and continuous deployment (CI\/CD), Jenkins stands out as one of the most popular automation servers. Coupled with Docker, a powerful platform for containerization, Jenkins can enhance your development and deployment processes significantly. This article delves into how to effectively use Docker with Jenkins, providing insights into configuration, best practices, and advanced strategies.<\/p>\n<h2>Understanding Jenkins and Docker<\/h2>\n<h3>What is Jenkins?<\/h3>\n<p>Jenkins is an open-source automation server used to automate the building, testing, and deployment of software. It allows developers to integrate changes into a shared <span class=\"glossaryai-tooltip glossary-term-659\"><span class=\"glossaryai-link\"><a href=\"https:\/\/dockerpros.com\/it\/wiki\/repository\/\" target=\"_blank\">repository<\/a><\/span><span class=\"gai-content-hidden glossaryai-tooltip-content\"><span class=\"gai-tooltip-body\"><span class=\"glossaryai-tooltip-text\">A repository is a centralized location where data, code, or documents are stored, managed, and maintained. It facilitates version control, collaboration, and efficient resource sharing among users.<span class=\"glossaryai-more-link\"> <a href=\"https:\/\/dockerpros.com\/it\/wiki\/repository\/\">More \u00bb<\/a><\/span><\/span><span class=\"gai-tooltip-video-wrapper\"><span class=\"gai-tooltip-video\" data-src=\"https:\/\/www.youtube.com\/embed\/_OXj8BGxNPY?rel=0&#038;modestbranding=1\"><\/span><\/span><\/span><\/span><\/span>, making it easier to detect issues early in the development cycle. Jenkins supports numerous plugins that extend its functionalities, enabling it to work with virtually any technology <span class=\"glossaryai-tooltip glossary-term-682\"><span class=\"glossaryai-link\"><a href=\"https:\/\/dockerpros.com\/it\/wiki\/stack\/\" target=\"_blank\">stack<\/a><\/span><span class=\"gai-content-hidden glossaryai-tooltip-content\"><span class=\"gai-tooltip-body\"><span class=\"glossaryai-tooltip-text\">A stack is a data structure that operates on a Last In, First Out (LIFO) principle, where the most recently added element is the first to be removed. It supports two primary operations: push and pop.<span class=\"glossaryai-more-link\"> <a href=\"https:\/\/dockerpros.com\/it\/wiki\/stack\/\">More \u00bb<\/a><\/span><\/span><\/span><\/span><\/span>.<\/p>\n<h3>What is Docker?<\/h3>\n<p>Docker is a tool designed to make it easier to create, deploy, and <span class=\"glossaryai-tooltip glossary-term-672\"><span class=\"glossaryai-link\"><a href=\"https:\/\/dockerpros.com\/it\/wiki\/run\/\" target=\"_blank\">run<\/a><\/span><span class=\"gai-content-hidden glossaryai-tooltip-content\"><span class=\"gai-tooltip-body\"><span class=\"glossaryai-tooltip-text\">\"RUN\" refers to a command in various programming languages and operating systems to execute a specified program or script. It initiates processes, providing a controlled environment for task execution.<span class=\"glossaryai-more-link\"> <a href=\"https:\/\/dockerpros.com\/it\/wiki\/run\/\">More \u00bb<\/a><\/span><\/span><\/span><\/span><\/span> applications by using containers. Containers package an application and its dependencies together, ensuring that it works uniformly across different environments. By isolating applications from the underlying system, Docker allows for consistent development, testing, and production workflows.<\/p>\n<h2>Why Integrate Docker with Jenkins?<\/h2>\n<p>Integrating Docker with Jenkins offers several advantages:<\/p>\n<ol>\n<li><strong>Isolation<\/strong>: Jenkins jobs can <span class=\"glossaryai-tooltip glossary-term-672\"><span class=\"glossaryai-link\"><a href=\"https:\/\/dockerpros.com\/it\/wiki\/run\/\" target=\"_blank\">run<\/a><\/span><span class=\"gai-content-hidden glossaryai-tooltip-content\"><span class=\"gai-tooltip-body\"><span class=\"glossaryai-tooltip-text\">\"RUN\" refers to a command in various programming languages and operating systems to execute a specified program or script. It initiates processes, providing a controlled environment for task execution.<span class=\"glossaryai-more-link\"> <a href=\"https:\/\/dockerpros.com\/it\/wiki\/run\/\">More \u00bb<\/a><\/span><\/span><\/span><\/span><\/span> in isolated containers, ensuring no interference between builds.<\/li>\n<li><strong>Environment Consistency<\/strong>: Docker images encapsulate all dependencies, ensuring that builds <span class=\"glossaryai-tooltip glossary-term-672\"><span class=\"glossaryai-link\"><a href=\"https:\/\/dockerpros.com\/it\/wiki\/run\/\" target=\"_blank\">run<\/a><\/span><span class=\"gai-content-hidden glossaryai-tooltip-content\"><span class=\"gai-tooltip-body\"><span class=\"glossaryai-tooltip-text\">\"RUN\" refers to a command in various programming languages and operating systems to execute a specified program or script. It initiates processes, providing a controlled environment for task execution.<span class=\"glossaryai-more-link\"> <a href=\"https:\/\/dockerpros.com\/it\/wiki\/run\/\">More \u00bb<\/a><\/span><\/span><\/span><\/span><\/span> in the same environment regardless of where the Jenkins server is located.<\/li>\n<li><strong>Scalability<\/strong>: Docker allows for <span class=\"glossaryai-tooltip glossary-term-696\"><span class=\"glossaryai-link\"><a href=\"https:\/\/dockerpros.com\/it\/wiki\/scaling\/\" target=\"_blank\">scaling<\/a><\/span><span class=\"gai-content-hidden glossaryai-tooltip-content\"><span class=\"gai-tooltip-body\"><span class=\"glossaryai-tooltip-text\">Scaling refers to the process of adjusting the capacity of a system to accommodate varying loads. It can be achieved through vertical scaling, which enhances existing resources, or horizontal scaling, which adds additional resources.<span class=\"glossaryai-more-link\"> <a href=\"https:\/\/dockerpros.com\/it\/wiki\/scaling\/\">More \u00bb<\/a><\/span><\/span><\/span><\/span><\/span> Jenkins agents (workers) effortlessly, making it easier to handle multiple jobs simultaneously.<\/li>\n<li><strong>Simplified Dependency Management<\/strong>: With Docker, managing dependencies becomes straightforward\u2014everything needed to <span class=\"glossaryai-tooltip glossary-term-672\"><span class=\"glossaryai-link\"><a href=\"https:\/\/dockerpros.com\/it\/wiki\/run\/\" target=\"_blank\">run<\/a><\/span><span class=\"gai-content-hidden glossaryai-tooltip-content\"><span class=\"gai-tooltip-body\"><span class=\"glossaryai-tooltip-text\">\"RUN\" refers to a command in various programming languages and operating systems to execute a specified program or script. It initiates processes, providing a controlled environment for task execution.<span class=\"glossaryai-more-link\"> <a href=\"https:\/\/dockerpros.com\/it\/wiki\/run\/\">More \u00bb<\/a><\/span><\/span><\/span><\/span><\/span> the application is bundled together.<\/li>\n<\/ol>\n<h2>Setting Up Docker with Jenkins<\/h2>\n<h3>Prerequisites<\/h3>\n<p>Before diving into the integration process, ensure you have the following:<\/p>\n<ul>\n<li>A working Jenkins instance (preferably the latest version).<\/li>\n<li>Docker installed on the same machine as Jenkins or accessible from it.<\/li>\n<li>Basic knowledge of Docker commands and Jenkins.<\/li>\n<\/ul>\n<h3>Step 1: Install Docker<\/h3>\n<p>If you haven&#8217;t installed Docker yet, follow the official Docker installation guide for your operating system. Once installed, confirm that Docker is working by running:<\/p>\n<pre><code class=\"language-bash\">docker --version<\/code><\/pre>\n<h3>Step 2: Install the Docker Plugin for Jenkins<\/h3>\n<ol>\n<li>Open your Jenkins dashboard.<\/li>\n<li>Go to <strong>Manage Jenkins<\/strong> &gt; <strong>Manage Plugins<\/strong>.<\/li>\n<li>Under the <strong>Available<\/strong> tab, search for &quot;Docker&quot; and install the <strong><span class=\"glossaryai-tooltip glossary-term-702\"><span class=\"glossaryai-link\"><a href=\"https:\/\/dockerpros.com\/it\/wiki\/docker-plugin\/\" target=\"_blank\">Docker plugin<\/a><\/span><span class=\"gai-content-hidden glossaryai-tooltip-content\"><span class=\"gai-tooltip-body\"><span class=\"glossaryai-tooltip-text\">Docker plugins extend Docker's capabilities by enabling additional functionalities through a modular architecture. They allow integration with external services, enhancing container management and resource handling.<span class=\"glossaryai-more-link\"> <a href=\"https:\/\/dockerpros.com\/it\/wiki\/docker-plugin\/\">More \u00bb<\/a><\/span><\/span><\/span><\/span><\/span><\/strong>. This plugin allows Jenkins to communicate with Docker.<\/li>\n<li>Restart Jenkins to ensure that the plugin is loaded correctly.<\/li>\n<\/ol>\n<h3>Step 3: Configure Docker in Jenkins<\/h3>\n<ol>\n<li>Go to <strong>Manage Jenkins<\/strong> &gt; <strong>Configure System<\/strong>.<\/li>\n<li>Scroll down to the <strong>Docker<\/strong> section.<\/li>\n<li>Click on <strong><span class=\"glossaryai-tooltip glossary-term-674\"><span class=\"glossaryai-link\"><a href=\"https:\/\/dockerpros.com\/it\/wiki\/add\/\" target=\"_blank\">Add<\/a><\/span><span class=\"gai-content-hidden glossaryai-tooltip-content\"><span class=\"gai-tooltip-body\"><span class=\"glossaryai-tooltip-text\">The ADD instruction in Docker is a command used in Dockerfiles to copy files and directories from a host machine into a Docker image during the build process. It not only facilitates the transfer of local files but also provides additional functionality, such as automatically extracting compressed files and fetching remote files via HTTP or HTTPS.<span class=\"glossaryai-more-link\"> <a href=\"https:\/\/dockerpros.com\/it\/wiki\/add\/\">More \u00bb<\/a><\/span><\/span><\/span><\/span><\/span> Docker<\/strong> and configure your Docker server settings:\n<ul>\n<li><strong>Docker Host URI<\/strong>: This typically defaults to <code>unix:\/\/\/var\/run\/docker.sock<\/code> for Linux systems.<\/li>\n<li><strong>Credentials<\/strong>: If your Docker server requires authentication, provide the necessary credentials.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<h3>Step 4: Set Up a Jenkins Pipeline with Docker<\/h3>\n<p>To create a Jenkins pipeline that leverages Docker, follow these steps:<\/p>\n<ol>\n<li>Create a new pipeline job in Jenkins.<\/li>\n<li>In the pipeline configuration, select &quot;Pipeline script&quot; as the definition.<\/li>\n<li>Use the following example Jenkinsfile to create a simple pipeline:<\/li>\n<\/ol>\n<pre><code class=\"language-groovy\">pipeline {\n    agent {\n        docker {\n            <span class=\"glossaryai-tooltip glossary-term-651\"><span class=\"glossaryai-link\"><a href=\"https:\/\/dockerpros.com\/it\/wiki\/image\/\" target=\"_blank\">image<\/a><\/span><span class=\"gai-content-hidden glossaryai-tooltip-content\"><span class=\"gai-tooltip-body\"><span class=\"glossaryai-tooltip-text\">An image is a visual representation of an object or scene, typically composed of pixels in digital formats. It can convey information, evoke emotions, and facilitate communication across various media.<span class=\"glossaryai-more-link\"> <a href=\"https:\/\/dockerpros.com\/it\/wiki\/image\/\">More \u00bb<\/a><\/span><\/span><\/span><\/span><\/span> 'maven:3.6.3-jdk-11' \/\/ Use a specific Docker image\n            args '-v \/root\/.m2:\/root\/.m2' \/\/ Mount <span class=\"glossaryai-tooltip glossary-term-660\"><span class=\"glossaryai-link\"><a href=\"https:\/\/dockerpros.com\/it\/wiki\/volume\/\" target=\"_blank\">volume<\/a><\/span><span class=\"gai-content-hidden glossaryai-tooltip-content\"><span class=\"gai-tooltip-body\"><span class=\"glossaryai-tooltip-text\">Volume is a quantitative measure of three-dimensional space occupied by an object or substance, typically expressed in cubic units. It is fundamental in fields such as physics, chemistry, and engineering.<span class=\"glossaryai-more-link\"> <a href=\"https:\/\/dockerpros.com\/it\/wiki\/volume\/\">More \u00bb<\/a><\/span><\/span><\/span><\/span><\/span> for Maven <span class=\"glossaryai-tooltip glossary-term-659\"><span class=\"glossaryai-link\"><a href=\"https:\/\/dockerpros.com\/it\/wiki\/repository\/\" target=\"_blank\">repository<\/a><\/span><span class=\"gai-content-hidden glossaryai-tooltip-content\"><span class=\"gai-tooltip-body\"><span class=\"glossaryai-tooltip-text\">A repository is a centralized location where data, code, or documents are stored, managed, and maintained. It facilitates version control, collaboration, and efficient resource sharing among users.<span class=\"glossaryai-more-link\"> <a href=\"https:\/\/dockerpros.com\/it\/wiki\/repository\/\">More \u00bb<\/a><\/span><\/span><span class=\"gai-tooltip-video-wrapper\"><span class=\"gai-tooltip-video\" data-src=\"https:\/\/www.youtube.com\/embed\/_OXj8BGxNPY?rel=0&#038;modestbranding=1\"><\/span><\/span><\/span><\/span><\/span> caching\n        }\n    }\n    stages {\n        stage('Build') {\n            steps {\n                sh 'mvn clean package'\n            }\n        }\n        stage('Test') {\n            steps {\n                sh 'mvn test'\n            }\n        }\n        stage('Deploy') {\n            steps {\n                sh 'docker build -t myapp:${<span class=\"glossaryai-tooltip glossary-term-671\"><span class=\"glossaryai-link\"><a href=\"https:\/\/dockerpros.com\/it\/wiki\/env\/\" target=\"_blank\">env<\/a><\/span><span class=\"gai-content-hidden glossaryai-tooltip-content\"><span class=\"gai-tooltip-body\"><span class=\"glossaryai-tooltip-text\">ENV, or Environmental Variables, are crucial in software development and system configuration. They store dynamic values that affect the execution environment, enabling flexible application behavior across different platforms.<span class=\"glossaryai-more-link\"> <a href=\"https:\/\/dockerpros.com\/it\/wiki\/env\/\">More \u00bb<\/a><\/span><\/span><\/span><\/span><\/span>.BUILD_ID} .'\n                sh 'docker <span class=\"glossaryai-tooltip glossary-term-672\"><span class=\"glossaryai-link\"><a href=\"https:\/\/dockerpros.com\/it\/wiki\/run\/\" target=\"_blank\">run<\/a><\/span><span class=\"gai-content-hidden glossaryai-tooltip-content\"><span class=\"gai-tooltip-body\"><span class=\"glossaryai-tooltip-text\">\"RUN\" refers to a command in various programming languages and operating systems to execute a specified program or script. It initiates processes, providing a controlled environment for task execution.<span class=\"glossaryai-more-link\"> <a href=\"https:\/\/dockerpros.com\/it\/wiki\/run\/\">More \u00bb<\/a><\/span><\/span><\/span><\/span><\/span> -d -p 8080:8080 myapp:${<span class=\"glossaryai-tooltip glossary-term-671\"><span class=\"glossaryai-link\"><a href=\"https:\/\/dockerpros.com\/it\/wiki\/env\/\" target=\"_blank\">env<\/a><\/span><span class=\"gai-content-hidden glossaryai-tooltip-content\"><span class=\"gai-tooltip-body\"><span class=\"glossaryai-tooltip-text\">ENV, or Environmental Variables, are crucial in software development and system configuration. They store dynamic values that affect the execution environment, enabling flexible application behavior across different platforms.<span class=\"glossaryai-more-link\"> <a href=\"https:\/\/dockerpros.com\/it\/wiki\/env\/\">More \u00bb<\/a><\/span><\/span><\/span><\/span><\/span>.BUILD_ID}'\n            }\n        }\n    }\n}<\/code><\/pre>\n<h3>Explanation of the Jenkinsfile<\/h3>\n<ul>\n<li><strong>agent<\/strong>: This specifies the Docker <span class=\"glossaryai-tooltip glossary-term-651\"><span class=\"glossaryai-link\"><a href=\"https:\/\/dockerpros.com\/it\/wiki\/image\/\" target=\"_blank\">image<\/a><\/span><span class=\"gai-content-hidden glossaryai-tooltip-content\"><span class=\"gai-tooltip-body\"><span class=\"glossaryai-tooltip-text\">An image is a visual representation of an object or scene, typically composed of pixels in digital formats. It can convey information, evoke emotions, and facilitate communication across various media.<span class=\"glossaryai-more-link\"> <a href=\"https:\/\/dockerpros.com\/it\/wiki\/image\/\">More \u00bb<\/a><\/span><\/span><\/span><\/span><\/span> to be used for the pipeline. In this case, we are using a Maven <span class=\"glossaryai-tooltip glossary-term-651\"><span class=\"glossaryai-link\"><a href=\"https:\/\/dockerpros.com\/it\/wiki\/image\/\" target=\"_blank\">image<\/a><\/span><span class=\"gai-content-hidden glossaryai-tooltip-content\"><span class=\"gai-tooltip-body\"><span class=\"glossaryai-tooltip-text\">An image is a visual representation of an object or scene, typically composed of pixels in digital formats. It can convey information, evoke emotions, and facilitate communication across various media.<span class=\"glossaryai-more-link\"> <a href=\"https:\/\/dockerpros.com\/it\/wiki\/image\/\">More \u00bb<\/a><\/span><\/span><\/span><\/span><\/span> for building Java applications.<\/li>\n<li><strong>stages<\/strong>: Defines the different stages of the pipeline (Build, Test, Deploy).<\/li>\n<li><strong>sh<\/strong>: Executes shell commands inside the Docker <span class=\"glossaryai-tooltip glossary-term-650\"><span class=\"glossaryai-link\"><a href=\"https:\/\/dockerpros.com\/it\/wiki\/container\/\" target=\"_blank\">container<\/a><\/span><span class=\"gai-content-hidden glossaryai-tooltip-content\"><span class=\"gai-tooltip-body\"><span class=\"glossaryai-tooltip-text\">Containers are lightweight, portable units that encapsulate software and its dependencies, enabling consistent execution across different environments. They leverage OS-level virtualization for efficiency.<span class=\"glossaryai-more-link\"> <a href=\"https:\/\/dockerpros.com\/it\/wiki\/container\/\">More \u00bb<\/a><\/span><\/span><\/span><\/span><\/span>.<\/li>\n<\/ul>\n<h2>Best Practices for Using Docker with Jenkins<\/h2>\n<h3>1. Use Official Images<\/h3>\n<p>Always use official Docker images when possible. They are maintained by the community and are usually more secure and optimized. For example, using <code>maven:3.6.3-jdk-11<\/code> ensures you&#8217;re getting a well-supported environment.<\/p>\n<h3>2. Keep Images Lightweight<\/h3>\n<p>Minimize the size of your Docker images. This not only speeds up the build process but also conserves storage space. Use multi-stage builds to create lightweight production images.<\/p>\n<h3>3. Clean Up After Builds<\/h3>\n<p>Regularly remove unused Docker images and containers to avoid cluttering your system. Implement cleanup steps in your Jenkins pipeline:<\/p>\n<pre><code class=\"language-groovy\">post {\n    always {\n        sh 'docker system prune -f'\n    }\n}<\/code><\/pre>\n<h3>4. Use Volume Mounts for Caching<\/h3>\n<p>To speed up subsequent builds, use <span class=\"glossaryai-tooltip glossary-term-660\"><span class=\"glossaryai-link\"><a href=\"https:\/\/dockerpros.com\/it\/wiki\/volume\/\" target=\"_blank\">volume<\/a><\/span><span class=\"gai-content-hidden glossaryai-tooltip-content\"><span class=\"gai-tooltip-body\"><span class=\"glossaryai-tooltip-text\">Volume is a quantitative measure of three-dimensional space occupied by an object or substance, typically expressed in cubic units. It is fundamental in fields such as physics, chemistry, and engineering.<span class=\"glossaryai-more-link\"> <a href=\"https:\/\/dockerpros.com\/it\/wiki\/volume\/\">More \u00bb<\/a><\/span><\/span><\/span><\/span><\/span> mounts for caching dependencies. This way, the data persists even if the <span class=\"glossaryai-tooltip glossary-term-650\"><span class=\"glossaryai-link\"><a href=\"https:\/\/dockerpros.com\/it\/wiki\/container\/\" target=\"_blank\">container<\/a><\/span><span class=\"gai-content-hidden glossaryai-tooltip-content\"><span class=\"gai-tooltip-body\"><span class=\"glossaryai-tooltip-text\">Containers are lightweight, portable units that encapsulate software and its dependencies, enabling consistent execution across different environments. They leverage OS-level virtualization for efficiency.<span class=\"glossaryai-more-link\"> <a href=\"https:\/\/dockerpros.com\/it\/wiki\/container\/\">More \u00bb<\/a><\/span><\/span><\/span><\/span><\/span> is removed:<\/p>\n<pre><code class=\"language-groovy\">args '-v \/root\/.m2:\/root\/.m2'<\/code><\/pre>\n<h3>5. Secure Your Docker Environment<\/h3>\n<p>Ensure your Docker <span class=\"glossaryai-tooltip glossary-term-667\"><span class=\"glossaryai-link\"><a href=\"https:\/\/dockerpros.com\/it\/wiki\/daemon\/\" target=\"_blank\">daemon<\/a><\/span><span class=\"gai-content-hidden glossaryai-tooltip-content\"><span class=\"gai-tooltip-body\"><span class=\"glossaryai-tooltip-text\">A daemon is a background process in computing that runs autonomously, performing tasks without user intervention. It typically handles system or application-level functions, enhancing efficiency.<span class=\"glossaryai-more-link\"> <a href=\"https:\/\/dockerpros.com\/it\/wiki\/daemon\/\">More \u00bb<\/a><\/span><\/span><\/span><\/span><\/span> is running securely. Restrict access to the Docker socket and use Docker\u2019s user namespaces to isolate <span class=\"glossaryai-tooltip glossary-term-650\"><span class=\"glossaryai-link\"><a href=\"https:\/\/dockerpros.com\/it\/wiki\/container\/\" target=\"_blank\">container<\/a><\/span><span class=\"gai-content-hidden glossaryai-tooltip-content\"><span class=\"gai-tooltip-body\"><span class=\"glossaryai-tooltip-text\">Containers are lightweight, portable units that encapsulate software and its dependencies, enabling consistent execution across different environments. They leverage OS-level virtualization for efficiency.<span class=\"glossaryai-more-link\"> <a href=\"https:\/\/dockerpros.com\/it\/wiki\/container\/\">More \u00bb<\/a><\/span><\/span><\/span><\/span><\/span> processes. Additionally, regularly scan your images for vulnerabilities.<\/p>\n<h2>Advanced Strategies<\/h2>\n<h3>Using Docker Compose with Jenkins<\/h3>\n<p><span class=\"glossaryai-tooltip glossary-term-654\"><span class=\"glossaryai-link\"><a href=\"https:\/\/dockerpros.com\/it\/wiki\/docker-compose\/\" target=\"_blank\">Docker Compose<\/a><\/span><span class=\"gai-content-hidden glossaryai-tooltip-content\"><span class=\"gai-tooltip-body\"><span class=\"glossaryai-tooltip-text\">Docker Compose is a tool for defining and running multi-container Docker applications using a YAML file. It simplifies deployment, configuration, and orchestration of services, enhancing development efficiency.<span class=\"glossaryai-more-link\"> <a href=\"https:\/\/dockerpros.com\/it\/wiki\/docker-compose\/\">More \u00bb<\/a><\/span><\/span><\/span><\/span><\/span> allows you to define and <span class=\"glossaryai-tooltip glossary-term-672\"><span class=\"glossaryai-link\"><a href=\"https:\/\/dockerpros.com\/it\/wiki\/run\/\" target=\"_blank\">run<\/a><\/span><span class=\"gai-content-hidden glossaryai-tooltip-content\"><span class=\"gai-tooltip-body\"><span class=\"glossaryai-tooltip-text\">\"RUN\" refers to a command in various programming languages and operating systems to execute a specified program or script. It initiates processes, providing a controlled environment for task execution.<span class=\"glossaryai-more-link\"> <a href=\"https:\/\/dockerpros.com\/it\/wiki\/run\/\">More \u00bb<\/a><\/span><\/span><\/span><\/span><\/span> multi-container applications. In a Jenkins pipeline, you can use it as follows:<\/p>\n<pre><code class=\"language-groovy\">pipeline {\n    agent any\n    stages {\n        stage('Build and Test') {\n            steps {\n                script {\n                    sh 'docker-compose up --build --abort-on-container-exit'\n                }\n            }\n        }\n    }\n}<\/code><\/pre>\n<h3>Running Jenkins Inside Docker<\/h3>\n<p>For even more flexibility, consider running Jenkins itself inside a Docker <span class=\"glossaryai-tooltip glossary-term-650\"><span class=\"glossaryai-link\"><a href=\"https:\/\/dockerpros.com\/it\/wiki\/container\/\" target=\"_blank\">container<\/a><\/span><span class=\"gai-content-hidden glossaryai-tooltip-content\"><span class=\"gai-tooltip-body\"><span class=\"glossaryai-tooltip-text\">Containers are lightweight, portable units that encapsulate software and its dependencies, enabling consistent execution across different environments. They leverage OS-level virtualization for efficiency.<span class=\"glossaryai-more-link\"> <a href=\"https:\/\/dockerpros.com\/it\/wiki\/container\/\">More \u00bb<\/a><\/span><\/span><\/span><\/span><\/span>. This method encapsulates your Jenkins setup, making it easier to manage and deploy. You can use the following command:<\/p>\n<pre><code class=\"language-bash\">docker <span class=\"glossaryai-tooltip glossary-term-672\"><span class=\"glossaryai-link\"><a href=\"https:\/\/dockerpros.com\/it\/wiki\/run\/\" target=\"_blank\">run<\/a><\/span><span class=\"gai-content-hidden glossaryai-tooltip-content\"><span class=\"gai-tooltip-body\"><span class=\"glossaryai-tooltip-text\">\"RUN\" refers to a command in various programming languages and operating systems to execute a specified program or script. It initiates processes, providing a controlled environment for task execution.<span class=\"glossaryai-more-link\"> <a href=\"https:\/\/dockerpros.com\/it\/wiki\/run\/\">More \u00bb<\/a><\/span><\/span><\/span><\/span><\/span> -d -p 8080:8080 -p 50000:50000 -v jenkins_home:\/var\/jenkins_home jenkins\/jenkins:lts<\/code><\/pre>\n<p>This command pulls the latest Jenkins Long-Term Support (LTS) <span class=\"glossaryai-tooltip glossary-term-651\"><span class=\"glossaryai-link\"><a href=\"https:\/\/dockerpros.com\/it\/wiki\/image\/\" target=\"_blank\">image<\/a><\/span><span class=\"gai-content-hidden glossaryai-tooltip-content\"><span class=\"gai-tooltip-body\"><span class=\"glossaryai-tooltip-text\">An image is a visual representation of an object or scene, typically composed of pixels in digital formats. It can convey information, evoke emotions, and facilitate communication across various media.<span class=\"glossaryai-more-link\"> <a href=\"https:\/\/dockerpros.com\/it\/wiki\/image\/\">More \u00bb<\/a><\/span><\/span><\/span><\/span><\/span>, exposing the necessary ports and persisting data.<\/p>\n<h3>Implementing Blue\/Green Deployments<\/h3>\n<p>Leverage Docker&#8217;s capabilities to implement blue\/green deployment strategies. By maintaining two identical environments, you can switch traffic between them seamlessly. In your Jenkins pipeline, you can deploy to the blue environment, <span class=\"glossaryai-tooltip glossary-term-672\"><span class=\"glossaryai-link\"><a href=\"https:\/\/dockerpros.com\/it\/wiki\/run\/\" target=\"_blank\">run<\/a><\/span><span class=\"gai-content-hidden glossaryai-tooltip-content\"><span class=\"gai-tooltip-body\"><span class=\"glossaryai-tooltip-text\">\"RUN\" refers to a command in various programming languages and operating systems to execute a specified program or script. It initiates processes, providing a controlled environment for task execution.<span class=\"glossaryai-more-link\"> <a href=\"https:\/\/dockerpros.com\/it\/wiki\/run\/\">More \u00bb<\/a><\/span><\/span><\/span><\/span><\/span> tests, and then switch to it for production traffic.<\/p>\n<h2>Monitoring and Logging<\/h2>\n<p>Integrate monitoring and logging solutions to keep track of your Jenkins jobs and Docker containers. Consider using tools like Prometheus, Grafana, and ELK <span class=\"glossaryai-tooltip glossary-term-682\"><span class=\"glossaryai-link\"><a href=\"https:\/\/dockerpros.com\/it\/wiki\/stack\/\" target=\"_blank\">Stack<\/a><\/span><span class=\"gai-content-hidden glossaryai-tooltip-content\"><span class=\"gai-tooltip-body\"><span class=\"glossaryai-tooltip-text\">A stack is a data structure that operates on a Last In, First Out (LIFO) principle, where the most recently added element is the first to be removed. It supports two primary operations: push and pop.<span class=\"glossaryai-more-link\"> <a href=\"https:\/\/dockerpros.com\/it\/wiki\/stack\/\">More \u00bb<\/a><\/span><\/span><\/span><\/span><\/span> (Elasticsearch, Logstash, Kibana) for comprehensive observability.<\/p>\n<h3>Example Logging Configuration<\/h3>\n<p>In your Docker containers, make sure the logs are being directed to stdout and stderr. Jenkins will capture these logs automatically. Here\u2019s how you can configure logging in your <span class=\"glossaryai-tooltip glossary-term-652\"><span class=\"glossaryai-link\"><a href=\"https:\/\/dockerpros.com\/it\/wiki\/dockerfile\/\" target=\"_blank\">Dockerfile<\/a><\/span><span class=\"gai-content-hidden glossaryai-tooltip-content\"><span class=\"gai-tooltip-body\"><span class=\"glossaryai-tooltip-text\">A Dockerfile is a script containing a series of instructions to automate the creation of Docker images. It specifies the base image, application dependencies, and configuration, facilitating consistent deployment across environments.<span class=\"glossaryai-more-link\"> <a href=\"https:\/\/dockerpros.com\/it\/wiki\/dockerfile\/\">More \u00bb<\/a><\/span><\/span><\/span><\/span><\/span>:<\/p>\n<pre><code class=\"language-dockerfile\">FROM maven:3.6.3-jdk-11\nCOPY your-app \/usr\/src\/app\nWORKDIR \/usr\/src\/app\nCMD [\"mvn\", \"spring-boot:run\"]<\/code><\/pre>\n<h2>Conclusion<\/h2>\n<p>Integrating Docker with Jenkins can significantly streamline your CI\/CD processes, offering consistency, scalability, and efficiency. By following best practices and utilizing advanced strategies, you can create a robust pipeline that leverages the strengths of both tools. As software development continues to evolve, embracing containers and automation will prepare your team for the challenges of the future. Happy building!<\/p>","protected":false},"excerpt":{"rendered":"<p>Per utilizzare Docker con Jenkins, inizia installando il <span class=\"glossaryai-tooltip glossary-term-702\"><span class=\"glossaryai-link\"><a href=\"https:\/\/dockerpros.com\/it\/wiki\/docker-plugin\/\" target=\"_blank\">Docker plugin<\/a><\/span><span class=\"gai-content-hidden glossaryai-tooltip-content\"><span class=\"gai-tooltip-body\"><span class=\"glossaryai-tooltip-text\">Docker plugins extend Docker's capabilities by enabling additional functionalities through a modular architecture. They allow integration with external services, enhancing container management and resource handling.<span class=\"glossaryai-more-link\"> <a href=\"https:\/\/dockerpros.com\/it\/wiki\/docker-plugin\/\">More \u00bb<\/a><\/span><\/span><\/span><\/span><\/span> in Jenkins. Configure your Jenkins job to build and <span class=\"glossaryai-tooltip glossary-term-672\"><span class=\"glossaryai-link\"><a href=\"https:\/\/dockerpros.com\/it\/wiki\/run\/\" target=\"_blank\">correre<\/a><\/span><span class=\"gai-content-hidden glossaryai-tooltip-content\"><span class=\"gai-tooltip-body\"><span class=\"glossaryai-tooltip-text\">\"RUN\" si riferisce a un comando in diversi linguaggi di programmazione e sistemi operativi per eseguire un programma o script specificato. Avvia processi, fornendo un ambiente controllato per l'esecuzione dei compiti.<span class=\"glossaryai-more-link\"> <a href=\"https:\/\/dockerpros.com\/it\/wiki\/run\/\">More \u00bb<\/a><\/span><\/span><\/span><\/span><\/span> Docker containers, allowing for streamlined CI\/CD processes.<\/p>","protected":false},"author":1,"featured_media":276,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[23],"tags":[],"class_list":["post-230","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-integrations-and-use-cases"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.0 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>How do I use Docker with Jenkins? - Dockerpros<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/dockerpros.com\/it\/integrations-and-use-cases\/how-do-i-use-docker-with-jenkins\/\" \/>\n<meta property=\"og:locale\" content=\"it_IT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How do I use Docker with Jenkins? - Dockerpros\" \/>\n<meta property=\"og:description\" content=\"To use Docker with Jenkins, start by installing the Docker plugin in Jenkins. Configure your Jenkins job to build and run Docker containers, allowing for streamlined CI\/CD processes.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/dockerpros.com\/it\/integrations-and-use-cases\/how-do-i-use-docker-with-jenkins\/\" \/>\n<meta property=\"og:site_name\" content=\"Dockerpros\" \/>\n<meta property=\"article:published_time\" content=\"2024-07-21T11:43:52+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/dockerpros.com\/wp-content\/uploads\/2024\/07\/how-do-i-use-docker-with-jenkins_230.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"800\" \/>\n\t<meta property=\"og:image:height\" content=\"600\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"dockerpros\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Scritto da\" \/>\n\t<meta name=\"twitter:data1\" content=\"dockerpros\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tempo di lettura stimato\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minuti\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/dockerpros.com\/integrations-and-use-cases\/how-do-i-use-docker-with-jenkins\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/dockerpros.com\/integrations-and-use-cases\/how-do-i-use-docker-with-jenkins\/\"},\"author\":{\"name\":\"dockerpros\",\"@id\":\"https:\/\/dockerpros.com\/#\/schema\/person\/a9b4c3d7f7a8e2b072e77d47b382a3a4\"},\"headline\":\"How do I use Docker with Jenkins?\",\"datePublished\":\"2024-07-21T11:43:52+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/dockerpros.com\/integrations-and-use-cases\/how-do-i-use-docker-with-jenkins\/\"},\"wordCount\":948,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/dockerpros.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/dockerpros.com\/integrations-and-use-cases\/how-do-i-use-docker-with-jenkins\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/dockerpros.com\/wp-content\/uploads\/2024\/07\/how-do-i-use-docker-with-jenkins_230.jpg\",\"articleSection\":[\"Integrations and Use Cases\"],\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/dockerpros.com\/integrations-and-use-cases\/how-do-i-use-docker-with-jenkins\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/dockerpros.com\/integrations-and-use-cases\/how-do-i-use-docker-with-jenkins\/\",\"url\":\"https:\/\/dockerpros.com\/integrations-and-use-cases\/how-do-i-use-docker-with-jenkins\/\",\"name\":\"How do I use Docker with Jenkins? - Dockerpros\",\"isPartOf\":{\"@id\":\"https:\/\/dockerpros.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/dockerpros.com\/integrations-and-use-cases\/how-do-i-use-docker-with-jenkins\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/dockerpros.com\/integrations-and-use-cases\/how-do-i-use-docker-with-jenkins\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/dockerpros.com\/wp-content\/uploads\/2024\/07\/how-do-i-use-docker-with-jenkins_230.jpg\",\"datePublished\":\"2024-07-21T11:43:52+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/dockerpros.com\/integrations-and-use-cases\/how-do-i-use-docker-with-jenkins\/#breadcrumb\"},\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/dockerpros.com\/integrations-and-use-cases\/how-do-i-use-docker-with-jenkins\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\/\/dockerpros.com\/integrations-and-use-cases\/how-do-i-use-docker-with-jenkins\/#primaryimage\",\"url\":\"https:\/\/dockerpros.com\/wp-content\/uploads\/2024\/07\/how-do-i-use-docker-with-jenkins_230.jpg\",\"contentUrl\":\"https:\/\/dockerpros.com\/wp-content\/uploads\/2024\/07\/how-do-i-use-docker-with-jenkins_230.jpg\",\"width\":800,\"height\":600,\"caption\":\"how-do-i-use-docker-with-jenkins-2\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/dockerpros.com\/integrations-and-use-cases\/how-do-i-use-docker-with-jenkins\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/dockerpros.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How do I use Docker with Jenkins?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/dockerpros.com\/#website\",\"url\":\"https:\/\/dockerpros.com\/\",\"name\":\"Dockerpros\",\"description\":\"DockerPros \u2013 Your Ultimate Docker Resource Hub\",\"publisher\":{\"@id\":\"https:\/\/dockerpros.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/dockerpros.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"it-IT\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/dockerpros.com\/#organization\",\"name\":\"Dockerpros\",\"url\":\"https:\/\/dockerpros.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\/\/dockerpros.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/dockerpros.com\/wp-content\/uploads\/2024\/07\/Dockerpros_logo_blanco.png\",\"contentUrl\":\"https:\/\/dockerpros.com\/wp-content\/uploads\/2024\/07\/Dockerpros_logo_blanco.png\",\"width\":532,\"height\":114,\"caption\":\"Dockerpros\"},\"image\":{\"@id\":\"https:\/\/dockerpros.com\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/dockerpros.com\/#\/schema\/person\/a9b4c3d7f7a8e2b072e77d47b382a3a4\",\"name\":\"dockerpros\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\/\/dockerpros.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/dockerpros.com\/wp-content\/litespeed\/avatar\/d13b9d4f101de1a7535b404e0c59affd.jpg?ver=1779972442\",\"contentUrl\":\"https:\/\/dockerpros.com\/wp-content\/litespeed\/avatar\/d13b9d4f101de1a7535b404e0c59affd.jpg?ver=1779972442\",\"caption\":\"dockerpros\"},\"sameAs\":[\"https:\/\/dockerpros.com\/\"],\"url\":\"https:\/\/dockerpros.com\/it\/author\/dockerpros\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Come si usa Docker con Jenkins? - Dockerpros","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/dockerpros.com\/it\/integrations-and-use-cases\/how-do-i-use-docker-with-jenkins\/","og_locale":"it_IT","og_type":"article","og_title":"How do I use Docker with Jenkins? - Dockerpros","og_description":"To use Docker with Jenkins, start by installing the Docker plugin in Jenkins. Configure your Jenkins job to build and run Docker containers, allowing for streamlined CI\/CD processes.","og_url":"https:\/\/dockerpros.com\/it\/integrations-and-use-cases\/how-do-i-use-docker-with-jenkins\/","og_site_name":"Dockerpros","article_published_time":"2024-07-21T11:43:52+00:00","og_image":[{"width":800,"height":600,"url":"https:\/\/dockerpros.com\/wp-content\/uploads\/2024\/07\/how-do-i-use-docker-with-jenkins_230.jpg","type":"image\/jpeg"}],"author":"dockerpros","twitter_card":"summary_large_image","twitter_misc":{"Scritto da":"dockerpros","Tempo di lettura stimato":"5 minuti"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/dockerpros.com\/integrations-and-use-cases\/how-do-i-use-docker-with-jenkins\/#article","isPartOf":{"@id":"https:\/\/dockerpros.com\/integrations-and-use-cases\/how-do-i-use-docker-with-jenkins\/"},"author":{"name":"dockerpros","@id":"https:\/\/dockerpros.com\/#\/schema\/person\/a9b4c3d7f7a8e2b072e77d47b382a3a4"},"headline":"How do I use Docker with Jenkins?","datePublished":"2024-07-21T11:43:52+00:00","mainEntityOfPage":{"@id":"https:\/\/dockerpros.com\/integrations-and-use-cases\/how-do-i-use-docker-with-jenkins\/"},"wordCount":948,"commentCount":0,"publisher":{"@id":"https:\/\/dockerpros.com\/#organization"},"image":{"@id":"https:\/\/dockerpros.com\/integrations-and-use-cases\/how-do-i-use-docker-with-jenkins\/#primaryimage"},"thumbnailUrl":"https:\/\/dockerpros.com\/wp-content\/uploads\/2024\/07\/how-do-i-use-docker-with-jenkins_230.jpg","articleSection":["Integrations and Use Cases"],"inLanguage":"it-IT","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/dockerpros.com\/integrations-and-use-cases\/how-do-i-use-docker-with-jenkins\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/dockerpros.com\/integrations-and-use-cases\/how-do-i-use-docker-with-jenkins\/","url":"https:\/\/dockerpros.com\/integrations-and-use-cases\/how-do-i-use-docker-with-jenkins\/","name":"Come si usa Docker con Jenkins? - Dockerpros","isPartOf":{"@id":"https:\/\/dockerpros.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/dockerpros.com\/integrations-and-use-cases\/how-do-i-use-docker-with-jenkins\/#primaryimage"},"image":{"@id":"https:\/\/dockerpros.com\/integrations-and-use-cases\/how-do-i-use-docker-with-jenkins\/#primaryimage"},"thumbnailUrl":"https:\/\/dockerpros.com\/wp-content\/uploads\/2024\/07\/how-do-i-use-docker-with-jenkins_230.jpg","datePublished":"2024-07-21T11:43:52+00:00","breadcrumb":{"@id":"https:\/\/dockerpros.com\/integrations-and-use-cases\/how-do-i-use-docker-with-jenkins\/#breadcrumb"},"inLanguage":"it-IT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/dockerpros.com\/integrations-and-use-cases\/how-do-i-use-docker-with-jenkins\/"]}]},{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/dockerpros.com\/integrations-and-use-cases\/how-do-i-use-docker-with-jenkins\/#primaryimage","url":"https:\/\/dockerpros.com\/wp-content\/uploads\/2024\/07\/how-do-i-use-docker-with-jenkins_230.jpg","contentUrl":"https:\/\/dockerpros.com\/wp-content\/uploads\/2024\/07\/how-do-i-use-docker-with-jenkins_230.jpg","width":800,"height":600,"caption":"how-do-i-use-docker-with-jenkins-2"},{"@type":"BreadcrumbList","@id":"https:\/\/dockerpros.com\/integrations-and-use-cases\/how-do-i-use-docker-with-jenkins\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/dockerpros.com\/"},{"@type":"ListItem","position":2,"name":"How do I use Docker with Jenkins?"}]},{"@type":"WebSite","@id":"https:\/\/dockerpros.com\/#website","url":"https:\/\/dockerpros.com\/","name":"Esperti Docker","description":"DockerPros \u2013 Il tuo punto di riferimento definitivo per Docker","publisher":{"@id":"https:\/\/dockerpros.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/dockerpros.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"it-IT"},{"@type":"Organization","@id":"https:\/\/dockerpros.com\/#organization","name":"Esperti Docker","url":"https:\/\/dockerpros.com\/","logo":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/dockerpros.com\/#\/schema\/logo\/image\/","url":"https:\/\/dockerpros.com\/wp-content\/uploads\/2024\/07\/Dockerpros_logo_blanco.png","contentUrl":"https:\/\/dockerpros.com\/wp-content\/uploads\/2024\/07\/Dockerpros_logo_blanco.png","width":532,"height":114,"caption":"Dockerpros"},"image":{"@id":"https:\/\/dockerpros.com\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/dockerpros.com\/#\/schema\/person\/a9b4c3d7f7a8e2b072e77d47b382a3a4","name":"professionisti Docker","image":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/dockerpros.com\/#\/schema\/person\/image\/","url":"https:\/\/dockerpros.com\/wp-content\/litespeed\/avatar\/d13b9d4f101de1a7535b404e0c59affd.jpg?ver=1779972442","contentUrl":"https:\/\/dockerpros.com\/wp-content\/litespeed\/avatar\/d13b9d4f101de1a7535b404e0c59affd.jpg?ver=1779972442","caption":"dockerpros"},"sameAs":["https:\/\/dockerpros.com\/"],"url":"https:\/\/dockerpros.com\/it\/author\/dockerpros\/"}]}},"_links":{"self":[{"href":"https:\/\/dockerpros.com\/it\/wp-json\/wp\/v2\/posts\/230","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dockerpros.com\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dockerpros.com\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dockerpros.com\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/dockerpros.com\/it\/wp-json\/wp\/v2\/comments?post=230"}],"version-history":[{"count":0,"href":"https:\/\/dockerpros.com\/it\/wp-json\/wp\/v2\/posts\/230\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/dockerpros.com\/it\/wp-json\/wp\/v2\/media\/276"}],"wp:attachment":[{"href":"https:\/\/dockerpros.com\/it\/wp-json\/wp\/v2\/media?parent=230"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dockerpros.com\/it\/wp-json\/wp\/v2\/categories?post=230"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dockerpros.com\/it\/wp-json\/wp\/v2\/tags?post=230"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}