中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

SSH如何連接docker容器

發布時間:2022-05-20 15:52:22 來源:億速云 閱讀:318 作者:iii 欄目:大數據

這篇文章主要介紹了SSH如何連接docker容器的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇SSH如何連接docker容器文章都會有所收獲,下面我們一起來看看吧。

簡介

什么是docker

docker 是一個開源項目,誕生于 2013 年初,最初是 dotcloud 公司內部的一個業余項目。它基于 google 公司推出的 go 語言實現。 項目后來加入了 linux 基金會,遵從了 apache 2.0 協議,項目代碼在 github 上進行維護。

docker 自開源后受到廣泛的關注和討論,以至于 dotcloud 公司后來都改名為 docker inc。redhat 已經在其 rhel6.5 中集中支持 docker;google 也在其 paas 產品中廣泛應用。

docker 項目的目標是實現輕量級的操作系統虛擬化解決方案。 docker 的基礎是 linux 容器(lxc)等技術。

在 lxc 的基礎上 docker 進行了進一步的封裝,讓用戶不需要去關心容器的管理,使得操作更為簡便。用戶操作 docker 的容器就像操作一個快速輕量級的虛擬機一樣簡單。

下面的圖片比較了 docker 和傳統虛擬化方式的不同之處,可見容器是在操作系統層面上實現虛擬化,直接復用本地主機的操作系統,而傳統方式則是在硬件層面實現。

SSH如何連接docker容器

SSH如何連接docker容器

為什么要用docker

作為一種新興的虛擬化方式,docker 跟傳統的虛擬化方式相比具有眾多的優勢。

首先,docker 容器的啟動可以在秒級實現,這相比傳統的虛擬機方式要快得多。 其次,docker 對系統資源的利用率很高,一臺主機上可以同時運行數千個 docker 容器。

容器除了運行其中應用外,基本不消耗額外的系統資源,使得應用的性能很高,同時系統的開銷盡量小。傳統虛擬機方式運行 10 個不同的應用就要起 10 個虛擬機,而docker 只需要啟動 10 個隔離的應用即可。

具體說來,docker 在如下幾個方面具有較大的優勢。

更快速的交付和部署

對開發和運維(devop)人員來說,最希望的就是一次創建或配置,可以在任意地方正常運行。

開發者可以使用一個標準的鏡像來構建一套開發容器,開發完成之后,運維人員可以直接使用這個容器來部署代碼。 docker 可以快速創建容器,快速迭代應用程序,并讓整個過程全程可見,使團隊中的其他成員更容易理解應用程序是如何創建和工作的。 docker 容器很輕很快!容器的啟動時間是秒級的,大量地節約開發、測試、部署的時間。

更高效的虛擬化

docker 容器的運行不需要額外的 hypervisor 支持,它是內核級的虛擬化,因此可以實現更高的性能和效率。

更輕松的遷移和擴展

docker 容器幾乎可以在任意的平臺上運行,包括物理機、虛擬機、公有云、私有云、個人電腦、服務器等。 這種兼容性可以讓用戶把一個應用程序從一個平臺直接遷移到另外一個。

更簡單的管理

使用 docker,只需要小小的修改,就可以替代以往大量的更新工作。所有的修改都以增量的方式被分發和更新,從而實現自動化并且高效的管理。

對比傳統虛擬機總結


特性容器虛擬機
啟動秒級分鐘即
硬盤使用一般為mb一般為gb
性能接近原生弱于
系統支持量單機支持上千個容器一般幾十個

安裝docker

本來打算在centos6上安裝docker,最終由于centos6上自帶的kernel版本太低導致docker啟動失敗而放棄(kernel升級太繁瑣)。

SSH如何連接docker容器

下面使用centos7安裝docker,本人采用虛擬機的方式來安裝,安裝好的虛擬機必須保證能訪問外網。

centos7 系統 centos-extras 庫中已帶 docker,可以直接安裝:

$ sudo yum install docker

安裝之后啟動 docker 服務,并讓它隨系統啟動自動加載:

$ sudo service docker start
$ sudo chkconfig docker on

獲取鏡像

可以使用 docker pull 命令來從倉庫獲取所需要的鏡像。

下面的例子將從 docker hub 倉庫下載一個centos6并且安裝了jdk7的鏡像:

