在Docker里面安裝Ubuntu,并且使用ssh進行連接

創建Ubuntu鏡像

1,拉取Ubuntu系統的鏡像

docker pull ubuntu

2、查看拉取是否成功

docker images

3,運行容器?

docker run --name 新建的容器的名字 -ti -v /AAA:/BBB -d -p 3316:22 ubuntu(這個是鏡像的名字)
  • 宿主機根目錄中的AAA文件夾就映射到了容器中去了,兩者之間能夠共享
  • ?–name 指定生成的容器的名稱?
  • -i: 以交互模式運行容器,保證容器中STDIN是開啟的。通常與 -t 同時使用;?
  • -t: 為容器重新分配一個偽tty終端,通常與 -i 同時使用;?
  • -d: 后臺運行容器,并返回容器ID;?
  • -p:可以指定要映射的IP和端口,但是在一個指定端口上只可以綁定一個容器。支持的格式有 hostPort:containerPort、ip:hostPort:containerPort、 ip::containerPort。?
  • ubuntu 則是鏡像名稱,鏡像ID也可以的。

4,查看容器是否運行成功

  • docker ps -a 查看所有的容器,包含啟動和掛起的容器

注意事項

  • 這是一個極度精簡的系統,連最基本的wget命令都沒有;所以先要apt-get update升級系統和安裝apt-get install wget命令

  • 正確退出系統方式:先按,ctrl+p;再按,ctrl+q。絕對不能使用exit或者ctrl+d來退出,這樣整個系統就退出了。具體到MAC電腦應該使用control代替ctrl鍵

  • 退出后 再進入ubuntu
    1、首先用docker ps -a 查找到該CONTAINER ID對應編號(比如:0a3309a3b29e)
    2、進入該系統,使用命令:docker attach 0a3309a3b29e

安裝SSH服務

1,進入容器終端

?

docker exec -t -i 新建容器的名字 /bin/bash
  • 或者參見上文的注意事項:退出后,如何進入容器終端

2,執行更新操作

  • apt-get update 進行更新操作

3、安裝ssh-client、ssh-server

apt-get install openssh-client
apt-get install openssh-server
  • 等待,輸入Y就可以完成完成安裝操作

4,安裝完成之后,就可以啟動服務

/etc/init.d/ssh start

5,查看是否啟動成功

ps -e|grep ssh

6,編輯sshd_config文件

  • 需要先安裝vim編輯器 apt-get install vim
  • 編輯sshd_config文件,添加一行 PermitRootLogin yes? ,使用Esc + :輸入WQ保存修改,退出文件編輯界面

7,重啟SSH服務

  • service ssh restart?

8,設置SSH的密碼

  • passwd root,這個過程需要輸入兩遍

9,查看容器的IP地址

  • 先安裝net-tools的安裝包 apt-get install net-tools
  • 查看ip地址 ifconfig

10,保存修改的鏡像

  • docker commit?[容器ID/容器名] ?[REPOSITORY:TAG]

使用Shell工具進行連接

  • 在本機連接可以用localhost:3316連接也可以用本機IP:3316連接

?

常用命令的補充

查看ubuntu版本

  • cat /etc/issue

ssh相關命令

  • service ssh start 啟動
  • service ssh stop 停止
  • service ssh restart 重啟

參考鏈接

  • ?docker安裝Ubuntu以及ssh連接
  • Docker容器中運行Ubuntu系統
  • Docker端口映射
  • Docker 給運行中的容器設置端口映射的方法
  • 進入Docker的四種方式

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/447013.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/447013.shtml
英文地址,請注明出處:http://en.pswp.cn/news/447013.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Android設計模式之——命令模式

一、介紹 命令模式(Command Pattern),是行為型設計模式之一。命令模式相對于其他的設計模式來說并沒有那么多的條條框框,其實它不是一個很”規范“的模式,不過,就是基于這一點,命令模式相對于其…

C++ 序列化和反序列化學習

