| <!-- |
| Licensed to the Apache Software Foundation (ASF) under one |
| or more contributor license agreements. See the NOTICE file |
| distributed with this work for additional information |
| regarding copyright ownership. The ASF licenses this file |
| to you under the Apache License, Version 2.0 (the |
| "License"); you may not use this file except in compliance |
| with the License. You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, |
| software distributed under the License is distributed on an |
| "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| KIND, either express or implied. See the License for the |
| specific language governing permissions and limitations |
| under the License. |
| --> |
| |
| <html lang="en"> |
| <head> |
| <meta charset="UTF-8" /> |
| <meta |
| http-equiv="Content-Security-Policy" |
| content="default-src 'none'; style-src {{cspSource}} 'self' 'unsafe-inline'; img-src {{cspSource}}; script-src {{cspSource}}" |
| /> |
| <meta name="viewport" content="width=device-width, initial-scale=1.0" /> |
| <link rel="stylesheet" href="{{cssUri}}" /> |
| <title>Run Container Image in Compute Instance</title> |
| </head> |
| |
| <body> |
| <div class="guidePageContainer"> |
| <div class="guidePage" role="document"> |
| |
| <div class="title"> |
| <h1>Run Container Image on a Compute Instance</h1> |
| </div> |
| |
| <div class="content"> |
| <div class="subtitle"> |
| <h2>Before you begin:</h2> |
| </div> |
| |
| <div class="list-steps"> |
| <ul> |
| <li> |
| Locate the path to the private ssh key file for this compute instance. The private ssh key file will have either: |
| <ul class="inner-list"> |
| <li>Been generated when you launched the instance and you will have been prompted to download it</li> |
| <li>Or, you uploaded a public ssh key, from a public/private key paid, and you will now need the private key that matches |
| that public key</li> |
| </ul> |
| </li> |
| </ul> |
| </div> |
| |
| <div class="subtitle"> |
| <h2>Connecting to Your Linux Instance Using SSH</h2> |
| </div> |
| |
| <p>Add the path to the instance of the private ssh key to your ssh config file: |
| <span class="path">{{sshConfigLocation}}</span>:</p> |
| |
| <p>Paste the following entry into your <a id="openSSHConfig" href="#" title="Open SSH Config File">ssh config</a>, with the paths to the private ssh key included:</p> |
| <div class="codeContainer"> |
| <pre>Host {{publicIp}} instance<br /> IdentityFile {{dummyKeyPathLocation}}</pre> |
| </div> |
| |
| <p>In order to avoid <span class="propertyValue">Permissions ... are too open</span> error, key file permissions needs to be changed. Run: |
| <div class="codeContainer"> |
| <pre>chmod 400 {{dummyKeyPathLocation}}</pre> |
| </div> |
| <p>This command sets the permissions so that only the owner of the file can read it.</p> |
| |
| <div class="subtitle"> |
| <h2>Setting up Virtual Firewall</h2> |
| </div> |
| <p> |
| This is done so that container can be reached from the internet. |
| </p> |
| |
| <div class="subtitle"> |
| <h3>Add a Security List Ingress Rule to Your Compute Instance</h3> |
| </div> |
| |
| <div class="list-steps"> |
| <ul> |
| <li>Open |
| <a href="https://cloud.oracle.com/compute/instances" title="Compute instances">Compute instances</a>.</li> |
| <li>Open the details for your compute instance by clicking on name of the instance.</li> |
| <li>Within the Compute instance detail, under the |
| <b>Primary VNIC</b> |
| section click on |
| <b>Subnet name</b>.</li> |
| <li>Click on <b>Security Lists</b> section.</li> |
| <li>Click on the security list.</li> |
| <li>Click, |
| <b>Add Ingress Rule</b>. |
| <ul class="inner-list"> |
| <li>Add an ingress rule with the following properties: |
| <ul> |
| <li>Source Type: <span class="propertyValue">CIDR</span></li> |
| <li>Source CIDR: <span class="propertyValue">0.0.0.0/0</span></li> |
| <li>IP Protocol: <span class="propertyValue">TCP</span></li> |
| <li>Destination Port Range: <span class="propertyValue">8080</span></li> |
| </ul> |
| </li> |
| <li>Click on <b>Add Ingress Rule</b></li> |
| </ul> |
| </li> |
| </ul> |
| </div> |
| |
| <div class="subtitle"> |
| <h2>Docker installation</h3> |
| </div> |
| |
| <p>At this point SSH connection is established. Docker needs to be installed in order to successfully run Container Images</p> |
| |
| <div class="subtitle"> |
| <h3>Run next commands:</h3> |
| </div> |
| |
| <div class="list-steps"> |
| <ul> |
| <li>Install Docker with: <span class="propertyValue">sudo dnf install -y podman-docker</span></li> |
| <li>Verify Docker installation with: <span class="propertyValue">docker --version</span></li> |
| {{#if isRepositoryPrivate}} |
| <li>Authenticate Docker client with a Docker registry: <span class="propertyValue">docker login {{ registryUrl }}</span></li> |
| <li>When prompted for <b>Username</b> enter the name of the user you will be using in the format: <span class="propertyValue"><tenancy-namespace>/<username></span></li> |
| <li>When prompted for <b>Password</b> enter the user's Oracle Cloud Infrastructure auth token</li> |
| {{/if}} |
| </ul> |
| </div> |
| |
| <div class="subtitle"> |
| <p>References: |
| <a href="https://docs.oracle.com/en-us/iaas/Content/Compute/Tasks/accessinginstance.htm" title="Connecting to an Compute Instance">Connecting to an Compute Instance</a>, |
| <a href="https://docs.oracle.com/en-us/iaas/Content/Network/Concepts/securitylists.htm" title="Security lists">Security lists</a>, |
| <a href="https://docs.oracle.com/en-us/iaas/Content/Functions/Tasks/functionslogintoocir.htm" title="Logging in to Oracle Cloud Infrastructure Registry">Logging in to Oracle Cloud Infrastructure Registry</a> |
| </p> |
| </div> |
| |
| </div> |
| <div class="footer"> |
| <p class="guideControl"> |
| <input type="checkbox" id="showGuide" class="checkbox" {{showGuide}} /> |
| <label for="showGuide" class="checkboxLabel">Hide this page when running this container image in the future.</label> |
| </p> |
| </div> |
| |
| <script src="{{javascriptUri}}"></script> |
| </div> |
| </div> |
| </body> |
| </html> |