X
Collapse
-
How to SSH Into Docker Container
Administrators commonly use SSH to access and operate remote servers and devices, including a Docker container. When you connect to any device using SSH, you can run commands, access its files, and perform multiple other tasks. You can also use the Docker container as a hypervisor image that can run applications. For example, a software developer can create a Docker container image to package the software.
Hence, a Docker container image package software with all the dependencies and libraries required. You can remotely develop an application or run a virtual Linux machine by accessing a Docker container with SSH. So, in this guide, we will explain how to create SSH in a Docker container.
How to SSH Into Docker Container
Before we start, you must go here and create a Docker container and configure it with password authentication. So run the following command to create a Docker file:
touch dockerfile
Now, run the nano editor and enter the following details to set the Docker container:
FROM ubuntu:22.04
RUN apt-get update && apt-get install -y openssh-server
RUN mkdir /var/run/sshd
RUN echo 'root:12345' | chpasswd
RUN sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config
EXPOSE 22
CMD ["/usr/sbin/sshd", "-D"]
ENTRYPOINT service ssh start && bash
In the above details, please change “root” with the username and 12345 with the password. After saving the file run the following command to create the Docker image your container:
docker build -t my_ssh .
You now have the Docker container ready, so please start it through the following command:
docker run -d --name container_name container_image
Please replace container_name and container_image with the respective name and image of your Docker. Next, you will require the IP address of this Docker container to be used as an argument in the SSH command. Get it by running the below docker inspect command:
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' container_name
In the above command, you need not change anything other than the container_name, which must be your Docker’s name. When running, this will display the IP address of your Docker container, which you must copy and use in the SSH command.
You must install and enable the SSH utility in this Docker container to connect to it via SSH. For instance, in the case of an Ubuntu-based Docker container, you can do it by running:
sudo apt update
sudo apt install openssh-server -y
sudo systemctl enable openssh-server
Finally, generate an SSH key with ssh-keygen (if you do not already have one), copy this key’s path, and use the ssh command to SSH into Docker.
sudo ssh -i /path/to/SSH_key remote_user@docker_IP
Here, the ‘-i’ option lets you specify the path of your key file. You must replace /path/to/SSH_key with the path of the generated key, remote_user with your username at Docker, and docker_IP with the IP address you fetched in the earlier steps.
The above command will successfully establish the SSH connection to your specified Docker container when run. You can now interact with its system using the shell.
A Quick Overview
Docker containers are an excellent asset for teams developing various applications. This tutorial consists of a step-by-step demonstration of SSH in a Docker container. You can use the above method to become skilled enough to operate and interact with Docker remotely. Moreover, we recommend changing the SSH key’s file permissions to keep Docker safe from any unintended third-party interference.
More...Tags: None
Posting comments is disabled.
Categories
Collapse
Article Tags
Collapse
There are no tags yet.
Latest Articles
Collapse
-
by Kasimba
by George Whittaker
In the world of Linux system administration, managing disk usage effectively is crucial to ensuring a stable and efficient environment. One powerful tool for this purpose is the implementation of disk quotas, which helps administrators control the amount of disk space and number of inodes that individual users or groups can use. This article delves into the intricacies of Linux disk quotas, explaining...-
Channel: Articles
05-15-2024, 03:32 PM -
-
by KasimbaIn this article, I will show you how to create a Fedora 40 virtual machine on Proxmox VE.
This article is the foundation of the Proxmox VE Fedora 40 virtual machine GPU passthrough guide. Once you have a Fedora 40 virtual machine set up, you can passthrough a GPU (i.e. NVIDIA GPU) to the Fedora 40 Proxmox VE virtual machine and do amazing things on the virtual machine.
Table of Contents
...-
Channel: Articles
05-14-2024, 09:14 PM -
-
by KasimbaIf you passthrough an NVIDIA GPU to a Fedora 40 Proxmox VE virtual machine, you get many benefits, such as:
- Stream the virtual machine’s display directly on the monitor connected to the NVIDIA GPU.
- Add a USB keyboard and a mouse to the virtual machine and use it like a real desktop computer.
- Get near-native 3D performance on the virtual machine.
In this article, I will show you how to passthrough an NVIDIA GPU to a Fedora 40 Proxmox VE virtual machine and use the virtual machine just...-
Channel: Articles
05-14-2024, 09:14 PM -
by KasimbaSAVE UP TO 50% TODAY *Offer ends May 21, 2024 Learn More at Linux Foundation Training
The post Further Your Education with Courses & Certifications appeared first on Linux.com.
More...-
Channel: Articles
05-14-2024, 12:25 PM -
-
by KasimbaNautilus file manager can share directories/folders of your Ubuntu 24.04 LTS system that you can access from Windows, MacOS, and other Linux devices.
You may not find the file-sharing option in the context menu of the Nautilus file manager in a new Ubuntu 24.04 LTS installation. That’s because the Nautilus file-sharing option is not enabled by default.
In this article, I will show you how to enable the Nautilus Samba/CIFS file-sharing option...-
Channel: Articles
05-13-2024, 03:46 AM -
-
by Kasimba
by George Whittaker
Introduction
Linux, the powerhouse behind countless servers and desktops worldwide, relies heavily on an initialization (init) system to bootstrap user space and manage system processes after booting. Traditionally, this role was fulfilled by SysVinit, the standard init system derived from the UNIX System V operating system. However, the evolving complexity and needs of modern computing...-
Channel: Articles
05-10-2024, 08:22 PM -