swirl
Home Software Blog Wallpapers Webtools
Create a container image to allow SSH access
Saturday 12, February 2022   |   Post link

Overview

This blog post explains how to create a container image having an SSH server and how to SSH into it once its created.

Preparing the container

We will be using the interactive way to creating a container image. Before we start we need to select the base image on which OpenSSH Server will be installed. For this post, I am using ubuntu xenial image. All the above commands must be typed in manually.

$ docker pull ubuntu:xenial
$ docker run -it ubuntu:xenial
$ apt-get update
$ apt-get -y install openssh-server
$ useradd testuser
$ passwd testuser
$ service ssh restart
$ mkdir /home/testuser

Persisting the changes in an image

Open another terminal window and type in the following commands. The first thing to do is to find the container id:

$ docker ps

Now create the image using the command:
sudo docker commit [CONTAINER_ID] [new_image_name]
Example:

$ docker commit 5319c0b73e42 siddharthbarman/ubuntu-xenial-with-ssh:v1

Run a container off the newly created image

We'll now run a new container using the freshly created image. After this we'll SSH into it.

$ docker run -it siddharthbarman/ubuntu-xenial-with-ssh:v1
$ service ssh start #start the ssh server  	
$ hostname -I # will print the IP address of the container

If you have a container which is running non-interactively, you can 'bash' into it using the technique below and then start the SSH server and find out the container's IP:

$ docker exec -it <container-id> bash

Once we have the IP address, we can easily ssh into it:

$ ssh testuser@<container-ip-address>



Comments

Posts By Year

2022 (9)
2021 (5)
2020 (12)
2019 (6)
2018 (8)
2017 (11)
2016 (6)
2015 (17)
2014 (2)
2013 (4)
2012 (2)

Posts By Category

.NET (4)
.NET Core (2)
ASP.NET MVC (4)
AWS (4)
AWS API Gateway (1)
Android (1)
Apache Camel (1)
Architecture (1)
Azure (2)
Book review (3)
Business (1)
C# (3)
C++ (2)
CloudHSM (1)
Containers (4)
Corporate culture (1)
Database (3)
Database migration (1)
Desktop (1)
Docker (1)
DotNet (2)
DotNet Core (2)
Entity Framework (3)
Git (2)
IIS (1)
JDBC (1)
Java (8)
Kubernetes (1)
Lambda (1)
Learning (1)
Life (7)
Linux (1)
Lucene (1)
Multi-threading (1)
Music (1)
OData (1)
Office (1)
PHP (1)
Photography (1)
PowerShell (2)
Programming (26)
Rants (5)
SQL (2)
SQL Server (1)
Security (2)
Software Engineering (1)
Software development (1)
Solr (1)
Sql Server (2)
Storage (1)
T-SQL (1)
TDD (1)
TSQL (5)
Tablet (1)
Technology (1)
Test Driven (1)
Unit Testing (1)
Unit Tests (1)
Utilities (3)
VC++ (1)
VMWare (1)
VSCode (1)
Visual Studio (2)
Wallpapers (1)
Web API (2)
Win32 (1)
Windows (9)
XML (2)

Posts By Tags

.NET(6) API Gateway(1) ASP.NET(4) AWS(2) Adults(1) Advertising(1) Android(1) Anti-forgery(1) Asynch(1) Authentication(2) Azure(2) Backup(1) Beliefs(1) BlockingQueue(1) Book review(2) Books(1) Busy(1) C#(4) C++(3) CLR(1) CORS(1) CSRF(1) CTE(1) Callbacks(1) Camel(1) Certificates(1) Checkbox(1) CloudHSM(1) Cmdlet(1) Company culture(1) Complexity(1) Consumer(1) Consumerism(1) Containers(3) Core(2) Custom(2) DPI(1) Data-time(1) Database(4) Debugging(1) Delegates(1) Developer(2) Dockers(2) DotNetCore(3) EF 1.0(1) Earphones(1) Elastic Search(1) Encrypted(1) Entity framework(1) Events(1) File copy(1) File history(1) Font(1) Git(2) HierarchyID(1) IIS(1) Installing(1) Intelli J(1) JDBC(1) JSON(1) JUnit(1) JWT(1) Java(2) JavaScript(1) Kubernetes(1) Life(1) LinkedIn(1) Linux(1) Localization(1) Log4J(1) Log4J2(1) Lucene(1) MVC(4) Management(2) Migration history(1) Mobile Apps(1) Modern Life(1) Money(1) Music(1) NGINX(1) NTFS(1) NUnit(2) OData(1) OPENXML(1) Objects(1) Office(1) OpenCover(1) Organization(1) PHP(1) Paths(1) PowerShell(2) Producer(1) Programming(1) Python(2) Quality(1) REDIS(2) REST(1) Runtimes(1) S3-Select(1) SD card(1) SLF4J(1) SQL(2) SQL Code-first Migration(1) SSH(2) Sattelite assemblies(1) School(1) Secrets Manager(1) Self reliance(1) Shell(1) Solr(1) Sony VAIO(1) Spirituality(1) Sql Express(1) System Image(1) TDD(1) TSQL(3) Table variables(1) Tables(1) Tablet(1) Ubuntu(1) Url rewrite(1) VMWare(1) VSCode(1) Validation(2) VeraCode(1) Wallpaper(1) Wallpapers(1) Web Development(4) Windows(2) Windows 10(2) Windows 2016(2) Windows 8.1(1) Work culture(1) XML(1) Yii(1) renew(1)