<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Docker Archives - scmGalaxy</title>
	<atom:link href="https://www.scmgalaxy.com/tutorials/tag/docker/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.scmgalaxy.com/tutorials/tag/docker/</link>
	<description>A Platform for Software Engineers</description>
	<lastBuildDate>Sat, 21 Feb 2026 07:13:36 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1</generator>
	<item>
		<title>Mastering Docker Compose: Use Cases, Architecture, and Workflow</title>
		<link>https://www.scmgalaxy.com/tutorials/mastering-docker-compose-use-cases-architecture-and-workflow/</link>
					<comments>https://www.scmgalaxy.com/tutorials/mastering-docker-compose-use-cases-architecture-and-workflow/#respond</comments>
		
		<dc:creator><![CDATA[Vijay K]]></dc:creator>
		<pubDate>Mon, 02 Jun 2025 17:54:00 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Containerization]]></category>
		<category><![CDATA[ContainerOrchestration]]></category>
		<category><![CDATA[Devops]]></category>
		<category><![CDATA[Docker]]></category>
		<category><![CDATA[DockerCompose]]></category>
		<category><![CDATA[Microservices]]></category>
		<guid isPermaLink="false">https://www.scmgalaxy.com/tutorials/?p=12520</guid>

					<description><![CDATA[<p>What is Docker Compose? Docker Compose is a tool used to define and manage multi-container Docker applications. Instead of managing [&#8230;]</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/mastering-docker-compose-use-cases-architecture-and-workflow/">Mastering Docker Compose: Use Cases, Architecture, and Workflow</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-large"><img fetchpriority="high" decoding="async" width="1024" height="492" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2025/06/image-20-1024x492.png" alt="" class="wp-image-12529" srcset="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2025/06/image-20-1024x492.png 1024w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2025/06/image-20-300x144.png 300w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2025/06/image-20-768x369.png 768w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2025/06/image-20.png 1400w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<hr class="wp-block-separator has-alpha-channel-opacity">



<h3 class="wp-block-heading"><strong>What is Docker Compose?</strong></h3>



<p class="wp-block-paragraph">Docker Compose is a tool used to define and manage multi-container Docker applications. Instead of managing each container individually, Docker Compose allows you to describe an entire application’s services, networks, and volumes in a single YAML file. This configuration file makes it easy to set up, manage, and orchestrate a complex environment involving multiple containers.</p>



<p class="wp-block-paragraph">The primary benefit of Docker Compose is its ability to simplify the management of complex applications that consist of multiple containers, such as web servers, databases, and caches, which are all needed to run an application effectively. Docker Compose helps in the development, testing, and deployment of these containerized applications in an automated and reproducible manner.</p>



<p class="wp-block-paragraph">Key Features of Docker Compose:</p>



<ul class="wp-block-list">
<li><strong>Multi-container environments:</strong> It allows you to define multiple containers in a single configuration file, and then manage them collectively as one application.</li>



<li><strong>Isolation and Environment Management:</strong> Docker Compose helps in managing containerized environments by isolating them, so you can easily spin up environments for different stages of application development.</li>



<li><strong>Easy Setup and Orchestration:</strong> It provides a simple way to set up and run applications in isolated environments, ensuring the necessary dependencies are configured correctly.</li>
</ul>



<p class="wp-block-paragraph">With Docker Compose, developers can take advantage of Docker&#8217;s containerization benefits but at a higher level of abstraction, making it easier to handle complex microservices-based applications.</p>



<h3 class="wp-block-heading"><strong>What are the Major Use Cases of Docker Compose?</strong></h3>



<p class="wp-block-paragraph">Docker Compose is used widely in scenarios that involve multi-container applications. Here are the major use cases for Docker Compose:</p>



<ol class="wp-block-list">
<li><strong>Microservices Architecture</strong><br>One of the most popular use cases of Docker Compose is in the context of microservices architecture. Microservices often consist of multiple components that communicate with each other over a network. Docker Compose is perfect for this type of architecture because it allows developers to define all the necessary components (e.g., a web server, database, message queue) in one place. Each of these services can be packaged in its own container, and Docker Compose ensures that they are correctly orchestrated and connected.</li>



<li><strong>Development and Testing Environments</strong><br>Docker Compose is an excellent tool for setting up development and testing environments. Developers can use it to create a local environment that mirrors production, with all the necessary services like databases, caches, and web servers. With a simple command, developers can spin up the entire stack with the exact versions of services they need, enabling consistency across different stages of development. Testing environments can also be isolated in Docker Compose, ensuring that tests are run in the correct environment without polluting the local machine.</li>



<li><strong>Continuous Integration (CI) and Continuous Delivery (CD)</strong><br>Docker Compose is commonly used in CI/CD pipelines, where it helps automate the deployment and testing of applications. Using Docker Compose, developers can create an isolated environment for testing code changes with services that are as close to the production environment as possible. By defining the environment in a <code>docker-compose.yml</code> file, teams can ensure that the exact setup used for development and testing is replicated in the CI/CD pipeline.</li>



<li><strong>Local Development of Web Applications</strong><br>For local development, Docker Compose makes it easy to create full-stack web applications. Developers often need services such as databases, web servers, caching, and more. Instead of installing and configuring each of these services manually, Docker Compose allows you to define them in a single YAML file. This ensures the development environment is simple to set up and can be easily replicated by other team members.</li>



<li><strong>Legacy Application Modernization</strong><br>Docker Compose can be helpful when modernizing legacy applications that were originally built with a monolithic architecture. By breaking down the components into separate containers (e.g., the front-end, database, and other services), Docker Compose can be used to orchestrate the communication between these containers. This allows organizations to gradually transition from a monolithic setup to a microservices-based architecture without a complete overhaul of the system.</li>
</ol>



<h3 class="wp-block-heading"><strong>How Docker Compose Works Along with Architecture?</strong></h3>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="390" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2025/06/image-21-1024x390.png" alt="" class="wp-image-12530" srcset="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2025/06/image-21-1024x390.png 1024w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2025/06/image-21-300x114.png 300w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2025/06/image-21-768x293.png 768w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2025/06/image-21-1536x585.png 1536w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2025/06/image-21.png 1874w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Docker Compose operates in a client-server architecture, where the user interacts with Docker Compose commands through the command-line interface (CLI), and Docker Compose orchestrates the setup and management of containers using the Docker Engine. It uses a declarative YAML configuration file (<code>docker-compose.yml</code>) to define the services and their interactions. Let’s explore how Docker Compose fits into system architecture.</p>



<ol class="wp-block-list">
<li><strong>Docker Compose File (<code>docker-compose.yml</code>)</strong><br>The <code>docker-compose.yml</code> file is the heart of Docker Compose. It defines the services, networks, and volumes needed for your application. Each service is configured with its image, build context, environment variables, ports, and dependencies on other services. A typical file might look like this: <code>version: '3' services: web: image: webapp:latest ports: - "8080:80" db: image: postgres:latest environment: POSTGRES_PASSWORD: example</code> In this example, there are two services defined: a web application service and a database service. The web service uses an image of a web application, and the db service uses a PostgreSQL image with a defined environment variable.</li>



<li><strong>Orchestrating Containers</strong><br>Docker Compose interacts with the Docker Engine to create and manage containers as defined in the <code>docker-compose.yml</code> file. The Compose file describes how each container should be configured (such as environment variables, volumes, and networking). When a user runs <code>docker-compose up</code>, Docker Compose reads this configuration, downloads the necessary images (if not available locally), creates containers, and starts them in the correct order.</li>



<li><strong>Networking Between Services</strong><br>Docker Compose sets up an isolated network for the containers defined in a Compose file. Containers can communicate with each other via the container names or service names defined in the Compose file. For instance, the web service can access the database service using the hostname <code>db</code> (the name of the service defined in the Compose file). This ensures that services can interact in a predictable and isolated way without interfering with the host system or other applications.</li>



<li><strong>Volumes for Data Persistence</strong><br>In a Docker Compose setup, containers often need to persist data. Docker Compose allows you to define volumes in the <code>docker-compose.yml</code> file, ensuring that data is saved between container restarts. For example, a volume could be used to store database data so that it persists even after the database container is stopped or recreated.</li>



<li><strong>Scaling Services</strong><br>Docker Compose can be used to scale services up or down by specifying the number of replicas (containers) for a service. This is particularly useful in development and testing environments where you need to simulate multiple instances of a service to test scalability.</li>
</ol>



<h3 class="wp-block-heading"><strong>Basic Workflow of Docker Compose</strong></h3>



<p class="wp-block-paragraph">The basic workflow of Docker Compose revolves around creating a <code>docker-compose.yml</code> file and using a set of simple commands to manage your containers. Here’s the basic workflow for getting started with Docker Compose:</p>



<ol class="wp-block-list">
<li><strong>Define Services in a Compose File</strong><br>Start by defining the services you need for your application in a <code>docker-compose.yml</code> file. Each service corresponds to a container, and you’ll specify its configuration, such as the image to use, build context, environment variables, ports, and volumes.</li>



<li><strong>Build and Start Containers</strong><br>Use the <code>docker-compose up</code> command to build and start all the services defined in the <code>docker-compose.yml</code> file. This command reads the configuration, pulls images (if needed), creates containers, and starts them. You can also run <code>docker-compose up -d</code> to start the containers in detached mode (in the background).</li>



<li><strong>Scale Services</strong><br>If your application requires multiple instances of a service (e.g., for load balancing), you can scale services using the <code>--scale</code> flag. For example, to run 3 instances of the <code>web</code> service, you can use: <code>docker-compose up --scale web=3</code></li>



<li><strong>Monitor and Manage Containers</strong><br>Once the containers are running, you can use <code>docker-compose ps</code> to list the containers, <code>docker-compose logs</code> to view logs, and <code>docker-compose exec</code> to run commands inside running containers.</li>



<li><strong>Stopping and Removing Containers</strong><br>After you’re done, you can stop and remove the containers with <code>docker-compose down</code>. This stops all running containers, removes them, and cleans up networks and volumes that were created during the lifecycle of the services.</li>
</ol>



<h3 class="wp-block-heading"><strong>Step-by-Step Getting Started Guide for Docker Compose</strong></h3>



<p class="wp-block-paragraph">To get started with Docker Compose, follow this simple guide:</p>



<h4 class="wp-block-heading"><strong>Step 1: Install Docker and Docker Compose</strong></h4>



<ul class="wp-block-list">
<li><strong>Docker:</strong> First, ensure Docker is installed on your machine. Follow the installation instructions for your operating system from the <a href="https://docs.docker.com/get-docker/">Docker website</a>.</li>



<li><strong>Docker Compose:</strong> Docker Compose is included with Docker Desktop, but if you are using Linux or a minimal installation, you may need to install Docker Compose separately. Follow the <a href="https://docs.docker.com/compose/install/">Docker Compose installation guide</a> to get started.</li>
</ul>



<h4 class="wp-block-heading"><strong>Step 2: Create a <code>docker-compose.yml</code> File</strong></h4>



<p class="wp-block-paragraph">Create a <code>docker-compose.yml</code> file that defines your services. For example:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: plain; title: ; notranslate">
version: &#039;3&#039;
services:
  web:
    image: nginx
    ports:
      - &quot;8080:80&quot;

</pre></div>


<h4 class="wp-block-heading"><strong>Step 3: Start Your Application</strong></h4>



<p class="wp-block-paragraph">Run the following command to start your application:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: plain; title: ; notranslate">
docker-compose up

</pre></div>


<h4 class="wp-block-heading"><strong>Step 4: Scale Services (Optional)</strong></h4>



<p class="wp-block-paragraph">If you want to scale your services, use the <code>--scale</code> flag:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: plain; title: ; notranslate">
docker-compose up --scale web=3

</pre></div>


<h4 class="wp-block-heading"><strong>Step 5: Monitor and Interact with Your Containers</strong></h4>



<p class="wp-block-paragraph">You can interact with the running containers using:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: plain; title: ; notranslate">
docker-compose ps
docker-compose logs
docker-compose exec web /bin/bash

</pre></div>


<h4 class="wp-block-heading"><strong>Step 6: Shut Down and Clean Up</strong></h4>



<p class="wp-block-paragraph">Once you&#8217;re finished, you can stop and remove your containers with:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: plain; title: ; notranslate">
docker-compose down

</pre></div><p>The post <a href="https://www.scmgalaxy.com/tutorials/mastering-docker-compose-use-cases-architecture-and-workflow/">Mastering Docker Compose: Use Cases, Architecture, and Workflow</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/mastering-docker-compose-use-cases-architecture-and-workflow/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>NGINX Proxy: Optimizing Web Traffic and Enhancing Performance</title>
		<link>https://www.scmgalaxy.com/tutorials/nginx-proxy-optimizing-web-traffic-and-enhancing-performance/</link>
					<comments>https://www.scmgalaxy.com/tutorials/nginx-proxy-optimizing-web-traffic-and-enhancing-performance/#respond</comments>
		
		<dc:creator><![CDATA[Vijay K]]></dc:creator>
		<pubDate>Tue, 29 Apr 2025 11:15:00 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Containerization]]></category>
		<category><![CDATA[Docker]]></category>
		<category><![CDATA[DockerCompose]]></category>
		<category><![CDATA[LoadBalancing]]></category>
		<category><![CDATA[Microservices]]></category>
		<category><![CDATA[NGINX]]></category>
		<category><![CDATA[NGINXProxy]]></category>
		<category><![CDATA[ReverseProxy]]></category>
		<category><![CDATA[SSL]]></category>
		<category><![CDATA[WebAppRouting]]></category>
		<category><![CDATA[WebInfrastructure]]></category>
		<guid isPermaLink="false">https://www.scmgalaxy.com/tutorials/?p=12189</guid>

					<description><![CDATA[<p>🚀 What is NGINX Proxy? NGINX Proxy is a highly efficient reverse proxy and load balancer server used to manage [&#8230;]</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/nginx-proxy-optimizing-web-traffic-and-enhancing-performance/">NGINX Proxy: Optimizing Web Traffic and Enhancing Performance</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="510" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2025/04/image-24-1024x510.png" alt="" class="wp-image-12190" srcset="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2025/04/image-24-1024x510.png 1024w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2025/04/image-24-300x150.png 300w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2025/04/image-24-768x383.png 768w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2025/04/image-24.png 1258w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f680.png" alt="🚀" class="wp-smiley" style="height: 1em; max-height: 1em;" /> What is NGINX Proxy?</h2>



<p class="wp-block-paragraph"><strong>NGINX Proxy</strong> is a highly efficient <strong>reverse proxy</strong> and <strong>load balancer</strong> server used to manage web traffic and distribute it across multiple backend servers. NGINX (pronounced &#8220;Engine-X&#8221;) is well-known for its <strong>high performance</strong>, <strong>scalability</strong>, and <strong>reliability</strong>. It is often used in production environments to serve static files, handle dynamic requests, and proxy HTTP/HTTPS traffic to backend services like web servers, application servers, or even microservices.</p>



<p class="wp-block-paragraph">In the context of a reverse proxy, <strong>NGINX Proxy</strong> acts as an intermediary between clients (users&#8217; browsers or APIs) and one or more backend servers. It receives requests from clients and forwards them to the appropriate backend server, ensuring that the traffic is efficiently routed.</p>



<hr class="wp-block-separator has-alpha-channel-opacity">



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f3af.png" alt="🎯" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Major Use Cases of NGINX Proxy</h2>



<p class="wp-block-paragraph"><strong>NGINX Proxy</strong> is highly versatile, serving a wide array of use cases:</p>



<h3 class="wp-block-heading">1. <strong>Load Balancing</strong></h3>



<ul class="wp-block-list">
<li><strong>Distribute Requests Across Servers</strong>: NGINX Proxy can evenly distribute incoming requests across multiple servers, preventing any one server from becoming overloaded.</li>



<li><strong>Enhance Availability</strong>: By balancing traffic between multiple instances, NGINX ensures high availability and improved fault tolerance.</li>
</ul>



<h3 class="wp-block-heading">2. <strong>Reverse Proxy for Web Servers</strong></h3>



<ul class="wp-block-list">
<li><strong>Forward Requests to Backend Servers</strong>: NGINX acts as a reverse proxy by forwarding client requests to backend web servers (like Apache or application servers), ensuring that only one point of contact is exposed to the client.</li>



<li><strong>TLS Termination</strong>: It handles <strong>TLS/SSL encryption</strong> for HTTPS traffic, offloading the work from backend servers and improving performance.</li>
</ul>



<h3 class="wp-block-heading">3. <strong>Caching</strong></h3>



<ul class="wp-block-list">
<li><strong>Improved Performance</strong>: NGINX Proxy can cache content (static files, API responses, etc.) at the edge, reducing the load on backend servers and improving the response time.</li>



<li><strong>Cache Control</strong>: You can control how long certain content stays in the cache, enabling more efficient use of resources.</li>
</ul>



<h3 class="wp-block-heading">4. <strong>Security &amp; Access Control</strong></h3>



<ul class="wp-block-list">
<li><strong>Hide Backend Servers</strong>: By acting as a reverse proxy, NGINX Proxy hides the details of backend infrastructure from the outside world, adding a layer of security.</li>



<li><strong>Access Restriction</strong>: NGINX Proxy can restrict access to certain backend resources based on IP, URL, or other parameters.</li>
</ul>



<h3 class="wp-block-heading">5. <strong>API Gateway for Microservices</strong></h3>



<ul class="wp-block-list">
<li><strong>Manage Microservices Traffic</strong>: In microservices architectures, NGINX Proxy can serve as an <strong>API Gateway</strong>, managing requests and routing them to appropriate microservices.</li>



<li><strong>Centralized Authentication and Logging</strong>: It handles authentication (like OAuth2 or JWT), request logging, and rate limiting across microservices.</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity">



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="903" height="515" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2025/04/image-25.png" alt="" class="wp-image-12191" srcset="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2025/04/image-25.png 903w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2025/04/image-25-300x171.png 300w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2025/04/image-25-768x438.png 768w" sizes="auto, (max-width: 903px) 100vw, 903px" /></figure>



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f9e0.png" alt="🧠" class="wp-smiley" style="height: 1em; max-height: 1em;" /> How NGINX Proxy Works (Architecture Overview)</h2>



<p class="wp-block-paragraph">The architecture of <strong>NGINX Proxy</strong> revolves around <strong>request handling</strong>, <strong>traffic distribution</strong>, and <strong>security management</strong>. Here&#8217;s a breakdown of its components and workflow:</p>



<h3 class="wp-block-heading">Key Components of NGINX Proxy:</h3>



<ol class="wp-block-list">
<li><strong>NGINX Server</strong>:
<ul class="wp-block-list">
<li>The NGINX Proxy server receives all incoming HTTP/S traffic and directs it based on configuration to one or more backend servers.</li>



<li>NGINX can serve static files (like images, HTML, CSS, etc.) and pass dynamic content requests to backend servers like PHP, Python, or Node.js.</li>
</ul>
</li>



<li><strong>Backend Servers</strong>:
<ul class="wp-block-list">
<li>These are the servers where your web applications or APIs are hosted. NGINX Proxy routes requests to these servers, which process the requests and return the response to NGINX.</li>
</ul>
</li>



<li><strong>Load Balancing Mechanism</strong>:
<ul class="wp-block-list">
<li>NGINX supports multiple load balancing algorithms, including round-robin, least connections, and IP-hash. These algorithms determine how incoming requests are distributed across multiple backend servers.</li>
</ul>
</li>



<li><strong>TLS Termination</strong>:
<ul class="wp-block-list">
<li>NGINX Proxy handles SSL/TLS encryption and decryption for secure HTTPS traffic, offloading this computationally expensive task from the backend servers.</li>
</ul>
</li>



<li><strong>Caching Layer</strong>:
<ul class="wp-block-list">
<li>NGINX Proxy can cache responses from backend servers, reducing the number of requests that need to be processed and improving response times for frequently requested resources.</li>
</ul>
</li>



<li><strong>Access Control &amp; Security</strong>:
<ul class="wp-block-list">
<li>NGINX Proxy provides robust features for managing access, including restricting traffic from certain IP addresses, applying rate limits, and blocking malicious traffic.</li>
</ul>
</li>
</ol>



<h3 class="wp-block-heading">NGINX Proxy Flow:</h3>



<ol class="wp-block-list">
<li><strong>Request Reception</strong>: The client makes an HTTP request (e.g., for a webpage or API).</li>



<li><strong>DNS Resolution</strong>: The domain name is resolved to the IP of the NGINX Proxy server.</li>



<li><strong>Routing &amp; Load Balancing</strong>: NGINX Proxy evaluates the request, possibly using load balancing algorithms to route it to one of several backend servers.</li>



<li><strong>SSL/TLS Termination</strong>: If the request is HTTPS, NGINX Proxy terminates the SSL/TLS handshake and decrypts the data.</li>



<li><strong>Request Forwarding</strong>: NGINX forwards the request to the appropriate backend server.</li>



<li><strong>Response</strong>: The backend server processes the request and returns a response to NGINX.</li>



<li><strong>Caching (Optional)</strong>: NGINX Proxy may cache the response and send it back to the client, reducing future load on the backend.</li>



<li><strong>Client Response</strong>: NGINX sends the response back to the client.</li>
</ol>



<hr class="wp-block-separator has-alpha-channel-opacity">



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f504.png" alt="🔄" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Basic Workflow of NGINX Proxy</h2>



<p class="wp-block-paragraph">The basic workflow of <strong>NGINX Proxy</strong> involves:</p>



<ol class="wp-block-list">
<li><strong>Configuration Setup</strong>:
<ul class="wp-block-list">
<li>Define upstream servers (backend servers) and proxy rules.</li>



<li>Configure load balancing, SSL termination, and caching.</li>
</ul>
</li>



<li><strong>Traffic Reception</strong>:
<ul class="wp-block-list">
<li>NGINX Proxy receives incoming client requests on specified ports (usually HTTP 80 and HTTPS 443).</li>
</ul>
</li>



<li><strong>Request Routing</strong>:
<ul class="wp-block-list">
<li>NGINX Proxy checks the request headers, including the host and path, to determine which backend server should handle the request.</li>
</ul>
</li>



<li><strong>Handling Response</strong>:
<ul class="wp-block-list">
<li>After receiving the response from the backend server, NGINX Proxy may perform additional actions like caching, compression, or content rewriting.</li>
</ul>
</li>



<li><strong>Response Delivery</strong>:
<ul class="wp-block-list">
<li>The response is delivered back to the client, potentially utilizing caching to speed up future requests.</li>
</ul>
</li>
</ol>



<hr class="wp-block-separator has-alpha-channel-opacity">



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f6e0.png" alt="🛠" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Step-by-Step Getting Started Guide for NGINX Proxy</h2>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><strong>Prerequisites</strong>:</p>



<ul class="wp-block-list">
<li>Basic understanding of Docker and NGINX.</li>



<li>Docker and Docker Compose installed.</li>
</ul>
</blockquote>



<hr class="wp-block-separator has-alpha-channel-opacity">



<h3 class="wp-block-heading">Step 1: Set Up Docker Environment</h3>



<ol class="wp-block-list">
<li><strong>Install Docker</strong> and <strong>Docker Compose</strong> on your system if not already installed.</li>



<li>Create a <strong><code>docker-compose.yml</code></strong> file for the NGINX Proxy container and your backend services:</li>
</ol>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: plain; title: ; notranslate">
version: &#039;3&#039;
services:
  nginx-proxy:
    image: jwilder/nginx-proxy
    container_name: nginx-proxy
    environment:
      - DEFAULT_HOST=default.local
    ports:
      - &quot;80:80&quot;
      - &quot;443:443&quot;
    volumes:
      - /var/run/docker.sock:/tmp/docker.sock:ro

  webapp:
    image: your-web-app-image
    environment:
      - VIRTUAL_HOST=webapp.example.com
      - VIRTUAL_PORT=80
    expose:
      - &quot;80&quot;

</pre></div>


<h3 class="wp-block-heading">Step 2: Launch NGINX Proxy</h3>



<p class="wp-block-paragraph">Start the services using Docker Compose:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: plain; title: ; notranslate">
docker-compose up -d

</pre></div>


<p class="wp-block-paragraph">This will start NGINX Proxy and your backend web application container.</p>



<h3 class="wp-block-heading">Step 3: Test the Reverse Proxy</h3>



<p class="wp-block-paragraph">Once the containers are running, navigate to <code>http://webapp.example.com</code> in your browser. NGINX Proxy should route the request to the <code>webapp</code> container, and the application should respond.</p>



<h3 class="wp-block-heading">Step 4: Set Up SSL (Optional)</h3>



<p class="wp-block-paragraph">To enable SSL using <strong>Let&#8217;s Encrypt</strong>, you can add environment variables for SSL certificate management:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: plain; title: ; notranslate">
  nginx-proxy:
    image: jwilder/nginx-proxy
    container_name: nginx-proxy
    environment:
      - VIRTUAL_HOST=webapp.example.com
      - LETSENCRYPT_HOST=webapp.example.com
      - LETSENCRYPT_EMAIL=your-email@example.com
    ports:
      - &quot;80:80&quot;
      - &quot;443:443&quot;
    volumes:
      - /var/run/docker.sock:/tmp/docker.sock:ro

</pre></div>


<p class="wp-block-paragraph"></p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/nginx-proxy-optimizing-web-traffic-and-enhancing-performance/">NGINX Proxy: Optimizing Web Traffic and Enhancing Performance</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/nginx-proxy-optimizing-web-traffic-and-enhancing-performance/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Top 10 Container(Docker) Monitoring Solutions and Tools in 2018</title>
		<link>https://www.scmgalaxy.com/tutorials/top-10-containerdocker-monitoring-solutions-and-tools-in-2018/</link>
					<comments>https://www.scmgalaxy.com/tutorials/top-10-containerdocker-monitoring-solutions-and-tools-in-2018/#respond</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Mon, 20 Aug 2018 11:52:15 +0000</pubDate>
				<category><![CDATA[Docker]]></category>
		<category><![CDATA[Best]]></category>
		<category><![CDATA[Container]]></category>
		<category><![CDATA[Monitoring]]></category>
		<category><![CDATA[Top]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/?p=5181</guid>

					<description><![CDATA[<p>Top 10 Container Monitoring Solutions/Tools in 2018 Native Docker cAdvisor Scout Pingdom Datadog Sysdig Prometheus Heapster / Grafana ELK stack [&#8230;]</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/top-10-containerdocker-monitoring-solutions-and-tools-in-2018/">Top 10 Container(Docker) Monitoring Solutions and Tools in 2018</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><strong>Top 10 Container Monitoring Solutions/Tools in 2018</strong></p>
<ol>
<li>Native Docker</li>
<li>cAdvisor</li>
<li>Scout</li>
<li>Pingdom</li>
<li>Datadog</li>
<li>Sysdig</li>
<li>Prometheus</li>
<li>Heapster / Grafana</li>
<li>ELK stack</li>
<li>Sensu</li>
</ol>
<p>Reference</p>
<p>https://rancher.com/comparing-10-container-monitoring-solutions-rancher/</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/top-10-containerdocker-monitoring-solutions-and-tools-in-2018/">Top 10 Container(Docker) Monitoring Solutions and Tools in 2018</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/top-10-containerdocker-monitoring-solutions-and-tools-in-2018/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Setup Docker service to use insecure(http) registry instead of https</title>
		<link>https://www.scmgalaxy.com/tutorials/setup-docker-service-to-use-insecurehttp-registry-instead-of-https/</link>
					<comments>https://www.scmgalaxy.com/tutorials/setup-docker-service-to-use-insecurehttp-registry-instead-of-https/#respond</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Tue, 31 Jul 2018 12:23:31 +0000</pubDate>
				<category><![CDATA[Docker]]></category>
		<category><![CDATA[DOCKER_OPTS]]></category>
		<category><![CDATA[HTTP]]></category>
		<category><![CDATA[insecure]]></category>
		<category><![CDATA[registry]]></category>
		<category><![CDATA[service]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/?p=5113</guid>

					<description><![CDATA[<p>By default docker use https to connect to docker registry. But there can be use cases to use insecure registry. [&#8230;]</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/setup-docker-service-to-use-insecurehttp-registry-instead-of-https/">Setup Docker service to use insecure(http) registry instead of https</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-5118" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2018/07/setup-docker-service.png" alt="" width="600" height="315" srcset="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2018/07/setup-docker-service.png 600w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2018/07/setup-docker-service-300x158.png 300w" sizes="auto, (max-width: 600px) 100vw, 600px" /></p>
<p>By default docker use https to connect to docker registry. But there can be use cases to use insecure registry. Here are the steps to use insecure registry.</p>
<p><strong>In ubuntu</strong><br />
edit the file /etc/default/docker and update DOCKER_OPTS e.g</p>
<pre class="brush: plain; title: ; notranslate">DOCKER_OPTS='--insecure-registry 10.84.34.155:5000'</pre>
<p>where 10.84.34.155 is ipaddress of registry and 5000 is your port on which registry is configured.</p>
<p><strong>In Centos</strong><br />
Edit the file /etc/docker/daemon.json e.g.</p>
<pre class="brush: plain; title: ; notranslate">{
&quot;insecure-registries&quot; : &#x5B;&quot;10.84.34.155:5000&quot;]
}</pre>
<p>where 10.84.34.155 is ipaddress of registry and 5000 is your port on which registry is configured.</p>
<p><strong>Restart docker</strong><br />
$ service docker restart</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/setup-docker-service-to-use-insecurehttp-registry-instead-of-https/">Setup Docker service to use insecure(http) registry instead of https</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/setup-docker-service-to-use-insecurehttp-registry-instead-of-https/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>docker pause and unpause explanined!</title>
		<link>https://www.scmgalaxy.com/tutorials/docker-pause-and-unpause-explanined/</link>
					<comments>https://www.scmgalaxy.com/tutorials/docker-pause-and-unpause-explanined/#respond</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Tue, 10 Jul 2018 15:00:14 +0000</pubDate>
				<category><![CDATA[Docker]]></category>
		<category><![CDATA[docker pause]]></category>
		<category><![CDATA[docker unpause]]></category>
		<category><![CDATA[pause]]></category>
		<category><![CDATA[unpause]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/?p=5080</guid>

					<description><![CDATA[<p>As of Version 0.12.0, Docker supports PAUSE and UNPAUSE commands to pause and resume containers using cgroup freezer. The docker [&#8230;]</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/docker-pause-and-unpause-explanined/">docker pause and unpause explanined!</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-5089" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2018/07/docker-1.png" alt="" width="600" height="315" srcset="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2018/07/docker-1.png 600w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2018/07/docker-1-300x158.png 300w" sizes="auto, (max-width: 600px) 100vw, 600px" /></p>
<p>As of Version 0.12.0, Docker supports PAUSE and UNPAUSE commands to pause and resume containers using cgroup freezer.</p>
<p>The docker pause command suspends all processes in the specified containers. On Linux, this uses the cgroups freezer. Traditionally, when suspending a process the SIGSTOP signal is used, which is observable by the process being suspended. With the cgroups freezer the process is unaware, and unable to capture, that it is being suspended, and subsequently resumed. On Windows, only Hyper-V containers can be paused.</p>
<p>So it means that the processes in the container stop running, and they are able to be resumed later.</p>
<p>Possible use is to pause resource intensive tasks that you can resume at a later date. Some people predict that “docker pause” could be used in the future to support “live” migration of containers between Docker Engines.</p>
<p>Checkout more about cgroups freezer here https://www.kernel.org/doc/Documentation/cgroup-v1/freezer-subsystem.txt</p>
<pre class="brush: plain; title: ; notranslate">
&#x5B;root@ip-172-31-80-30 ~]# docker run -d -p 8080:8080 -p 50000:50000 jenkins

&#x5B;root@ip-172-31-80-30 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6be033bf1f69 jenkins &quot;/bin/tini -- /usr/l…&quot; About an hour ago Up About an hour (Paused) 0.0.0.0:8080-&gt;8080/tcp, 0.0.0.0:50000-&gt;50000/tcp laughing_bell

&#x5B;root@ip-172-31-80-30 ~]# docker pause 6be033bf1f69
Error response from daemon: Container 6be033bf1f6917f3bfcccd5d770c00349c47576ab1cd77b14aa39ef1333ae90c is already paused

&#x5B;root@ip-172-31-80-30 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6be033bf1f69 jenkins &quot;/bin/tini -- /usr/l…&quot; About an hour ago Up About an hour (Paused) 0.0.0.0:8080-&gt;8080/tcp, 0.0.0.0:50000-&gt;50000/tcp laughing_bell

&#x5B;root@ip-172-31-80-30 ~]# docker exec -it 6be033bf1f69 /bin/bash
Error response from daemon: Container 6be033bf1f69 is paused, unpause the container before exec

&#x5B;root@ip-172-31-80-30 ~]# docker top 6be033bf1f69
UID PID PPID C STIME TTY TIME CMD
ec2-user 23703 23691 0 13:26 ? 00:00:00 /bin/tini -- /usr/local/bin/jenkins.sh
ec2-user 23724 23703 0 13:26 ? 00:00:23 java -jar /usr/share/jenkins/jenkins.war

</pre>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/docker-pause-and-unpause-explanined/">docker pause and unpause explanined!</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/docker-pause-and-unpause-explanined/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Lifecycle of Docker Containers</title>
		<link>https://www.scmgalaxy.com/tutorials/lifecycle-of-docker-containers/</link>
					<comments>https://www.scmgalaxy.com/tutorials/lifecycle-of-docker-containers/#respond</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Tue, 10 Jul 2018 12:46:22 +0000</pubDate>
				<category><![CDATA[Docker]]></category>
		<category><![CDATA[Container]]></category>
		<category><![CDATA[docker containers]]></category>
		<category><![CDATA[lifecycle]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/?p=5076</guid>

					<description><![CDATA[<p>We need to carefully understand the life cycle of Docker containes. There are following images which depicts the the right [&#8230;]</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/lifecycle-of-docker-containers/">Lifecycle of Docker Containers</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-5091" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2018/07/docker-containers.png" alt="" width="600" height="315" srcset="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2018/07/docker-containers.png 600w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2018/07/docker-containers-300x158.png 300w" sizes="auto, (max-width: 600px) 100vw, 600px" /></p>
<p>We need to carefully understand the life cycle of Docker containes. There are following images which depicts the the right phases of docker containers.</p>
<p><strong>Phase of Docker Containers</strong></p>
<ul>
<li>Create -&gt; Destroy</li>
<li>Create -&gt; Start -&gt; Stopped -&gt; Destroy</li>
<li>Create -&gt; Start -&gt; Pause -&gt; Unpause</li>
<li>Create -&gt; Start -&gt; Restart</li>
</ul>
<p><strong>Image flow of Simple Docker Container Lifecycle</strong></p>
<p><a href="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2018/07/docker-containers-lifecycle-phase-simple.jpg"><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-5077" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2018/07/docker-containers-lifecycle-phase-simple.jpg" alt="" width="638" height="497" srcset="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2018/07/docker-containers-lifecycle-phase-simple.jpg 638w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2018/07/docker-containers-lifecycle-phase-simple-300x234.jpg 300w" sizes="auto, (max-width: 638px) 100vw, 638px" /></a></p>
<p><strong>Image flow of Detailed Docker Container Lifecycle</strong></p>
<p><a href="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2018/07/docker-containers-lifecycle-phase.png"><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-5078" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2018/07/docker-containers-lifecycle-phase.png" alt="" width="1129" height="575" srcset="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2018/07/docker-containers-lifecycle-phase.png 1129w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2018/07/docker-containers-lifecycle-phase-300x153.png 300w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2018/07/docker-containers-lifecycle-phase-768x391.png 768w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2018/07/docker-containers-lifecycle-phase-1024x522.png 1024w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2018/07/docker-containers-lifecycle-phase-660x336.png 660w" sizes="auto, (max-width: 1129px) 100vw, 1129px" /></a></p>
<p>&nbsp;</p>
<p>Image Source and Credits: http://docker-saigon.github.io/post/Docker-Internals/</p>
<p><strong>Create container</strong><br />
$ docker create &#8211;name ubuntu-cont ubuntu</p>
<p><strong>Run docker container</strong><br />
$ docker run -itd ubuntu<br />
$ docker run -itd &#8211;name ubuntu-cont ubuntu</p>
<p><strong>Pause container</strong><br />
$ docker pause &lt;container-id/name&gt;</p>
<p><strong>Unpause container</strong><br />
$ docker unpause &lt;container-id/name&gt;</p>
<p><strong>Start container</strong><br />
$ docker start &lt;container-id/name&gt;</p>
<p><strong>Stop container</strong><br />
$ docker stop &lt;container-id/name&gt;</p>
<p><strong>Restart container</strong><br />
$ docker restart &lt;container-id/name&gt;</p>
<p><strong>Kill container</strong><br />
$ docker kill &lt;container-id/name&gt;</p>
<p><strong>Destroy container</strong><br />
$ docker rm &lt;container-id/name&gt;</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/lifecycle-of-docker-containers/">Lifecycle of Docker Containers</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/lifecycle-of-docker-containers/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Working with Ports in Docker Containers</title>
		<link>https://www.scmgalaxy.com/tutorials/working-with-ports-in-docker-containers/</link>
					<comments>https://www.scmgalaxy.com/tutorials/working-with-ports-in-docker-containers/#respond</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Tue, 10 Jul 2018 12:18:26 +0000</pubDate>
				<category><![CDATA[Docker]]></category>
		<category><![CDATA[docker port]]></category>
		<category><![CDATA[expose]]></category>
		<category><![CDATA[port]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/?p=5074</guid>

					<description><![CDATA[<p>Port expose and publish has to happen when a container is created. Just stop the existing container and create a [&#8230;]</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/working-with-ports-in-docker-containers/">Working with Ports in Docker Containers</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-5106" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2018/07/docker-containers1.png" alt="" width="600" height="315" srcset="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2018/07/docker-containers1.png 600w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2018/07/docker-containers1-300x158.png 300w" sizes="auto, (max-width: 600px) 100vw, 600px" /></p>
<p>Port expose and publish has to happen when a container is created. Just stop the existing container and create a new one in its place with the added expose and/or publish options.</p>
<p>By default Docker containers can make connections to the outside world, but the outside world cannot connect to containers. Each outgoing connection will appear to originate from one of the host machine’s own IP addresses thanks to an iptables masquerading rule on the host machine that the Docker server creates when it starts:</p>
<pre class="brush: plain; title: ; notranslate">$ sudo iptables -t nat -L -n
...
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
MASQUERADE all -- 172.17.0.0/16 0.0.0.0/0</pre>
<p>The Docker server creates a masquerade rule that lets containers connect to IP addresses in the outside world. If you want containers to accept incoming connections, you will need to provide special options when invoking docker run. There are two approaches.</p>
<p><strong>How to map ports to containers?</strong><br />
<strong>Approach 1</strong><br />
First, you can supply -P or &#8211;publish-all=true|false to docker run<br />
or<br />
EXPOSE line in the image’s Dockerfile<br />
or<br />
&#8211;expose &lt;port&gt; commandline flag and maps it to a host port somewhere within an ephemeral port range.</p>
<p><strong>Approach 2</strong><br />
Mapping can be specified explicitly using -p SPEC or &#8211;publish=SPEC option. It allows you to particularize which port on docker server &#8211; which can be any port at all, not just one within the ephemeral port range – you want mapped to which port in the container.</p>
<p><strong>How to EXPOSE Port on running container?</strong></p>
<p><strong>Mehtod 1 &#8211; Using docker commit</strong><br />
Commit your current container to a new image and then do a docker run specifying the new port range and the new image name.</p>
<pre class="brush: plain; title: ; notranslate">$ docker stop containerID 
$ docker commit containerID newImageName:tag
$ docker run -d --name db -p 8091-8094:8091-8094 -p 11210:11210 newImageName:tag</pre>
<p><strong>Method 2 &#8211; using iptables</strong></p>
<pre class="brush: plain; title: ; notranslate">HOST&gt; iptables -t nat -A DOCKER -p tcp --dport 443 -j DNAT --to-destination 172.17.0.2:443
HOST&gt; iptables -t nat -A POSTROUTING -j MASQUERADE -p tcp --source 172.17.0.2 --destination 172.17.0.2 --dport https
HOST&gt; iptables -A DOCKER -j ACCEPT -p tcp --destination 172.17.0.2 --dport https</pre>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/working-with-ports-in-docker-containers/">Working with Ports in Docker Containers</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/working-with-ports-in-docker-containers/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>What is SELinux and how its SELinux used in Docker?</title>
		<link>https://www.scmgalaxy.com/tutorials/what-is-selinux-and-how-its-selinux-used-in-docker/</link>
					<comments>https://www.scmgalaxy.com/tutorials/what-is-selinux-and-how-its-selinux-used-in-docker/#respond</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Tue, 10 Jul 2018 10:06:32 +0000</pubDate>
				<category><![CDATA[Docker]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[SELinux]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/?p=5070</guid>

					<description><![CDATA[<p>What is SELinux and how its SELinux used in Docker? There are three popular solutions for implementing access control in [&#8230;]</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/what-is-selinux-and-how-its-selinux-used-in-docker/">What is SELinux and how its SELinux used in Docker?</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><strong><img loading="lazy" decoding="async" class="alignnone size-full wp-image-5109" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2018/07/selinux.jpg" alt="" width="600" height="315" srcset="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2018/07/selinux.jpg 600w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2018/07/selinux-300x158.jpg 300w" sizes="auto, (max-width: 600px) 100vw, 600px" /></strong></p>
<p><strong>What is SELinux and how its SELinux used in Docker?</strong></p>
<p>There are three popular solutions for implementing access control in Linux:</p>
<ol>
<li>SELinux</li>
<li>AppArmor</li>
<li>GrSecurity</li>
</ol>
<p>Security-Enhanced Linux (SELinux) is a Linux kernel security module that provides a mechanism for supporting access control security policies. It is a security feature of the Linux kernel. It is designed to protect the server against misconfigurations and/or compromised daemons. It put limits and instructs server daemons or programs what files they can access and what actions they can take by defining a security policy.</p>
<p>SELinux is an implementation of a MAC security mechanism. MAC is an acronym for Mandatory Access Control (MAC). It is built into the Linux kernel and enabled by default on Fedora, CentOS, RHEL and a few other Linux distributions. SELinux allows server admin to define various permissions for all process. It defines how all processes can interact with other parts of the server such as:</p>
<ul>
<li>Pipes</li>
<li>Files</li>
<li>Network ports</li>
<li>Sockets</li>
<li>Directories</li>
<li>Other process</li>
</ul>
<p>SELinux puts restrictions on each of the above object according to a policy. For example, an apache user with full permission can only access /var/www/html directory, but can not touch other parts of the system such as /etc directory without policy modification. If an attacker managed to gain access to sendmail mail or bind dns or apache web server, would only have access to exploited server and the files normally has access as defined in the policy for the server. An attacker can not access the other parts of the system or internal LAN. In other words, damage can be now restricted to the particular server and files. The cracker will not able to get a shell on your server via common daemons such as Apache / BIND / Sendmail as SELinux offers the following security features:</p>
<ul>
<li>Protect users’ data from unauthorized access.</li>
<li>Protect other daemons or programs from unauthorized access.</li>
<li>Protect network ports / sockets / files from unauthorized access.</li>
<li>Protect server against exploits.</li>
<li>Avoid privilege escalation and much more.</li>
</ul>
<p>Please note that SELinux is not a silver bullet for protecting the server. You must follow other security practices such as</p>
<ul>
<li>Implementing firewalls policy.</li>
<li>Server monitoring.</li>
<li>Patching the system on time.</li>
<li>Writing and securing cgi/php/python/perl scripts.</li>
</ul>
<p>The /etc/selinux/config configuration file controls whether SELinux is enabled or disabled, and if enabled, whether SELinux operates in permissive mode or enforc-ing mode.</p>
<p><strong>SETTING OF SELINUX</strong><br />
SELinux is set in three modes.</p>
<p><strong>Enforcing</strong> – SELinux security policy is enforced. IF this is set SELinux is enabled and will try to enforce the SELinux policies strictly</p>
<p><strong>Permissive</strong> – SELinux prints warnings instead of enforcing. This setting will just give warning when any SELinux policy setting is breached</p>
<p><strong>Disabled</strong> – No SELinux policy is loaded. This will totally disable SELinux policies.</p>
<p><strong>SELinux policies</strong><br />
SELinux allows for multiple policies to be installed on the system, but only one policy may be active at any given time. At present, two kinds of SELinux policy exist:</p>
<p><strong>Targeted</strong> &#8211; The targeted policy is designed as a policy where most processes operate without restrictions, and only specific ser-vices are placed into distinct security domains that are confined by the policy.</p>
<p><strong>Strict</strong> &#8211; The strict policy is designed as a policy where all processes are partitioned<br />
into fine-grained security domains and confined by policy.</p>
<p><strong>To put SELinux into enforcing mode:</strong></p>
<pre class="brush: plain; title: ; notranslate">$ sudo setenforce 1</pre>
<p><strong>To query the SELinux status:</strong></p>
<pre class="brush: plain; title: ; notranslate">$ getenforce</pre>
<p><strong>To see SELinux status in simplified way you can use sestatus</strong></p>
<pre class="brush: plain; title: ; notranslate">$ sestatus</pre>
<p><strong>To get elobrated info on difference status of SELinux on different services use -b option along sestatus</strong></p>
<pre class="brush: plain; title: ; notranslate">$ sestatus -b</pre>
<p><strong>How to disable SElinux?</strong></p>
<pre class="brush: plain; title: ; notranslate">We can do it in two ways
1)Permanent way : edit /etc/selinux/config
change the status of SELINUX from enforcing to disabled
SELINUX=enforcing
to
SELINUX=disabled
Save the file and exit.

2)Temporary way : Execute below command
echo 0 &gt; /selinux/enforce
or
setenforce 0

</pre>
<p><strong>How about enabling SELinux?</strong></p>
<pre class="brush: plain; title: ; notranslate">1)Permanent way : edit /etc/selinux/config
change the status of SELINUX from disabled to enforcing
SELINUX=disabled
to
SELINUX=enforcing
Save the file and exit.

2)Temporary way : Execute below command
echo 1 &gt; /selinux/enforce
or
setenforce 1

</pre>
<p><strong>Now lets understand Docker with SELinux?</strong><br />
The interaction between SELinux policy and Docker is focused on two concerns: protection of the host, and protection of containers from one another.</p>
<p>SELinux labels consist of 4 parts:</p>
<p>User:Role:Type:level.</p>
<p>SELinux controls access to processes by Type and Level. Docker offers two forms of SELinux protection: type enforcement and multi-category security (MCS) separation.</p>
<p>Docker has the &#8211;selinux-enabled flag by default in CentOS 7.4.1708. However, in case your image or your configuration management tool is disabling it, as was the case for our puppet module verify this, you verify by running the following comman</p>
<pre class="brush: plain; title: ; notranslate">$ docker info | grep 'Security Options'</pre>
<p><strong>[root@ip-172-31-80-30 ec2-user]# more /etc/selinux/config</strong></p>
<pre class="brush: plain; title: ; notranslate"># This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=enforcing
# SELINUXTYPE= can take one of three two values:
# targeted - Targeted processes are protected,
# minimum - Modification of targeted policy. Only selected processes are pro
tected.
# mls - Multi Level Security protection.
SELINUXTYPE=targeted

</pre>
<p><strong>Refernece</strong><br />
https://www.cyberciti.biz/faq/what-is-selinux/<br />
https://en.wikipedia.org/wiki/Security-Enhanced_Linux<br />
http://jaormx.github.io/2018/selinux-and-docker-notes/</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/what-is-selinux-and-how-its-selinux-used-in-docker/">What is SELinux and how its SELinux used in Docker?</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/what-is-selinux-and-how-its-selinux-used-in-docker/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>How to run UI testing in Docker container using Selenium</title>
		<link>https://www.scmgalaxy.com/tutorials/how-to-run-ui-testing-in-docker-container-using-selenium/</link>
					<comments>https://www.scmgalaxy.com/tutorials/how-to-run-ui-testing-in-docker-container-using-selenium/#respond</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Wed, 11 Apr 2018 07:17:35 +0000</pubDate>
				<category><![CDATA[Docker]]></category>
		<category><![CDATA[Selenium]]></category>
		<category><![CDATA[UI testing]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/?p=4890</guid>

					<description><![CDATA[<p>Docker is one of the revolutions technologies which has created lots of buzz in the Software development practices. Docker has [&#8230;]</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/how-to-run-ui-testing-in-docker-container-using-selenium/">How to run UI testing in Docker container using Selenium</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-5122" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2018/04/docker-container.png" alt="" width="600" height="315" srcset="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2018/04/docker-container.png 600w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2018/04/docker-container-300x158.png 300w" sizes="auto, (max-width: 600px) 100vw, 600px" /></p>
<p>Docker is one of the revolutions technologies which has created lots of buzz in the Software development practices. Docker has not only helped to setup Continuous Integration and Delivery but also manage and replicate test environments and deploy a large at scale in no time. Here are the following advantages which benefit to testing team using docker</p>
<ul>
<li>Docker will help setting up Continuous Integration and Delivery which will enable testing team to deploy and test application in very less time compare of using virtual machines.</li>
<li>Efficient software teams push code to production multiple times a day. But this only works with good processes in place. Pull requests, code reviews, and good test coverage are essential for enabling a fast pace and high output of new code. Docker will help QA team to enable this in no time</li>
<li>Docker Compose help to create a Application Stake for Developers and QA in very less time.</li>
<li>Docker allows you to run your tests in containers as well as isolate your tests in development and deployment.</li>
<li>Using Docker to manage and replicate test environments in no time.</li>
</ul>
<p>But there is one limitation. The major problem of a Docker container for UI testing is that it does not have a screen output. <strong>There are in general two solutions:</strong></p>
<ol>
<li><strong> Use a headless browser such as HTMLUnit that does not require a graphical user interface or </strong></li>
<li><strong> Simulate a screen output.</strong></li>
</ol>
<p>Recommended is second one because in this case you do not need to change my testing code to use a WebDriver for a headless browser. Moreover, headless browser may not have full functionalities of a real browser.  What I need is a display server called Xvfb or X virtual frame buffer. It performs all graphical operations in memory without showing any screen output.</p>
<p><strong>You can find sample example in following urls.</strong></p>
<p><a href="https://medium.com/@yiquanzhou/run-selenium-ui-tests-in-docker-container-78be98e1b52d">https://medium.com/@yiquanzhou/run-selenium-ui-tests-in-docker-container-78be98e1b52d</a></p>
<p>http://testnblog.com/ui-automation-framework-on-docker/</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/how-to-run-ui-testing-in-docker-container-using-selenium/">How to run UI testing in Docker container using Selenium</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/how-to-run-ui-testing-in-docker-container-using-selenium/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>docker-compose prepends current directory name to named volumes</title>
		<link>https://www.scmgalaxy.com/tutorials/docker-compose-prepends-current-directory-name-to-named-volumes/</link>
					<comments>https://www.scmgalaxy.com/tutorials/docker-compose-prepends-current-directory-name-to-named-volumes/#respond</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Fri, 12 Jan 2018 06:46:08 +0000</pubDate>
				<category><![CDATA[Docker]]></category>
		<category><![CDATA[docker-compose]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/?p=4823</guid>

					<description><![CDATA[<p>Issues &#8211; docker-compose prepends current directory name to named volumes What actually happens is that the named volume gets prepended with [&#8230;]</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/docker-compose-prepends-current-directory-name-to-named-volumes/">docker-compose prepends current directory name to named volumes</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img loading="lazy" decoding="async" class="size-full wp-image-4848 aligncenter" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2018/01/docker-compose.png" alt="docker-compose" width="600" height="400" srcset="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2018/01/docker-compose.png 600w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2018/01/docker-compose-300x200.png 300w" sizes="auto, (max-width: 600px) 100vw, 600px" /></p>
<p>Issues &#8211; docker-compose prepends current directory name to named volumes</p>
<p>What actually happens is that the named volume gets prepended with (a simplified version of) the directory name from which the docker-compose command was run.</p>
<p>For instance, if I run from the &#8220;dcompos-programs&#8221; directory, and I name the volume &#8220;my_named_vol&#8221;, then I end up with a volume named &#8220;dcompos-programs_my_named_vol&#8221;.</p>
<p><strong>docker-compose-named-volume.yml:</strong></p>
<pre class="brush: plain; title: ; notranslate">

version: '3'
services:

solr:
 image: alpine:3.5
 container_name: foo
 volumes:
 - my_named_vol:/opt/foo
volumes:
 my_named_vol:

</pre>
<p><strong>Result:</strong></p>
<pre class="brush: plain; title: ; notranslate">

$ docker-compose -f docker-compose-named-volume.yml up -d &amp;amp;&amp;amp; \
&amp;gt; echo &quot;## named volume:&quot; &amp;amp;&amp;amp; \
&amp;gt; docker volume ls | grep my_named_vol &amp;amp;&amp;amp; \
&amp;gt; echo &quot;## stop&quot; &amp;amp;&amp;amp; \
&amp;gt; docker-compose -f docker-compose-named-volume.yml down &amp;amp;&amp;amp; \
&amp;gt; echo &quot;## rm volume&quot; &amp;amp;&amp;amp; \
&amp;gt; docker volume rm $(docker volume ls | grep my_named_vol | awk '{print $2}')
Creating network &quot;deploymentroot_default&quot; with the default driver
Creating volume &quot;dcompos-programs_my_named_vol&quot; with default driver
Creating foo

</pre>
<p><strong>Answer</strong><br />
docker-compose uses a project name. By default it’s the directory name which prevents collisions with existing containers. But you can use -p to change the prefix name.</p>
<p>You can use the external volume setting to avoid the prefix.<br />
<a href="https://docs.docker.com/compose/compose-file/#external">https://docs.docker.com/compose/compose-file/#external</a></p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/docker-compose-prepends-current-directory-name-to-named-volumes/">docker-compose prepends current directory name to named volumes</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/docker-compose-prepends-current-directory-name-to-named-volumes/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Kubernetes minikube errors and Solutions</title>
		<link>https://www.scmgalaxy.com/tutorials/kubernetes-minikube-errors-and-solutions/</link>
					<comments>https://www.scmgalaxy.com/tutorials/kubernetes-minikube-errors-and-solutions/#respond</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Fri, 12 Jan 2018 06:34:01 +0000</pubDate>
				<category><![CDATA[Kubernetes]]></category>
		<category><![CDATA[Docker]]></category>
		<category><![CDATA[kubernetes]]></category>
		<category><![CDATA[minikube]]></category>
		<category><![CDATA[Minikube errors]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/?p=4819</guid>

					<description><![CDATA[<p>Error 1 &#8211; Error starting host:  Error getting state for host: machine does not exist &#38;lt;p style=&#34;font-weight: 400;&#34;&#38;gt;D:\kubernete&#38;gt;minikube-windows-amd64.exe start --kubernetes-version=&#34;v1.8.0&#34; --vm&#38;lt;/p&#38;gt; [&#8230;]</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/kubernetes-minikube-errors-and-solutions/">Kubernetes minikube errors and Solutions</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h3><img loading="lazy" decoding="async" class="alignnone size-full wp-image-4838 aligncenter" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2018/01/kubernetes-minikube-errors-1-1.png" alt="" width="600" height="400" srcset="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2018/01/kubernetes-minikube-errors-1-1.png 600w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2018/01/kubernetes-minikube-errors-1-1-300x200.png 300w" sizes="auto, (max-width: 600px) 100vw, 600px" /></h3>
<h3>Error 1 &#8211; Error starting host:  Error getting state for host: machine does not exist</h3>
<pre class="brush: plain; title: ; notranslate">
&amp;lt;p style=&quot;font-weight: 400;&quot;&amp;gt;D:\kubernete&amp;gt;minikube-windows-amd64.exe start --kubernetes-version=&quot;v1.8.0&quot; --vm&amp;lt;/p&amp;gt;
&amp;lt;p style=&quot;font-weight: 400;&quot;&amp;gt;-driver=&quot;virtualbox&quot; --alsologtostderr&amp;lt;/p&amp;gt;
&amp;lt;p style=&quot;font-weight: 400;&quot;&amp;gt;W0110&amp;nbsp;&amp;lt;span data-term=&quot;goog_1571914274&quot;&amp;gt;12:16:04.517163&amp;lt;/span&amp;gt;&amp;nbsp;&amp;nbsp; 10504 root.go:148] Error reading config file at C:\Users&amp;lt;/p&amp;gt;
&amp;lt;p style=&quot;font-weight: 400;&quot;&amp;gt;\panan4\.minikube\config\config.json: open C:\Users\panan4\.minikube\config\conf&amp;lt;/p&amp;gt;
&amp;lt;p style=&quot;font-weight: 400;&quot;&amp;gt;ig.json: The system cannot find the file specified.&amp;lt;/p&amp;gt;
&amp;lt;p style=&quot;font-weight: 400;&quot;&amp;gt;I0110&amp;nbsp;&amp;lt;span data-term=&quot;goog_1571914275&quot;&amp;gt;12:16:04.528163&amp;lt;/span&amp;gt;&amp;nbsp;&amp;nbsp; 10504 notify.go:109] Checking for updates...&amp;lt;/p&amp;gt;
&amp;lt;p style=&quot;font-weight: 400;&quot;&amp;gt;I0110&amp;nbsp;&amp;lt;span data-term=&quot;goog_1571914276&quot;&amp;gt;12:16:05.901354&amp;lt;/span&amp;gt;&amp;nbsp;&amp;nbsp; 10504 cache_images.go:290] Attempting to cache image: gc&amp;lt;/p&amp;gt;
&amp;lt;p style=&quot;font-weight: 400;&quot;&amp;gt;&amp;lt;a href=&quot;http://r.io/k8s-minikube/storage-provisioner:v1.8.0&quot; data-saferedirecturl=&quot;https://www.google.com/url?hl=en&amp;amp;q=http://r.io/k8s-minikube/storage-provisioner:v1.8.0&amp;amp;source=gmail&amp;amp;ust=1515821717506000&amp;amp;usg=AFQjCNHilUJGRCqAxx0Naa3yTEDGQ9X2Dw&quot;&amp;gt;r.io/k8s-minikube/storage-provisioner:v1.8.0&amp;lt;/a&amp;gt;&amp;nbsp;at C:\Users\panan4\.minikube\cache\&amp;lt;/p&amp;gt;
&amp;lt;p style=&quot;font-weight: 400;&quot;&amp;gt;images\&amp;lt;a href=&quot;http://gcr.io/&quot; data-saferedirecturl=&quot;https://www.google.com/url?hl=en&amp;amp;q=http://gcr.io&amp;amp;source=gmail&amp;amp;ust=1515821717506000&amp;amp;usg=AFQjCNHwyTmXfOb8jcAGQbTDyIr_DuEirg&quot;&amp;gt;gcr.io&amp;lt;/a&amp;gt;\k8s-minikube\storage-provisioner_v1.8.0&amp;lt;/p&amp;gt;
&amp;lt;p style=&quot;font-weight: 400;&quot;&amp;gt;I0110&amp;nbsp;&amp;lt;span data-term=&quot;goog_1571914277&quot;&amp;gt;12:16:05.901354&amp;lt;/span&amp;gt;&amp;nbsp;&amp;nbsp; 10504 cache_images.go:290] Attempting to cache image: gc&amp;lt;/p&amp;gt;
&amp;lt;p style=&quot;font-weight: 400;&quot;&amp;gt;&amp;lt;a href=&quot;http://r.io/google_containers/k8s-dns-dnsmasq-nanny-amd64:1.14.5&quot; data-saferedirecturl=&quot;https://www.google.com/url?hl=en&amp;amp;q=http://r.io/google_containers/k8s-dns-dnsmasq-nanny-amd64:1.14.5&amp;amp;source=gmail&amp;amp;ust=1515821717506000&amp;amp;usg=AFQjCNFAVT9yppX_1usJ2E0YbShOwXUE9A&quot;&amp;gt;r.io/google_containers/k8s-dns-dnsmasq-nanny-amd64:1.14.5&amp;lt;/a&amp;gt;&amp;nbsp;at C:\Users\panan4\.mi&amp;lt;/p&amp;gt;
&amp;lt;p style=&quot;font-weight: 400;&quot;&amp;gt;nikube\cache\images\&amp;lt;a href=&quot;http://gcr.io/&quot; data-saferedirecturl=&quot;https://www.google.com/url?hl=en&amp;amp;q=http://gcr.io&amp;amp;source=gmail&amp;amp;ust=1515821717507000&amp;amp;usg=AFQjCNF--H_EnOHq-1gORX9rvCyL0guvAA&quot;&amp;gt;gcr.io&amp;lt;/a&amp;gt;\google_containers\k8s-dns-dnsmasq-nanny-amd64_1.14.5&amp;lt;/p&amp;gt;
&amp;lt;p style=&quot;font-weight: 400;&quot;&amp;gt;Starting local Kubernetes v1.8.0 cluster...&amp;lt;/p&amp;gt;
&amp;lt;p style=&quot;font-weight: 400;&quot;&amp;gt;Starting VM...&amp;lt;/p&amp;gt;
&amp;lt;p style=&quot;font-weight: 400;&quot;&amp;gt;I0110&amp;nbsp;&amp;lt;span data-term=&quot;goog_1571914278&quot;&amp;gt;12:16:05.901354&amp;lt;/span&amp;gt;&amp;nbsp;&amp;nbsp; 10504 cluster.go:74] Skipping create...Using existing ma&amp;lt;/p&amp;gt;
&amp;lt;p style=&quot;font-weight: 400;&quot;&amp;gt;chine configuration&amp;lt;/p&amp;gt;
&amp;lt;p style=&quot;font-weight: 400;&quot;&amp;gt;I0110&amp;nbsp;&amp;lt;span data-term=&quot;goog_1571914279&quot;&amp;gt;12:16:05.901354&amp;lt;/span&amp;gt;&amp;nbsp;&amp;nbsp; 10504 cache_images.go:290] Attempting to cache image: gc&amp;lt;/p&amp;gt;
&amp;lt;p style=&quot;font-weight: 400;&quot;&amp;gt;&amp;lt;a href=&quot;http://r.io/google_containers/kubernetes-dashboard-amd64:v1.6.3&quot; data-saferedirecturl=&quot;https://www.google.com/url?hl=en&amp;amp;q=http://r.io/google_containers/kubernetes-dashboard-amd64:v1.6.3&amp;amp;source=gmail&amp;amp;ust=1515821717507000&amp;amp;usg=AFQjCNERLC4qpuUBrUqm5OvSjac96pWNKw&quot;&amp;gt;r.io/google_containers/kubernetes-dashboard-amd64:v1.6.3&amp;lt;/a&amp;gt;&amp;nbsp;at C:\Users\panan4\.min&amp;lt;/p&amp;gt;
&amp;lt;p style=&quot;font-weight: 400;&quot;&amp;gt;ikube\cache\images\&amp;lt;a href=&quot;http://gcr.io/&quot; data-saferedirecturl=&quot;https://www.google.com/url?hl=en&amp;amp;q=http://gcr.io&amp;amp;source=gmail&amp;amp;ust=1515821717507000&amp;amp;usg=AFQjCNF--H_EnOHq-1gORX9rvCyL0guvAA&quot;&amp;gt;gcr.io&amp;lt;/a&amp;gt;\google_containers\kubernetes-dashboard-amd64_v1.6.3&amp;lt;/p&amp;gt;
&amp;lt;p style=&quot;font-weight: 400;&quot;&amp;gt;I0110&amp;nbsp;&amp;lt;span data-term=&quot;goog_1571914280&quot;&amp;gt;12:16:05.901354&amp;lt;/span&amp;gt;&amp;nbsp;&amp;nbsp; 10504 cache_images.go:290] Attempting to cache image: gc&amp;lt;/p&amp;gt;
&amp;lt;p style=&quot;font-weight: 400;&quot;&amp;gt;&amp;lt;a href=&quot;http://r.io/google_containers/k8s-dns-kube-dns-amd64:1.14.5&quot; data-saferedirecturl=&quot;https://www.google.com/url?hl=en&amp;amp;q=http://r.io/google_containers/k8s-dns-kube-dns-amd64:1.14.5&amp;amp;source=gmail&amp;amp;ust=1515821717507000&amp;amp;usg=AFQjCNFhurp_V-c-NFhO73j_Zjakc4fptw&quot;&amp;gt;r.io/google_containers/k8s-dns-kube-dns-amd64:1.14.5&amp;lt;/a&amp;gt;&amp;nbsp;at C:\Users\panan4\.minikub&amp;lt;/p&amp;gt;
&amp;lt;p style=&quot;font-weight: 400;&quot;&amp;gt;e\cache\images\&amp;lt;a href=&quot;http://gcr.io/&quot; data-saferedirecturl=&quot;https://www.google.com/url?hl=en&amp;amp;q=http://gcr.io&amp;amp;source=gmail&amp;amp;ust=1515821717507000&amp;amp;usg=AFQjCNF--H_EnOHq-1gORX9rvCyL0guvAA&quot;&amp;gt;gcr.io&amp;lt;/a&amp;gt;\google_containers\k8s-dns-kube-dns-amd64_1.14.5&amp;lt;/p&amp;gt;
&amp;lt;p style=&quot;font-weight: 400;&quot;&amp;gt;I0110&amp;nbsp;&amp;lt;span data-term=&quot;goog_1571914281&quot;&amp;gt;12:16:05.901354&amp;lt;/span&amp;gt;&amp;nbsp;&amp;nbsp; 10504 cache_images.go:290] Attempting to cache image: gc&amp;lt;/p&amp;gt;
&amp;lt;p style=&quot;font-weight: 400;&quot;&amp;gt;&amp;lt;a href=&quot;http://r.io/google-containers/kube-addon-manager:v6.4-beta.2&quot; data-saferedirecturl=&quot;https://www.google.com/url?hl=en&amp;amp;q=http://r.io/google-containers/kube-addon-manager:v6.4-beta.2&amp;amp;source=gmail&amp;amp;ust=1515821717507000&amp;amp;usg=AFQjCNEFsklfJPJCpLyEX7qsaLsvUDDRow&quot;&amp;gt;r.io/google-containers/kube-addon-manager:v6.4-beta.2&amp;lt;/a&amp;gt;&amp;nbsp;at C:\Users\panan4\.miniku&amp;lt;/p&amp;gt;
&amp;lt;p style=&quot;font-weight: 400;&quot;&amp;gt;be\cache\images\&amp;lt;a href=&quot;http://gcr.io/&quot; data-saferedirecturl=&quot;https://www.google.com/url?hl=en&amp;amp;q=http://gcr.io&amp;amp;source=gmail&amp;amp;ust=1515821717507000&amp;amp;usg=AFQjCNF--H_EnOHq-1gORX9rvCyL0guvAA&quot;&amp;gt;gcr.io&amp;lt;/a&amp;gt;\google-containers\kube-addon-manager_v6.4-beta.2&amp;lt;/p&amp;gt;
&amp;lt;p style=&quot;font-weight: 400;&quot;&amp;gt;I0110&amp;nbsp;&amp;lt;span data-term=&quot;goog_1571914282&quot;&amp;gt;12:16:05.901354&amp;lt;/span&amp;gt;&amp;nbsp;&amp;nbsp; 10504 cache_images.go:290] Attempting to cache image: gc&amp;lt;/p&amp;gt;
&amp;lt;p style=&quot;font-weight: 400;&quot;&amp;gt;&amp;lt;a href=&quot;http://r.io/google_containers/k8s-dns-sidecar-amd64:1.14.5&quot; data-saferedirecturl=&quot;https://www.google.com/url?hl=en&amp;amp;q=http://r.io/google_containers/k8s-dns-sidecar-amd64:1.14.5&amp;amp;source=gmail&amp;amp;ust=1515821717507000&amp;amp;usg=AFQjCNEOfewUFCow70i9iSK2lBFDahW47A&quot;&amp;gt;r.io/google_containers/k8s-dns-sidecar-amd64:1.14.5&amp;lt;/a&amp;gt;&amp;nbsp;at C:\Users\panan4\.minikube&amp;lt;/p&amp;gt;
&amp;lt;p style=&quot;font-weight: 400;&quot;&amp;gt;\cache\images\&amp;lt;a href=&quot;http://gcr.io/&quot; data-saferedirecturl=&quot;https://www.google.com/url?hl=en&amp;amp;q=http://gcr.io&amp;amp;source=gmail&amp;amp;ust=1515821717507000&amp;amp;usg=AFQjCNF--H_EnOHq-1gORX9rvCyL0guvAA&quot;&amp;gt;gcr.io&amp;lt;/a&amp;gt;\google_containers\k8s-dns-sidecar-amd64_1.14.5&amp;lt;/p&amp;gt;
&amp;lt;p style=&quot;font-weight: 400;&quot;&amp;gt;I0110&amp;nbsp;&amp;lt;span data-term=&quot;goog_1571914283&quot;&amp;gt;12:16:05.901354&amp;lt;/span&amp;gt;&amp;nbsp;&amp;nbsp; 10504 cache_images.go:290] Attempting to cache image: gc&amp;lt;/p&amp;gt;
&amp;lt;p style=&quot;font-weight: 400;&quot;&amp;gt;&amp;lt;a href=&quot;http://r.io/google_containers/pause-amd64:3.0&quot; data-saferedirecturl=&quot;https://www.google.com/url?hl=en&amp;amp;q=http://r.io/google_containers/pause-amd64:3.0&amp;amp;source=gmail&amp;amp;ust=1515821717507000&amp;amp;usg=AFQjCNF2E15ZIwSbjHDnD4zxOcapo39PIQ&quot;&amp;gt;r.io/google_containers/pause-amd64:3.0&amp;lt;/a&amp;gt;&amp;nbsp;at C:\Users\panan4\.minikube\cache\images&amp;lt;/p&amp;gt;
&amp;lt;p style=&quot;font-weight: 400;&quot;&amp;gt;\&amp;lt;a href=&quot;http://gcr.io/&quot; data-saferedirecturl=&quot;https://www.google.com/url?hl=en&amp;amp;q=http://gcr.io&amp;amp;source=gmail&amp;amp;ust=1515821717507000&amp;amp;usg=AFQjCNF--H_EnOHq-1gORX9rvCyL0guvAA&quot;&amp;gt;gcr.io&amp;lt;/a&amp;gt;\google_containers\pause-amd64_3.0&amp;lt;/p&amp;gt;
&amp;lt;p style=&quot;font-weight: 400;&quot;&amp;gt;I0110&amp;nbsp;&amp;lt;span data-term=&quot;goog_1571914284&quot;&amp;gt;12:16:05.911354&amp;lt;/span&amp;gt;&amp;nbsp;&amp;nbsp; 10504 cache_images.go:78] Successfully cached all images&amp;lt;/p&amp;gt;
&amp;lt;p style=&quot;font-weight: 400;&quot;&amp;gt;.&amp;lt;/p&amp;gt;
&amp;lt;p style=&quot;font-weight: 400;&quot;&amp;gt;I0110&amp;nbsp;&amp;lt;span data-term=&quot;goog_1571914285&quot;&amp;gt;12:16:06.292552&amp;lt;/span&amp;gt;&amp;nbsp;&amp;nbsp; 10504 cluster.go:83] Machine state:&amp;nbsp; Error&amp;lt;/p&amp;gt;
&amp;lt;p style=&quot;font-weight: 400;&quot;&amp;gt;E0110&amp;nbsp;&amp;lt;span data-term=&quot;goog_1571914286&quot;&amp;gt;12:16:06.292552&amp;lt;/span&amp;gt;&amp;nbsp;&amp;nbsp; 10504 start.go:150] Error starting host: Error getting s&amp;lt;/p&amp;gt;
&amp;lt;p style=&quot;font-weight: 400;&quot;&amp;gt;tate for host: machine does not exist.&amp;lt;/p&amp;gt;
&amp;lt;p style=&quot;font-weight: 400;&quot;&amp;gt;&amp;lt;/p&amp;gt;
&amp;lt;p style=&quot;font-weight: 400;&quot;&amp;gt;Retrying.&amp;lt;/p&amp;gt;
&amp;lt;p style=&quot;font-weight: 400;&quot;&amp;gt;E0110&amp;nbsp;&amp;lt;span data-term=&quot;goog_1571914287&quot;&amp;gt;12:16:06.292552&amp;lt;/span&amp;gt;&amp;nbsp;&amp;nbsp; 10504 start.go:156] Error starting host:&amp;nbsp; Error getting&amp;lt;/p&amp;gt;
&amp;lt;p style=&quot;font-weight: 400;&quot;&amp;gt;state for host: machine does not exist&amp;lt;/p&amp;gt;
&amp;lt;p style=&quot;font-weight: 400;&quot;&amp;gt;================================================================================&amp;lt;/p&amp;gt;
&amp;lt;p style=&quot;font-weight: 400;&quot;&amp;gt;&amp;lt;/p&amp;gt;
&amp;lt;p style=&quot;font-weight: 400;&quot;&amp;gt;An error has occurred. Would you like to opt in to sending anonymized crash&amp;lt;/p&amp;gt;
&amp;lt;p style=&quot;font-weight: 400;&quot;&amp;gt;information to minikube to help prevent future errors?&amp;lt;/p&amp;gt;
&amp;lt;p style=&quot;font-weight: 400;&quot;&amp;gt;To opt out of these messages, run the command:&amp;lt;/p&amp;gt;
&amp;lt;p style=&quot;font-weight: 400;&quot;&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; minikube config set WantReportErrorPrompt false&amp;lt;/p&amp;gt;
&amp;lt;p style=&quot;font-weight: 400;&quot;&amp;gt;================================================================================&amp;lt;/p&amp;gt;
</pre>
<h3>Solutions</h3>
<p>Please use/install minikube in the c drive.</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/kubernetes-minikube-errors-and-solutions/">Kubernetes minikube errors and Solutions</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/kubernetes-minikube-errors-and-solutions/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Docker malformed HTTP status code &#8220;online&#8221;</title>
		<link>https://www.scmgalaxy.com/tutorials/docker-malformed-http-status-code-online/</link>
					<comments>https://www.scmgalaxy.com/tutorials/docker-malformed-http-status-code-online/#respond</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Sat, 09 Dec 2017 11:39:28 +0000</pubDate>
				<category><![CDATA[CONTAINERS]]></category>
		<category><![CDATA[Docker]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/?p=2743</guid>

					<description><![CDATA[<p>rajeshkumar created the topic: Docker malformed HTTP status code &#8220;online&#8221; Error &#x5B;root@localhost madhavi]# docker pull jenkins Using default tag: latest [&#8230;]</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/docker-malformed-http-status-code-online/">Docker malformed HTTP status code &#8220;online&#8221;</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><strong>rajeshkumar created the topic: Docker malformed HTTP status code &#8220;online&#8221;</strong></p>
<p>Error</p>
<pre class="brush: css; title: ; notranslate">
&#x5B;root@localhost madhavi]# docker pull jenkins
Using default tag: latest
Warning: failed to get default registry endpoint from daemon (Cannot connect to the Docker daemon. Is the docker daemon running on this host?). Using system default: index.docker.io/v1/ 
Cannot connect to the Docker daemon. Is the docker daemon running on this host?
&#x5B;root@localhost madhavi]# systemctl start docker
&#x5B;root@localhost madhavi]# docker pull jenkins
Using default tag: latest
Pulling repository docker.io/library/jenkins
Error while pulling image: Get index.docker.io/v1/repositories/library/jenkins/images : malformed HTTP status code &quot;online&quot;
&#x5B;root@localhost madhavi]#
</pre>
<p>Regards,<br />
Rajesh Kumar<br />
Twitt me @ <a href="http://twitter.com/RajeshKumarIn">twitter.com/RajeshKumarIn</a></p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/docker-malformed-http-status-code-online/">Docker malformed HTTP status code &#8220;online&#8221;</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/docker-malformed-http-status-code-online/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Docker Toolboox error in Windows</title>
		<link>https://www.scmgalaxy.com/tutorials/docker-toolboox-error-in-windows/</link>
					<comments>https://www.scmgalaxy.com/tutorials/docker-toolboox-error-in-windows/#respond</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Sat, 09 Dec 2017 11:37:27 +0000</pubDate>
				<category><![CDATA[CONTAINERS]]></category>
		<category><![CDATA[Docker]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/?p=2740</guid>

					<description><![CDATA[<p>rajeshkumar created the topic: Docker Toolboox error in Windows Error error during connect: Get http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.26/info: open //./pipe/docker_engine: The system cannot [&#8230;]</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/docker-toolboox-error-in-windows/">Docker Toolboox error in Windows</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><strong>rajeshkumar created the topic: Docker Toolboox error in Windows</strong></p>
<p>Error<br />
error during connect: Get http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.26/info: open<br />
//./pipe/docker_engine: The system cannot find the file specified. In the defau<br />
lt daemon configuration on Windows, the docker client must be run elevated to co<br />
nnect. This error may also indicate that the docker daemon is not running.</p>
<p>Solution<br />
stackoverflow.com/questions/37527888/doc&#8230;nds-fails-in-windows </p>
<p>The following environment properties need to be set:<br />
set DOCKER_CERT_PATH=%USERPROFILE%\.docker\machine\machines\default<br />
set DOCKER_HOST=tcp://192.168.99.100:2376<br />
set DOCKER_MACHINE_NAME=default<br />
set DOCKER_TLS_VERIFY=1</p>
<p>$ docker-machine rm default<br />
$ docker-machine create &#8211;driver virtualbox default</p>
<p>Regards,<br />
Rajesh Kumar<br />
Twitt me @ <a href="http://twitter.com/RajeshKumarIn">twitter.com/RajeshKumarIn</a></p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/docker-toolboox-error-in-windows/">Docker Toolboox error in Windows</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/docker-toolboox-error-in-windows/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Top 10 DevOps Tools which is mostly used by DevOps Engineers &#124; scmGalaxy</title>
		<link>https://www.scmgalaxy.com/tutorials/top-10-devops-tools-which-is-mostly-used-by-devops-engineers/</link>
					<comments>https://www.scmgalaxy.com/tutorials/top-10-devops-tools-which-is-mostly-used-by-devops-engineers/#comments</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Thu, 16 Mar 2017 11:02:28 +0000</pubDate>
				<category><![CDATA[DevOps Tooling]]></category>
		<category><![CDATA[ANT]]></category>
		<category><![CDATA[Apache Maven]]></category>
		<category><![CDATA[Best]]></category>
		<category><![CDATA[Best DevOps Tools]]></category>
		<category><![CDATA[Chef]]></category>
		<category><![CDATA[Devops]]></category>
		<category><![CDATA[DevOps Engineers]]></category>
		<category><![CDATA[DevOps Tools]]></category>
		<category><![CDATA[Docker]]></category>
		<category><![CDATA[Features]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[Gradle]]></category>
		<category><![CDATA[Jenkins]]></category>
		<category><![CDATA[list]]></category>
		<category><![CDATA[List of DevOps Tools]]></category>
		<category><![CDATA[Logstash]]></category>
		<category><![CDATA[New Relic]]></category>
		<category><![CDATA[puppet]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[Top]]></category>
		<category><![CDATA[Top DevOps Tools]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/2017/03/16/top-10-devops-tools-which-is-mostly-used-by-devops-engineers/</guid>

					<description><![CDATA[<p>DevOps is an important component for software industry today. Developing and implementing a DevOps culture helps to focus IT results [&#8230;]</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/top-10-devops-tools-which-is-mostly-used-by-devops-engineers/">Top 10 DevOps Tools which is mostly used by DevOps Engineers | scmGalaxy</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div><img loading="lazy" decoding="async" class="aligncenter wp-image-2996 size-full" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2017/03/top-10-devops-tools-which-i.png" alt="top-10-devops-tools" width="600" height="400" srcset="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2017/03/top-10-devops-tools-which-i.png 600w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2017/03/top-10-devops-tools-which-i-300x200.png 300w" sizes="auto, (max-width: 600px) 100vw, 600px" /></div>
<div style="text-align: justify;"><strong>DevOps</strong> is an important component for software industry today. Developing and implementing a DevOps culture helps to focus IT results and to save time and money as the gap between developers and IT operations teams closes. Just as the term and culture are new, so are many of the best DevOps tools these DevOps engineers use to do their jobs efficiently and productively. To help you in your DevOps process, we have searched and created this list of DevOps tools which is mostly used by DevOps Engineers in their projects.</div>
<div style="text-align: justify;"></div>
<p><strong>1. Chef</strong></p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-541 size-full" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2017/03/chef-scmgalaxy.png" alt="devops-tool-chef" width="400" height="200" srcset="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2017/03/chef-scmgalaxy.png 400w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2017/03/chef-scmgalaxy-300x150.png 300w" sizes="auto, (max-width: 400px) 100vw, 400px" /></p>
<div style="text-align: justify;"></div>
<div style="text-align: justify;"><strong>Chef</strong> is an extremely popular tool among DevOps engineers. From IT automation to configuration management, Chef relies on recipes and resources so you can manage unique configurations and feel secure knowing Chef is checking your nodes and bringing them up to date for you.</div>
<div style="text-align: justify;"></div>
<div style="text-align: justify;"><strong>Key Features:</strong></div>
<ul>
<li style="text-align: justify;">Manage nodes from a single server</li>
<li style="text-align: justify;">Cross-platform management for Linux, Windows, Mac OS, and more</li>
<li style="text-align: justify;">Integrates with major cloud providers</li>
<li style="text-align: justify;">Premium features available</li>
</ul>
<div style="text-align: justify;"></div>
<div style="text-align: justify;">
<p><strong>2. Jenkins</strong></p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-542 size-full" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2017/03/jenkins-scmgalaxy.png" alt="devops-tool-jenkins" width="400" height="200" srcset="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2017/03/jenkins-scmgalaxy.png 400w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2017/03/jenkins-scmgalaxy-300x150.png 300w" sizes="auto, (max-width: 400px) 100vw, 400px" /></p>
<p>&nbsp;</p>
</div>
<div style="text-align: justify;"></div>
<div style="text-align: justify;">An extensible continuous integration engine, Jenkins is a top tool for DevOps engineers who want to monitor executions of repeated jobs. With Jenkins, DevOps engineers have an easier time integrating changes to projects and have access to outputs to easily notice when something goes wrong.</div>
<div style="text-align: justify;"></div>
<div style="text-align: justify;"><strong>Key Features:</strong></div>
<ul>
<li style="text-align: justify;">Permanent links</li>
<li style="text-align: justify;">RSS/email/IM integration</li>
<li style="text-align: justify;">After-the-fact tagging</li>
<li style="text-align: justify;">JUnit/TestNG test reporting</li>
<li style="text-align: justify;">Distributed builds</li>
</ul>
<div style="text-align: justify;"></div>
<div style="text-align: justify;"><strong>3. Puppet</strong></div>
<div style="text-align: justify;">
<p><img loading="lazy" decoding="async" class="alignnone wp-image-543 size-full" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2017/03/puppet-scmgalaxy.png" alt="devops-tool-puppet" width="400" height="200" srcset="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2017/03/puppet-scmgalaxy.png 400w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2017/03/puppet-scmgalaxy-300x150.png 300w" sizes="auto, (max-width: 400px) 100vw, 400px" /></p>
</div>
<div style="text-align: justify;">Puppet is an open-source configuration management tool. It runs on many Unix-like systems as well as on Microsoft Windows, and includes its own declarative language to describe system configuration. DevOps engineers often rely on Puppet for IT automation. Get a handle on configuration management and software while making rapid, repeatable changes with Puppet.</div>
<div style="text-align: justify;"></div>
<div style="text-align: justify;"><strong>Key Features:</strong></div>
<ul>
<li style="text-align: justify;">Automatically enforce consistency of environments</li>
<li style="text-align: justify;">Works across physical and virtual machines</li>
<li style="text-align: justify;">A common tool-chain</li>
<li style="text-align: justify;">Support key DevOps best practices, including continuous delivery</li>
</ul>
<div style="text-align: justify;"></div>
<div style="text-align: justify;">
<p><strong>4. Ant</strong></p>
<p>&nbsp;</p>
</div>
<div style="text-align: justify;">
<p><img loading="lazy" decoding="async" class="alignnone wp-image-544 size-full" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2017/03/apache-ant-scmgalaxy.png" alt="devops-tool-ant" width="400" height="200" /></p>
</div>
<div style="text-align: justify;">A Java library and command-line tool, Apache Ant looks “to drive processes described in build files as targets and extension points dependent upon each other.” This build automation tool is one that saves DevOps engineers a great deal of time.</div>
<div style="text-align: justify;"></div>
<div style="text-align: justify;"><strong>Key Features:</strong></div>
<ul>
<li style="text-align: justify;">Supplies a number of built-in tasks for compiling, assembling, testing, and running Java applications</li>
<li style="text-align: justify;">Builds non-Java applications, such as C or C++ applications</li>
<li style="text-align: justify;">Pilot any type of process which can be described in terms of targets and tasks</li>
<li style="text-align: justify;">Extremely flexible and does not impose coding conventions or directory layouts to the Java projects which adopt it as a build tool</li>
</ul>
<div style="text-align: justify;"></div>
<div style="text-align: justify;">
<p><strong>5. Apache Maven</strong></p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-545 size-full" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2017/03/maven-scmgalaxy.png" alt="devops-tool-apache-maven" width="400" height="200" srcset="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2017/03/maven-scmgalaxy.png 400w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2017/03/maven-scmgalaxy-300x150.png 300w" sizes="auto, (max-width: 400px) 100vw, 400px" /></p>
</div>
<div style="text-align: justify;"></div>
<div style="text-align: justify;">DevOps engineers can manage a project’s build, reporting, and documentation from a central piece of information with Apache Maven. A software project management and comprehension tool, Maven has been a reliable tool for DevOps engineers.</div>
<div style="text-align: justify;"></div>
<div style="text-align: justify;"><strong>Key Features:</strong></div>
<ul>
<li style="text-align: justify;">Simple project setup follows best practices</li>
<li style="text-align: justify;">Easily work with multiple projects at one time</li>
<li style="text-align: justify;">Large repository of libraries and metadata that continue to grow</li>
<li style="text-align: justify;">Extensible, with the ability to write plugins in Java or scripting languages</li>
</ul>
<div style="text-align: justify;"></div>
<div style="text-align: justify;"><strong>6. Logstash</strong></div>
<div style="text-align: justify;">
<p><img loading="lazy" decoding="async" class="alignnone wp-image-546 size-full" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2017/03/logstash-scmgalaxy.png" alt="devops-tool-logstash" width="400" height="200" srcset="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2017/03/logstash-scmgalaxy.png 400w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2017/03/logstash-scmgalaxy-300x150.png 300w" sizes="auto, (max-width: 400px) 100vw, 400px" /></p>
<p>For open source log processing, search, and analytics, Logstash is a popular tool among DevOps engineers. Because Logstash is licensed under Apache 2.0, you can use it in the way that best suits your needs.</p>
</div>
<div style="text-align: justify;"></div>
<div style="text-align: justify;"><strong>Key Features:</strong></div>
<ul>
<li style="text-align: justify;">Collects, parses, and stores logs for later use</li>
<li style="text-align: justify;">Includes a web interface for searching and drilling into all of your logs</li>
<li style="text-align: justify;">Ship logs from any source, parse them, timestamp them correctly, index them, and search them</li>
</ul>
<div style="text-align: justify;"></div>
<div style="text-align: justify;">
<p><strong>7. Docker</strong></p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-547 size-full" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2017/03/docker-scmgalaxy.png" alt="devops-tool-docker" width="400" height="200" srcset="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2017/03/docker-scmgalaxy.png 400w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2017/03/docker-scmgalaxy-300x150.png 300w" sizes="auto, (max-width: 400px) 100vw, 400px" /></p>
<p>&nbsp;</p>
</div>
<div style="text-align: justify;"></div>
<div style="text-align: justify;">An open platform for distributed applications, Docker is an application for DevOps engineers who want to “build, ship, and run any app, anywhere.” With Docker, you can quickly assemble apps from components and work collaboratively.</div>
<div style="text-align: justify;"></div>
<div style="text-align: justify;"><strong>Key Features:</strong></div>
<ul>
<li style="text-align: justify;">Assemble multi-container apps and run on any infrastructure</li>
<li style="text-align: justify;">Compose an app using both proprietary containers and Docker Hub Official Repos</li>
<li style="text-align: justify;">Manage all containers of an app as a single group</li>
<li style="text-align: justify;">Cluster an app’s containers to optimize resources and provide high-availability</li>
</ul>
<div style="text-align: justify;"></div>
<div style="text-align: justify;"><strong>8. New Relic</strong></div>
<div style="text-align: justify;">
<p><img loading="lazy" decoding="async" class="alignnone wp-image-548 size-full" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2017/03/newrelic-scmgalaxy.png" alt="devops-tool-new-relic" width="400" height="200" srcset="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2017/03/newrelic-scmgalaxy.png 400w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2017/03/newrelic-scmgalaxy-300x150.png 300w" sizes="auto, (max-width: 400px) 100vw, 400px" /></p>
</div>
<div style="text-align: justify;">With New Relic APM, DevOps engineers spend less time monitoring applications and more time on building and deploying. A popular, reliable tool, New Relic APM is a great choice for DevOps engineers.</div>
<div style="text-align: justify;"></div>
<div style="text-align: justify;"><strong>Key Features:</strong></div>
<ul>
<li style="text-align: justify;">Helps in the build, deployment, and maintenance of web software</li>
<li style="text-align: justify;">Application monitoring in one place</li>
<li style="text-align: justify;">Cross application and transaction tracing</li>
<li style="text-align: justify;">Database and availability and error monitoring</li>
</ul>
<div style="text-align: justify;"></div>
<div style="text-align: justify;"><strong>9. Gradle</strong></div>
<div style="text-align: justify;">
<p><img loading="lazy" decoding="async" class="alignnone wp-image-549 size-full" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2017/03/gradle-scmgalaxy.png" alt="devops-tool-gradle" width="400" height="200" /></p>
<p>&nbsp;</p>
</div>
<div style="text-align: justify;">Gradle is a robust tool for automating building, testing, publishing, and deploying software packages and other projects. With the combined power and flexibility of Ant and Maven, Gradle is an open source build automation system which is perfect and very useful for DevOps engineers.</div>
<div style="text-align: justify;"></div>
<div style="text-align: justify;"><strong>Key Features:</strong></div>
<ul>
<li style="text-align: justify;">Declarative builds and build-by-convention</li>
<li style="text-align: justify;">Language for dependency-based programming</li>
<li style="text-align: justify;">Structure your build</li>
<li style="text-align: justify;">Deep API</li>
<li style="text-align: justify;">Multi-project builds</li>
<li style="text-align: justify;">Ease of migration</li>
</ul>
<div style="text-align: justify;"></div>
<div style="text-align: justify;"><strong>10. Git </strong></div>
<div style="text-align: justify;">
<p><img loading="lazy" decoding="async" class="alignnone wp-image-550 size-full" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2017/03/git-scmgalaxy.png" alt="devops-tool-git " width="400" height="200" /></p>
<p>&nbsp;</p>
</div>
<div style="text-align: justify;">Git is a mature, actively maintained open source project originally developed in 2005 by Linus Torvalds, the famous creator of the Linux operating system kernel. Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.</div>
<div style="text-align: justify;"></div>
<div style="text-align: justify;"><strong>Key Features:</strong></div>
<ul>
<li style="text-align: justify;">Working offline</li>
<li style="text-align: justify;">Fast to Work With</li>
<li style="text-align: justify;">Repositories Are Smaller</li>
<li style="text-align: justify;">Moving or Adding files</li>
<li style="text-align: justify;">Ignore Certain Files</li>
<li style="text-align: justify;">Branches</li>
<li style="text-align: justify;">Check the Status of Your Changes</li>
<li style="text-align: justify;">Stash Branches</li>
<li style="text-align: justify;">Cherry Pick Changes from Branches</li>
<li style="text-align: justify;">Find version that Introduced a bug using Binary Search</li>
</ul>
<div style="text-align: justify;"></div>
<div style="text-align: justify;">These are the most popular DevOps tools which are used by DevOps engineers or practitioners these days. But to make most out of these tools you need to have proper knowledge of these tools like installation process, implementation process, where to you use, how to use, troubleshooting and much more. So, if you think you need help or training for these tools or for DevOps related helps than we are here to assist you with our industry expertise professionals.</div>
<div></div>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/top-10-devops-tools-which-is-mostly-used-by-devops-engineers/">Top 10 DevOps Tools which is mostly used by DevOps Engineers | scmGalaxy</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/top-10-devops-tools-which-is-mostly-used-by-devops-engineers/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Docker Command line Reference &#124; Docker Tutorial &#124; Docker Guide</title>
		<link>https://www.scmgalaxy.com/tutorials/docker-commands-line-reference/</link>
					<comments>https://www.scmgalaxy.com/tutorials/docker-commands-line-reference/#comments</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Fri, 15 Jul 2016 17:50:41 +0000</pubDate>
				<category><![CDATA[CONTAINERS]]></category>
		<category><![CDATA[CLI]]></category>
		<category><![CDATA[Command line]]></category>
		<category><![CDATA[Containers]]></category>
		<category><![CDATA[Docker]]></category>
		<category><![CDATA[Docker Command line]]></category>
		<category><![CDATA[Docker Command line Reference]]></category>
		<category><![CDATA[Docker Guide]]></category>
		<category><![CDATA[Docker Tutorial]]></category>
		<category><![CDATA[Reference]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/2016/07/15/docker-commands-line-reference/</guid>

					<description><![CDATA[<p>One liner to stop all of Docker containers: &#62; docker stop $(docker ps -a -q) One liner to remove all [&#8230;]</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/docker-commands-line-reference/">Docker Command line Reference | Docker Tutorial | Docker Guide</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div><img loading="lazy" decoding="async" class="alignnone size-full wp-image-3037 aligncenter" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2016/07/docker-commands-line-refere.png" alt="" width="600" height="400" srcset="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2016/07/docker-commands-line-refere.png 600w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2016/07/docker-commands-line-refere-300x200.png 300w" sizes="auto, (max-width: 600px) 100vw, 600px" /></div>
<div><strong>One liner to stop all of Docker containers:</strong></div>
<div>&gt; docker stop $(docker ps -a -q)</div>
<div></div>
<div><strong>One liner to remove all of Docker containers:</strong></div>
<div>&gt; docker rm $(docker ps -a -q)</div>
<div>OR</div>
<div>&gt; docker rm $(docker images -q)</div>
<div>OR</div>
<div>&gt; docker rmi $(docker images -q)</div>
<div></div>
<div></div>
<div><strong>In case of error message Get http:///var/run/docker.sock/v1.14/containers/json?all=1: dial unix /var/run/docker.sock: permission denied</strong></div>
<div>&gt; sudo docker rm $(sudo docker ps -a -q)</div>
<div></div>
<div></div>
<div><strong>To only stop exited containers and delete only non-tagged images.:</strong></div>
<div>&gt; docker ps &#8211;filter &#8216;status=Exited&#8217; -a | xargs docker stop</div>
<div>&gt; docker images &#8211;filter &#8220;dangling=true&#8221; -q | xargs docker rmi</div>
<div></div>
<div><strong>Remove all containers that aren&#8217;t currently running:</strong></div>
<div>&gt; docker rm $(docker ps -a -q -f &#8220;status=exited*&#8221;)</div>
<div></div>
<div><strong>if not the volumes will not be delete !!! (like if you are using a mysql docker image) and all the volumes will be orphans !</strong></div>
<div>&gt; sudo docker rm -f -v $(sudo docker ps -a -q)</div>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/docker-commands-line-reference/">Docker Command line Reference | Docker Tutorial | Docker Guide</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/docker-commands-line-reference/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Docker Training &#124; Docker Course &#124; Agenda &#124; scmGalaxy</title>
		<link>https://www.scmgalaxy.com/tutorials/docker-training-agenda/</link>
					<comments>https://www.scmgalaxy.com/tutorials/docker-training-agenda/#comments</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Wed, 13 Jul 2016 19:28:09 +0000</pubDate>
				<category><![CDATA[Training]]></category>
		<category><![CDATA[Dcker Training]]></category>
		<category><![CDATA[Docker]]></category>
		<category><![CDATA[Docker Agenda]]></category>
		<category><![CDATA[Docker Course]]></category>
		<category><![CDATA[Docker Course Content]]></category>
		<category><![CDATA[Docker Training Agenda]]></category>
		<category><![CDATA[Learn Docker]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/2016/07/13/docker-training-agenda/</guid>

					<description><![CDATA[<p>Need to learn Docker? This is the training for you! This training provides a soup-to-nuts learning experience for core Docker [&#8230;]</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/docker-training-agenda/">Docker Training | Docker Course | Agenda | scmGalaxy</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-3035 size-full" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2016/07/docker-training-agenda.png" alt="docker-training-agenda" width="600" height="400" srcset="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2016/07/docker-training-agenda.png 600w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2016/07/docker-training-agenda-300x200.png 300w" sizes="auto, (max-width: 600px) 100vw, 600px" /></p>
<p>Need to learn Docker? This is the training for you! This training provides a soup-to-nuts learning experience for core Docker technologies, including the Docker Engine, Images, Containers, Registries, Networking, Storage, and more. All of the behind the scenes theory is explained, and all concepts are clearly demonstrated on the command line. No prior knowledge of Docker or Linux is required. Training Overview Training</p>
<p><strong>Introduction</strong></p>
</div>
<div>o Training Introduction</div>
<div>o What We&#8217;ll Learn</div>
<div>o Prerequisites</div>
<div><strong>Introducing Containers</strong></div>
<div>o The Rise of the Virtual Machine</div>
<div>o The Ugly Virtual Machine</div>
<div>o What Are Containers?3</div>
<div>o Containers Under the Hood</div>
<div>o Docker6</div>
<div>o The Future of Docker and Containers</div>
<div><strong>Installing Ubuntu Linux and CentOS Linux</strong></div>
<div>o Module Intro</div>
<div>o Downloading Ubuntu</div>
<div>o Creating a VM to Install Ubuntu</div>
<div>o Installing Ubuntu</div>
<div>o Downloading CentOS</div>
<div>o Creating a VM to Install CentOS</div>
<div>o Installing CentOS</div>
<div><strong>Installing and Updating Docker</strong></div>
<div>o Module Intro1m 22s</div>
<div>o Docker on Ubuntu</div>
<div>o Installing Docker on CentOS</div>
<div>o Updating Docker</div>
<div>o Granting Docker Control to Non-root Users</div>
<div>o Configuring Docker to Communicate Over the Network</div>
<div>o Playing Around with Our First Docker Container</div>
<div>o Wrap-up</div>
<div><strong>Major Docker Components</strong></div>
<div>o Module Intro</div>
<div>o The High Level Picture</div>
<div>o The Docker Engine</div>
<div>o Docker Images</div>
<div>o Docker Containers</div>
<div>o Docker Hub</div>
<div>o Wrap-up</div>
<div><strong>A Closer Look at Images and Containers</strong></div>
<div>o Module Intro</div>
<div>o Image Layers</div>
<div>o Union Mounts</div>
<div>o Where Images Are Stored</div>
<div>o Copying Images to Other Hosts</div>
<div>o The Top Writeable Layer of Containers</div>
<div>o One Process per Container</div>
<div>o Commands for Working with Containers</div>
<div>o Wrap-up</div>
<div><strong>Container Management</strong></div>
<div>o Module Intro56s</div>
<div>o Starting and Stopping Containers</div>
<div>o PID 1 and Containers</div>
<div>o Deleting Containers</div>
<div>o Looking Inside of Containers</div>
<div>o Low-level Container Info</div>
<div>o Getting a Shell in a Container</div>
<div>o Wrap-up</div>
<div><strong>Building from a Dockerfile</strong></div>
<div>o Module Intro</div>
<div>o Introducing the Dockerfile</div>
<div>o Creating a Dockerfile</div>
<div>o Building an Image from a Dockerfile</div>
<div>o Inspecting a Dockerfile from Docker Hub</div>
<div>o Wrap-up</div>
<div><strong>Working with Registries</strong></div>
<div>o Module Intro1m 25s</div>
<div>o Creating a Public Repo on Docker Hub</div>
<div>o Using Our Public Repo on Docker Hub</div>
<div>o Introduction to Private Registries</div>
<div>o Building a Private Registry</div>
<div>o Using a Private Registry</div>
<div>o Docker Hub Enterprise</div>
<div>o Wrap-up</div>
<div><strong>Diving Deeper with Dockerfile</strong></div>
<div>o Module Intro</div>
<div>o The Build Cache</div>
<div>o Dockerfile and Layers</div>
<div>o Dockerfile</div>
<div>o Launching the Web Server Container</div>
<div>o Reducing the Number of Layers in an Image</div>
<div>o The CMD Instruction</div>
<div>o The ENTRYPOINT Instruction</div>
<div>o The ENV Instruction</div>
<div>o Volumes and the VOLUME Instruction</div>
<div>o Module Recap</div>
<div><strong>Docker Networking</strong></div>
<div>o Module Intro</div>
<div>o The docker0 Bridge</div>
<div>o Virtual Ethernet Interfaces</div>
<div>o Network Configuration Files</div>
<div>o Exposing Ports</div>
<div>o Viewing Exposed Ports</div>
<div>o Linking Containers</div>
<div><strong>Troubleshooting</strong></div>
<div>o Module Intro</div>
<div>o Docker Daemon Logging</div>
<div>o Container Logging</div>
<div>o Planning Image Builds</div>
<div>o Intermediate Images</div>
<div>o The docker0 Bridge</div>
<div>o IPTables</div>
<div>o Wrap-up</div>
<div><strong>Lightning Fast Recap</strong></div>
<div>o Module Intro</div>
<div>o Recapping Some of What We&#8217;ve Learned</div>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/docker-training-agenda/">Docker Training | Docker Course | Agenda | scmGalaxy</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/docker-training-agenda/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>How to Install Jenkins using Docker &#124; Step by step guide &#124; scmGalaxy</title>
		<link>https://www.scmgalaxy.com/tutorials/install-jenkins-using-docker/</link>
					<comments>https://www.scmgalaxy.com/tutorials/install-jenkins-using-docker/#respond</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Thu, 10 Mar 2016 11:17:46 +0000</pubDate>
				<category><![CDATA[Jenkins]]></category>
		<category><![CDATA[Docker]]></category>
		<category><![CDATA[Guide]]></category>
		<category><![CDATA[How]]></category>
		<category><![CDATA[How to Install Jenkins using Docker]]></category>
		<category><![CDATA[Install]]></category>
		<category><![CDATA[Install Jenkins using Docker]]></category>
		<category><![CDATA[Jenkins Installation Guide]]></category>
		<category><![CDATA[Jenkins installation process]]></category>
		<category><![CDATA[Jenkins installation tutorial]]></category>
		<category><![CDATA[Jenkins Installation using Docker]]></category>
		<category><![CDATA[Process]]></category>
		<category><![CDATA[Steps]]></category>
		<category><![CDATA[Tutorial]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/2016/03/10/install-jenkins-using-docker/</guid>

					<description><![CDATA[<p>Step 1: Installing Docker $ apt-get install docker (Ubuntu) $ yum install docker  (RHEL/CENTOS) For more info, please following this [&#8230;]</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/install-jenkins-using-docker/">How to Install Jenkins using Docker | Step by step guide | scmGalaxy</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div><img loading="lazy" decoding="async" class="alignnone size-full wp-image-3058 aligncenter" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2016/03/install-jenkins-using-docke.png" alt="" width="600" height="400" srcset="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2016/03/install-jenkins-using-docke.png 600w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2016/03/install-jenkins-using-docke-300x200.png 300w" sizes="auto, (max-width: 600px) 100vw, 600px" /></div>
<div><strong>Step 1: Installing Docker</strong></div>
<div>
<pre class="brush: plain; title: ; notranslate">
$ apt-get install docker (Ubuntu)
$ yum install docker  (RHEL/CENTOS)
</pre>
</div>
<div>For more info, please following this <a href="http://www.scmgalaxy.com/scm/software-containers/how-to-install-docker-in-linux.html" target="_blank" rel="noopener">http://www.scmgalaxy.com/scm/software-containers/how-to-install-docker-in-linux.html</a></div>
<div></div>
<div><strong>Step 2:  First, pull the official jenkins image from Docker repository.</strong></div>
<div>
<pre class="brush: plain; title: ; notranslate">$ docker pull jenkins </pre>
</div>
<div></div>
<div>
<p><strong>Step 3: Next, run a container using this image and map data directory from the container to the host; e.g in the example below /var/jenkins_home from the container is mapped to jenkins/ directory from the current path on the host. Jenkins 8080 port is also exposed to the host as 49001.</strong></p>
<p><strong>Mapping port 8080 on the host to the container (the web ui), port 50000 to port 50000 (for build agents). Run with `-p 50000:50000` so you can connect JNLP slaves. For port 50000. This is to handle connections from JNLP based build slaves. This will store the workspace in /var/jenkins_home. All Jenkins data lives in there including plugins and configuration.</strong></p>
</div>
<div>
<div>
<pre class="brush: plain; title: ; notranslate">$ docker run -d -p 8080:8080 -p 50000:50000 jenkins </pre>
</div>
<div></div>
<div><strong>This will store the jenkins data in /your/home on the host. Ensure that /your/home is accessible by the jenkins user in container (jenkins user &#8211; uid 1000) or use -u some_other_user parameter with docker run.</strong></div>
<div>
<pre class="brush: plain; title: ; notranslate">$ docker run -d -p 8080:8080 -p 50000:50000 -u root -v $PWD/jenkins:/var/jenkins_home jenkins </pre>
</div>
<div></div>
<div> <strong>Other Example:</strong></div>
<div>
<pre class="brush: plain; title: ; notranslate">docker run -d -p 49001:8080 -v $PWD/jenkins:/var/jenkins_home -t jenkins -u root </pre>
</div>
<div></div>
<div><strong>This will store the jenkins data in /your/home on the host. Ensure that /your/home is accessible by the jenkins user in container (jenkins user &#8211; uid 1000) or use -u some_other_user parameter with docker run. </strong><strong>This information is also found in the Dockerfile. So all you need to do is to ensure that the directory $PWD/jenkins is own by UID 1000:</strong></div>
<div>
<pre class="brush: plain; title: ; notranslate">
$ mkdir jenkins
$ chown 1000 jenkins
$ docker run -d -p 49001:8080 -v $PWD/jenkins:/var/jenkins_home -t jenkins
</pre>
<div><strong>How to see the Jenkins log?</strong></div>
<div>
<pre class="brush: plain; title: ; notranslate">$ docker exec name tail -f /var/log/jenkins/jenkins.log
Where name = --name </pre>
</div>
</div>
<div><strong>Step 3:  Access to j=Jenkins</strong></div>
<div>As we have successfully run Jenkins Container, we can browse Jenkins Web Interface using our Web Browser by pointint to http://ip-address:49001 or http://localhost:49001 according to the configuration.</div>
</div>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/install-jenkins-using-docker/">How to Install Jenkins using Docker | Step by step guide | scmGalaxy</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/install-jenkins-using-docker/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Simple Docker workflow &#8211; Quick start &#124; Docker Tutorial</title>
		<link>https://www.scmgalaxy.com/tutorials/simple-docker-workflow-quick-start/</link>
					<comments>https://www.scmgalaxy.com/tutorials/simple-docker-workflow-quick-start/#respond</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Tue, 23 Feb 2016 15:17:33 +0000</pubDate>
				<category><![CDATA[CONTAINERS]]></category>
		<category><![CDATA[Container]]></category>
		<category><![CDATA[Docker]]></category>
		<category><![CDATA[Docker Guide]]></category>
		<category><![CDATA[Docker Tutorial]]></category>
		<category><![CDATA[Docker workflow]]></category>
		<category><![CDATA[Quickstart]]></category>
		<category><![CDATA[Simple]]></category>
		<category><![CDATA[Steps]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[workflow]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/2016/02/23/simple-docker-workflow-quick-start/</guid>

					<description><![CDATA[<p>Simple Docker workflow &#8211; Quick start In this tutorials, I am trying to cover the simple quickstart Docker workflow and [&#8230;]</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/simple-docker-workflow-quick-start/">Simple Docker workflow &#8211; Quick start | Docker Tutorial</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div><img loading="lazy" decoding="async" class="wp-image-3188 size-full aligncenter" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2016/02/simple-docker-workflow.png" alt="docker-workflow" width="600" height="400" srcset="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2016/02/simple-docker-workflow.png 600w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2016/02/simple-docker-workflow-300x200.png 300w" sizes="auto, (max-width: 600px) 100vw, 600px" /></div>
<div><strong>Simple Docker workflow &#8211; Quick start</strong></div>
<div></div>
<div>In this tutorials, I am trying to cover the simple quickstart Docker workflow and for the example, I am creating Ubantu containee and using it to showcase this tutorial.</div>
<div></div>
<div><strong>Step 1 &#8211; Download the Ubantu image container from the Docker Hub</strong></div>
<div># docker pull -a ubuntu</div>
<div></div>
<div><strong>Step 2 &#8211; Run the ubuntu container and access to ther /bin/bash commands prompt</strong></div>
<div># docker run -it ubuntu /bin/bash</div>
<div></div>
<div><strong>Step 3 &#8211; Stop the container </strong></div>
<div># docker stop container_id</div>
<div></div>
<div><strong>How to get the container id?</strong></div>
<div># docker ps -a</div>
<div></div>
<div><strong>Step 4: Start the container again?</strong></div>
<div># docker start container_id</div>
<div></div>
<div><strong>Step 5: Exit the running container without stopping the container</strong></div>
<div># exit</div>
<div></div>
<div><strong>Step 6: Login the running container for bash prompt</strong></div>
<div># sudo docker exec -i -t 2e56ad1705b1 /bin/bas</div>
<div></div>
<div><strong>For more &#8211; Refer </strong></div>
<div><a href="http://www.scmgalaxy.com/scm/package-management/how-to-get-bash-or-ssh-into-a-running-container-in-background-mode.html" target="_blank" rel="noopener">http://www.scmgalaxy.com/scm/package-management/how-to-get-bash-or-ssh-into-a-running-container-in-background-mode.html</a></div>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/simple-docker-workflow-quick-start/">Simple Docker workflow &#8211; Quick start | Docker Tutorial</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/simple-docker-workflow-quick-start/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>How to Install Docker in Linux?</title>
		<link>https://www.scmgalaxy.com/tutorials/how-to-install-docker-in-linux/</link>
					<comments>https://www.scmgalaxy.com/tutorials/how-to-install-docker-in-linux/#respond</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Tue, 23 Feb 2016 15:02:05 +0000</pubDate>
				<category><![CDATA[Unix / Linux]]></category>
		<category><![CDATA[Docker]]></category>
		<category><![CDATA[Docker in Linux]]></category>
		<category><![CDATA[Docker installation process in linux]]></category>
		<category><![CDATA[Guide]]></category>
		<category><![CDATA[How]]></category>
		<category><![CDATA[Install]]></category>
		<category><![CDATA[Install Docker in Linux]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Process]]></category>
		<category><![CDATA[Steps]]></category>
		<category><![CDATA[Tutorials]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/2016/02/23/how-to-install-docker-in-linux/</guid>

					<description><![CDATA[<p>How to Install Docker in Linux? Note &#8211; You should install Docker using root or with sudo access. Install Docker [&#8230;]</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/how-to-install-docker-in-linux/">How to Install Docker in Linux?</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div><img loading="lazy" decoding="async" class="wp-image-3190 size-full aligncenter" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2016/02/how-to-install-docker-in-li.png" alt="install-docker-in-linux" width="600" height="400" srcset="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2016/02/how-to-install-docker-in-li.png 600w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2016/02/how-to-install-docker-in-li-300x200.png 300w" sizes="auto, (max-width: 600px) 100vw, 600px" /></div>
<div><strong>How to Install Docker in Linux?</strong></div>
<div></div>
<div>Note &#8211; You should install Docker using root or with sudo access.</div>
<div></div>
<div><strong>Install Docker on Ubantu </strong></div>
<div># apt-get update</div>
<div># apt-get install -y docker.io</div>
<div># service docker.io start</div>
<div></div>
<div><strong>Install Docker on Redhar / Centos</strong></div>
<div># yum update</div>
<div># yum install -y docker.io</div>
<div># systemctl start docker.service</div>
<div></div>
<div><strong>How to verify the version of docker?</strong></div>
<div># docker -v</div>
<div># docker version</div>
<div></div>
<div><strong>How to know docker running?</strong></div>
<div># service docker.io status (Ubantu)</div>
<div># systemctl status docker.service (Redhat)</div>
<div></div>
<div><strong>How to check details of Docker clients, deamon, containers, images, drivers, etc</strong></div>
<div># docker info</div>
<div></div>
<div><strong>How to update Docker version?</strong></div>
<div>==============================================</div>
<div># wget -q0- https://get.docker.com/gpg | apt-key add &#8211;</div>
<div># echo deb http://get.docker.com/ubantu docker main &gt; /etc/apt/sources.list.d/docker.list</div>
<div># apt-get update</div>
<div># apt-get install lxc-docker</div>
<div># docker version</div>
<div></div>
<div><strong>Configuration post docker installation:</strong></div>
<div>Adding Users to the Docker Group for non-root user</div>
<div>==============================================</div>
<div># docker run -it ubuntu /bin/bash (as a non-root)</div>
<div>[ permission denied]</div>
<div># cat /etc/group</div>
<div># sudo gpasswd -a username docker</div>
<div># cat /etc/group</div>
<div># docker run -it ubuntu /bin/bash (as a non-root)</div>
<div># logout</div>
<div># login username</div>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/how-to-install-docker-in-linux/">How to Install Docker in Linux?</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/how-to-install-docker-in-linux/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>How to get bash or ssh into a running container in background mode?</title>
		<link>https://www.scmgalaxy.com/tutorials/how-to-get-bash-or-ssh-into-a-running-container-in-background-mode/</link>
					<comments>https://www.scmgalaxy.com/tutorials/how-to-get-bash-or-ssh-into-a-running-container-in-background-mode/#respond</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Tue, 23 Feb 2016 11:51:34 +0000</pubDate>
				<category><![CDATA[CONTAINERS]]></category>
		<category><![CDATA[Background]]></category>
		<category><![CDATA[Bash]]></category>
		<category><![CDATA[Container]]></category>
		<category><![CDATA[Docker]]></category>
		<category><![CDATA[How]]></category>
		<category><![CDATA[mode]]></category>
		<category><![CDATA[Running container]]></category>
		<category><![CDATA[SSH]]></category>
		<category><![CDATA[SSH into a Container]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/2016/02/23/how-to-get-bash-or-ssh-into-a-running-container-in-background-mode/</guid>

					<description><![CDATA[<p>How to get bash or ssh into a running container in background mode? Step 1: First of all, try to [&#8230;]</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/how-to-get-bash-or-ssh-into-a-running-container-in-background-mode/">How to get bash or ssh into a running container in background mode?</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div><img loading="lazy" decoding="async" class="wp-image-3196 size-full aligncenter" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2016/02/bash-or-ssh-into-a-running-1-1.png" alt="bash-or-ssh-into-a-running-container" width="600" height="400" srcset="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2016/02/bash-or-ssh-into-a-running-1-1.png 600w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2016/02/bash-or-ssh-into-a-running-1-1-300x200.png 300w" sizes="auto, (max-width: 600px) 100vw, 600px" /></div>
<div><strong>How to get bash or ssh into a running container in background mode?</strong></div>
<div></div>
<div><strong>Step 1: First of all, try to find your active container by running</strong></div>
<div># docker ps</div>
<div>or</div>
<div># docker ps -a</div>
<div></div>
<div><strong>Step 2: If the container is not running,</strong></div>
<div># docker start your_id</div>
<div></div>
<div><strong>Step 3: If we use attach we can use only one instance of shell.</strong></div>
<div># sudo docker attach 665b4a1e17b6 #by ID</div>
<div>or</div>
<div># sudo docker attach loving_heisenberg #by Name</div>
<div></div>
<div>If we want open new terminal with new instance of container&#8217;s shell, we just need run the following:</div>
<div># sudo docker exec -i -t 2e56ad1705b1 /bin/bash #by ID</div>
<div>or</div>
<div># sudo docker exec -i -t loving_heisenberg /bin/bash #by Name</div>
<div># root@665b4a1e17b6:/#</div>
<div></div>
<div><strong>Step 4: To exit bash without leaving bash running in a rogue process</strong></div>
<div># exit</div>
<div></div>
<div><strong>Notes:</strong></div>
<div>A reminder for boot2docker users: remove sudo</div>
<div>If you are using docker in Linux, you will have to use sudo along with docker commands.</div>
<div>You should try not to run commands as sudo, rather add your user to the docker group and just run normally.</div>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/how-to-get-bash-or-ssh-into-a-running-container-in-background-mode/">How to get bash or ssh into a running container in background mode?</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/how-to-get-bash-or-ssh-into-a-running-container-in-background-mode/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