定義 程序員在編寫應用程序的時候往往需要將程序的某些數據存儲在內存中,然后將其寫入某個文件或是將它傳輸到網絡中的另一臺計算機上以實現通訊。這些過程將會涉及到程序數據轉化成能被存儲并傳輸的格式,因此被稱為“序列化”(Serializatio…

Android設計模式之——觀察者模式

一、介紹 觀察者模式是一個使用率非常高的模式,它最常用的地方是GUI系統、訂閱——發布系統。因為這個模式的一個重要作用就是解耦,將被觀察者和觀察者解耦,使得它們之間的依賴性更小,甚至做到毫無依賴。以GUI系統來說&#xff0…

Android設計模式之——備忘錄模式

一、介紹 備忘錄模式是一種行為模式,該模式用于保存對象當前狀態,并且在之后可以再次恢復到此狀態,這有點像我們平時說的”后悔藥“。備忘錄模式實現的方式需要保證被保存的對象狀態不能被對象從外部訪問,目的是為了保護好被保存…

c++ memory 頭文件詳細介紹

類 指針特征 pointer_traits (C11) 提供關于指針式類型的信息 (類模板) 垃圾收集器支持 pointer_safety (C11) 列出指針安全模式 (枚舉) 分配器 allocator 默認的分配器 (類模板) allocator_traits (C11) 提供關于分配器類型的信息 (類模板) allocator_arg_t (C11) 標簽類型…

C++ using的三種使用策略以及具體的用法

Using的使用方法 1,命名空間的使用 為了防止代碼沖突,都會使用到命名空間。假設這樣一種情況,當一個班上有兩個名叫 Zara 的學生時,為了明確區分他們,我們在使用名字之外,不得不使用一些額外的信息&#…

Android設計模式之——迭代器模式

一、介紹 迭代器模式(Iterator Pattern)又稱為游標(Cursor)模式,是行為型設計模式之一。迭代器模式算是一個比較古老的設計模式,其源于對容器的訪問,比如Java中的List、Map、數組等&#xff0c…

Android設計模式之——模板方法模式

一、介紹 在面向對象開發過程中,通常會遇到這樣的一個問題,我們知道一個算法所需的關鍵步驟,并確定了這些步驟的執行順序,但是,某些步驟的具體實現是未知的,或者說某些步驟的實現是會隨著環境的變化而改變…

Android設計模式之——訪問者模式

一、介紹 訪問者模式是一種將數據操作與數據結構分離的設計模式,它是《設計模式》中23種設計模式中最復雜的一個,但它的使用頻率并不高,正如《設計模式》的作者GOF對訪問者模式的描述:大多數情況下,你不需要使用訪問者…

C++類模板template <class T>簡單使用方法

一個簡單的例子 兩個數比大小 如果兩個數都是int類型 class Compare_int { public :Compare(int a,int b){xa;yb;}int max( ){return (x>y)?x:y;}int min( ){return (x<y)?x:y;} private :int x,y; }; 如果兩個數是float類型 class Compare_float { public :Compare(…

Android設計模式之——中介者模式

一、介紹 中介者模式&#xff08;Mediator Pattern&#xff09;也稱為調解者模式或調停者模式&#xff0c;Mediator本身就有調停者和調解者的意思。 在日常生活中調停者或調解者這個角色我們見得比較多的是“和事老”&#xff0c;也就是說調解兩個有爭端的人的角色&#xff0…

C++智能指針中unique_ptr部分內容的講解

參考鏈接 std::unique_ptr 介紹 定義位于頭文件<memory>std::unique_ptr 是通過指針占有并管理另一對象&#xff0c;并在 unique_ptr 離開作用域時釋放該對象的智能指針。 在下列兩者之一發生時用關聯的刪除器釋放對象&#xff1a;1&#xff0c;銷毀了管理的 unique_pt…

Java基礎——Java多線程中sleep()、wait()和notify()

一、sleep()sleep()方法源碼&#xff1a;/** * Causes the currently executing thread to sleep (temporarily cease * execution) for the specified number of milliseconds, subject to * the precision and accuracy of system timers and schedulers. The thread * does …

Key_handle的學習

代碼 一切盡在不言中 #pragma once#include "common/common.h" #include "sdf/sdf.h"#include <memory>namespace sdf {namespace algorithm {class KeyHandle {public:using erased_internal_data_t char; //使用erased_internal_data_t等效于ch…

Java基礎——虛擬機結構

一、Java平臺結構圖二、JVM、JRE和JDK關系JVM&#xff1a;Java Virtual Machine&#xff08;Java虛擬機&#xff09;&#xff0c;負責執行符合規范的Class文件 JRE&#xff1a; Java Runtime Environment &#xff08;java運行環境&#xff09;&#xff0c;包含JVM和類庫 JDK&a…

解決 SSH Connection closed by foreign host 問題

用 Xshell 連接服務器總是報錯 : Connection closed by foreign host.Disconnected from remote host... 原因可能是 SSH 服務器沒設置保活時間間隔 , 具體設置如下 : 操作 # vim /etc/ssh/sshd_config 添加兩行 , 或去掉注釋 : ClientAliveInterval 60ClientAliveCountMax…

Java基礎——synchronized

synchronized重要&#xff01;重要&#xff01;重要&#xff01;重要的事情說三遍&#xff0c;一定要記下來哦。 Java語言的關鍵字&#xff0c;當它用來修飾一個方法或者一個代碼塊的時候&#xff0c;能夠保證在同一時刻最多只有一個線程執行該段代碼。一、當兩個并發線程訪問同…

C++:MAC安裝Boost庫文件并且使用CLion開發

boost的filestem庫 C在17版本的標準庫中引入了一個filesystem庫&#xff0c;用來處理文件路徑&#xff0c;以及文件訪問。很多編譯器對filesystem庫的支持還不是很好。為了解決這個問題&#xff0c;可以臨時使用boost::filesystem來替代。其實C17標準中的filesystem庫就是從bo…

Java基礎——Java異常處理機制

一、引言 try…catch…finally恐怕是大家再熟悉不過的語句了&#xff0c;而且感覺用起來也是很簡單&#xff0c;邏輯上似乎也是很容易理解。不過&#xff0c;我親自體驗的“教訓”告訴我&#xff0c;這個東西可不是想象中的那么簡單、聽話。不信&#xff1f;那你看看下面的代碼…

clion在使用sqlite3的時候,顯示Undefined symbols for architecture x86_64錯誤的解決辦法

顯示Undefined symbols for architecture x86_64錯誤的原因 1、缺少靜態庫 環境&#xff1a;在模擬器上報錯但在真機上能運行成功&#xff0c;而且報的錯誤來自于第三方庫。原因&#xff1a;architecture x86_64 是指模擬器的架構&#xff0c;意思就是 Crypto 變量在模擬器架…