$ docker pull tcbenkhard/centos6-jdk7

SSH如何連接docker容器

列出本地鏡像

使用 docker images 顯示本地已有的鏡像。

$ docker images

SSH如何連接docker容器

啟動容器

啟動容器有兩種方式,一種是基于鏡像新建一個容器并啟動,另外一個是將在終止狀態(stopped)的容器重新啟動。

因為 docker 的容器實在太輕量級了,很多時候用戶都是隨時刪除和新創建容器。

下面的命令則啟動一個 bash 終端,允許用戶進行交互。

$ docker run -t -i docker.io/tcbenkhard/centos6-jdk7 /bin/bash
[root@ffe81683c404 /]#

SSH如何連接docker容器

其中,-t 選項讓docker分配一個偽終端(pseudo-tty)并綁定到容器的標準輸入上,-i 則讓容器的標準輸入保持打開。

當利用 docker run 來創建容器時,docker 在后臺運行的標準操作包括:

(1)檢查本地是否存在指定的鏡像,不存在就從公有倉庫下載
(2)利用鏡像創建并啟動一個容器
(3)分配一個文件系統,并在只讀的鏡像層外面掛載一層可讀寫層
(4)從宿主主機配置的網橋接口中橋接一個虛擬接口到容器中去
(5)從地址池配置一個 ip 地址給容器
(6)執行用戶指定的應用程序
(7)執行完畢后容器被終止

可以使用下面命令來查看centos版本信息:

$ cat /etc/redhat-release

修改root密碼

使用passwd密碼來修改密碼(如提示沒有這個命令行使用yum install passwd安裝):

$ passwd
  xxx密碼
  xxx確認密碼

安裝openssh

使用下面命令安裝ssh server/ssh client:

$ sudo yum -y install openssh-server
$ sudo yum -y install openssh-clients

修改ssh配置文件以下選項,去掉#注釋,將四個選項啟用:

$ vi /etc/ssh/sshd_config
rsaauthentication yes #啟用 rsa 認證
pubkeyauthentication yes #啟用公鑰私鑰配對認證方式
authorizedkeysfile .ssh/authorized_keys #公鑰文件路徑(和上面生成的文件同)
permitrootlogin yes #root能使用ssh登錄

SSH如何連接docker容器

重啟ssh服務,并設置開機啟動:

$ service sshd restart
$ chkconfig sshd on

退出容器并保存更改

使用exit命令或者ctrl+c來退出當前運行的容器:

 [root@ffe81683c404 /]# exit

注意:上面ffe81683c404是容器的id,退出后用于保存的唯一id。

當結束后,我們使用 exit 來退出,現在我們的容器已經被我們改變了,使用 docker commit 命令來提交更新后的副本。

$ sudo docker commit -m 'install openssh' -a 'docker newbee' ffe81683c404 centos6-jdk7:ssh
4f177bd27a9ff0f6dc2a830403925b5360bfe0b93d476f7fc3231110e7f71b1c

其中,-m 來指定提交的說明信息,跟我們使用的版本控制工具一樣;-a 可以指定更新的用戶信息;之后是用來創建鏡像的容器的id;最后指定目標鏡像的倉庫名和 tag 信息。創建成功后會返回這個鏡像的 id 信息。

提交后docker中就會多出一個centos6-jdk7:ssh的一個鏡像。

SSH如何連接docker容器

啟動新的容器并打通22端口

將新的鏡像啟動,并將docker服務器的50001端口映射到容器的22端口上:

$ docker run -d -p 50001:22 centos6-jdk7:ssh /usr/sbin/sshd -d

ssh連接容器:

SSH如何連接docker容器

關于“SSH如何連接docker容器”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“SSH如何連接docker容器”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

固原市| 雷波县| 泰来县| 大连市| 明星| 徐闻县| 准格尔旗| 中牟县| 石柱| 亚东县| 宁城县| 武定县| 马鞍山市| 兰州市| 天门市| 马龙县| 榆林市| 拜城县| 华亭县| 南充市| 博罗县| 阜平县| 耿马| 玉林市| 化德县| 珠海市| 南召县| 罗山县| 安国市| 合江县| 大丰市| 博湖县| 句容市| 凭祥市| 舟曲县| 罗平县| 阿拉尔市| 福清市| 长岛县| 芦溪县| 濮阳县|