亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Docker SSH連接docker容器的示例代碼

 更新時(shí)間:2017年12月07日 16:49:22   作者:hua的博客  
這篇文章主要介紹了Docker SSH連接docker容器的示例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

簡(jiǎn)介

什么是Docker

Docker 是一個(gè)開源項(xiàng)目,誕生于 2013 年初,最初是 dotCloud 公司內(nèi)部的一個(gè)業(yè)余項(xiàng)目。它基于 Google 公司推出的 Go 語言實(shí)現(xiàn)。 項(xiàng)目后來加入了 Linux 基金會(huì),遵從了 Apache 2.0 協(xié)議,項(xiàng)目代碼在 GitHub 上進(jìn)行維護(hù)。

Docker 自開源后受到廣泛的關(guān)注和討論,以至于 dotCloud 公司后來都改名為 Docker Inc。Redhat 已經(jīng)在其 RHEL6.5 中集中支持 Docker;Google 也在其 PaaS 產(chǎn)品中廣泛應(yīng)用。

Docker 項(xiàng)目的目標(biāo)是實(shí)現(xiàn)輕量級(jí)的操作系統(tǒng)虛擬化解決方案。 Docker 的基礎(chǔ)是 Linux 容器(LXC)等技術(shù)。

在 LXC 的基礎(chǔ)上 Docker 進(jìn)行了進(jìn)一步的封裝,讓用戶不需要去關(guān)心容器的管理,使得操作更為簡(jiǎn)便。用戶操作 Docker 的容器就像操作一個(gè)快速輕量級(jí)的虛擬機(jī)一樣簡(jiǎn)單。

下面的圖片比較了 Docker 和傳統(tǒng)虛擬化方式的不同之處,可見容器是在操作系統(tǒng)層面上實(shí)現(xiàn)虛擬化,直接復(fù)用本地主機(jī)的操作系統(tǒng),而傳統(tǒng)方式則是在硬件層面實(shí)現(xiàn)。

為什么要用Docker

作為一種新興的虛擬化方式,Docker 跟傳統(tǒng)的虛擬化方式相比具有眾多的優(yōu)勢(shì)。

首先,Docker 容器的啟動(dòng)可以在秒級(jí)實(shí)現(xiàn),這相比傳統(tǒng)的虛擬機(jī)方式要快得多。 其次,Docker 對(duì)系統(tǒng)資源的利用率很高,一臺(tái)主機(jī)上可以同時(shí)運(yùn)行數(shù)千個(gè) Docker 容器。

容器除了運(yùn)行其中應(yīng)用外,基本不消耗額外的系統(tǒng)資源,使得應(yīng)用的性能很高,同時(shí)系統(tǒng)的開銷盡量小。傳統(tǒng)虛擬機(jī)方式運(yùn)行 10 個(gè)不同的應(yīng)用就要起 10 個(gè)虛擬機(jī),而Docker 只需要啟動(dòng) 10 個(gè)隔離的應(yīng)用即可。

具體說來,Docker 在如下幾個(gè)方面具有較大的優(yōu)勢(shì)。

更快速的交付和部署

對(duì)開發(fā)和運(yùn)維(devop)人員來說,最希望的就是一次創(chuàng)建或配置,可以在任意地方正常運(yùn)行。

開發(fā)者可以使用一個(gè)標(biāo)準(zhǔn)的鏡像來構(gòu)建一套開發(fā)容器,開發(fā)完成之后,運(yùn)維人員可以直接使用這個(gè)容器來部署代碼。 Docker 可以快速創(chuàng)建容器,快速迭代應(yīng)用程序,并讓整個(gè)過程全程可見,使團(tuán)隊(duì)中的其他成員更容易理解應(yīng)用程序是如何創(chuàng)建和工作的。 Docker 容器很輕很快!容器的啟動(dòng)時(shí)間是秒級(jí)的,大量地節(jié)約開發(fā)、測(cè)試、部署的時(shí)間。

更高效的虛擬化

Docker 容器的運(yùn)行不需要額外的 hypervisor 支持,它是內(nèi)核級(jí)的虛擬化,因此可以實(shí)現(xiàn)更高的性能和效率。

更輕松的遷移和擴(kuò)展

Docker 容器幾乎可以在任意的平臺(tái)上運(yùn)行,包括物理機(jī)、虛擬機(jī)、公有云、私有云、個(gè)人電腦、服務(wù)器等。 這種兼容性可以讓用戶把一個(gè)應(yīng)用程序從一個(gè)平臺(tái)直接遷移到另外一個(gè)。

更簡(jiǎn)單的管理

使用 Docker,只需要小小的修改,就可以替代以往大量的更新工作。所有的修改都以增量的方式被分發(fā)和更新,從而實(shí)現(xiàn)自動(dòng)化并且高效的管理。

對(duì)比傳統(tǒng)虛擬機(jī)總結(jié)

特性 容器 虛擬機(jī)
啟動(dòng) 秒級(jí) 分鐘即
硬盤使用 一般為MB 一般為GB
性能 接近原生 弱于
系統(tǒng)支持量 單機(jī)支持上千個(gè)容器 一般幾十個(gè)

安裝Docker

本來打算在CentOS6上安裝Docker,最終由于CentOS6上自帶的kernel版本太低導(dǎo)致Docker啟動(dòng)失敗而放棄(kernel升級(jí)太繁瑣)。

下面使用CentOS7安裝Docker,本人采用虛擬機(jī)的方式來安裝,安裝好的虛擬機(jī)必須保證能訪問外網(wǎng)。

CentOS7 系統(tǒng) CentOS-Extras 庫(kù)中已帶 Docker,可以直接安裝:

$ sudo yum install docker

安裝之后啟動(dòng) Docker 服務(wù),并讓它隨系統(tǒng)啟動(dòng)自動(dòng)加載:

$ sudo service docker start
$ sudo chkconfig docker on

獲取鏡像

可以使用 docker pull 命令來從倉(cāng)庫(kù)獲取所需要的鏡像。

下面的例子將從 Docker Hub 倉(cāng)庫(kù)下載一個(gè)Centos6并且安裝了jdk7的鏡像:

$ docker pull tcbenkhard/centos6-jdk7

列出本地鏡像

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

$ docker images

啟動(dòng)容器

啟動(dòng)容器有兩種方式,一種是基于鏡像新建一個(gè)容器并啟動(dòng),另外一個(gè)是將在終止?fàn)顟B(tài)(stopped)的容器重新啟動(dòng)。

因?yàn)?Docker 的容器實(shí)在太輕量級(jí)了,很多時(shí)候用戶都是隨時(shí)刪除和新創(chuàng)建容器。

下面的命令則啟動(dòng)一個(gè) bash 終端,允許用戶進(jìn)行交互。

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

其中,-t 選項(xiàng)讓Docker分配一個(gè)偽終端(pseudo-tty)并綁定到容器的標(biāo)準(zhǔn)輸入上,-i 則讓容器的標(biāo)準(zhǔn)輸入保持打開。

當(dāng)利用 docker run 來創(chuàng)建容器時(shí),Docker 在后臺(tái)運(yùn)行的標(biāo)準(zhǔn)操作包括:

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

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

$ cat /etc/redhat-release

修改root密碼

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

$ passwd
  xxx密碼
  xxx確認(rèn)密碼

安裝Openssh

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

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

修改SSH配置文件以下選項(xiàng),去掉#注釋,將四個(gè)選項(xiàng)啟用:

$ vi /etc/ssh/sshd_config
RSAAuthentication yes #啟用 RSA 認(rèn)證
PubkeyAuthentication yes #啟用公鑰私鑰配對(duì)認(rèn)證方式
AuthorizedKeysFile .ssh/authorized_keys #公鑰文件路徑(和上面生成的文件同)
PermitRootLogin yes #root能使用ssh登錄

重啟ssh服務(wù),并設(shè)置開機(jī)啟動(dòng):

$ service sshd restart
$ chkconfig sshd on

退出容器并保存更改

使用exit命令或者ctrl+C來退出當(dāng)前運(yùn)行的容器:

 [root@ffe81683c404 /]# exit

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

當(dāng)結(jié)束后,我們使用 exit 來退出,現(xiàn)在我們的容器已經(jīng)被我們改變了,使用 docker commit 命令來提交更新后的副本。

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

其中,-m 來指定提交的說明信息,跟我們使用的版本控制工具一樣;-a 可以指定更新的用戶信息;之后是用來創(chuàng)建鏡像的容器的ID;最后指定目標(biāo)鏡像的倉(cāng)庫(kù)名和 tag 信息。創(chuàng)建成功后會(huì)返回這個(gè)鏡像的 ID 信息。

提交后docker中就會(huì)多出一個(gè)centos6-jdk7:ssh的一個(gè)鏡像。

啟動(dòng)新的容器并打通22端口

將新的鏡像啟動(dòng),并將docker服務(wù)器的50001端口映射到容器的22端口上:

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

ssh連接容器:

至此SSH連接docker容器成功完成。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 一文快速入門Docker推薦

    一文快速入門Docker推薦

    這篇文章主要介紹了一文快速入門Docker推薦,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • 詳解利用ELK搭建Docker容器化應(yīng)用日志中心

    詳解利用ELK搭建Docker容器化應(yīng)用日志中心

    這篇文章主要介紹了詳解利用ELK搭建Docker容器化應(yīng)用日志中心,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-04-04
  • 使用Docker構(gòu)建開發(fā)環(huán)境的方法步驟(?Windows和mac)

    使用Docker構(gòu)建開發(fā)環(huán)境的方法步驟(?Windows和mac)

    利用Docker,我們可以做很多事情。所以本文就詳細(xì)介紹了使用Docker構(gòu)建開發(fā)環(huán)境的方法步驟,分為?Windows和mac版本,具有一定的參考價(jià)值,感興趣的可以了解一下
    2021-12-12
  • docker安裝Elasticsearch7.6集群并設(shè)置密碼的方法步驟

    docker安裝Elasticsearch7.6集群并設(shè)置密碼的方法步驟

    本文主要介紹了docker安裝Elasticsearch7.6集群并設(shè)置密碼,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • docker部署mysql8并設(shè)置可遠(yuǎn)程連接

    docker部署mysql8并設(shè)置可遠(yuǎn)程連接

    本文主要介紹了docker部署mysql8并設(shè)置可遠(yuǎn)程連接,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • ubuntu 14.04 64位安裝配置docker教程

    ubuntu 14.04 64位安裝配置docker教程

    這篇文章主要為大家詳細(xì)介紹了ubuntu 14.04 64位安裝配置docker教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-11-11
  • Docker中RocketMQ的安裝與使用詳解

    Docker中RocketMQ的安裝與使用詳解

    這篇文章主要介紹了Docker中RocketMQ的安裝與使用詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • docker-compose 部署 Apollo 自定義環(huán)境的詳細(xì)教程

    docker-compose 部署 Apollo 自定義環(huán)境的詳細(xì)教程

    本篇文章給大家介紹docker-compose 部署 Apollo 自定義環(huán)境的詳細(xì)教程,而其中Config Service提供配置的讀取、推送等功能,服務(wù)對(duì)象是Apollo客戶端,對(duì)docker部署Apollo環(huán)境相關(guān)知識(shí)感興趣的朋友一起看看吧
    2021-06-06
  • 輕量級(jí)對(duì)象存儲(chǔ)服務(wù)minio安裝及瀏覽器使用教程

    輕量級(jí)對(duì)象存儲(chǔ)服務(wù)minio安裝及瀏覽器使用教程

    本次介紹了minio的安裝及瀏覽器中的簡(jiǎn)單使用,對(duì)輕量級(jí)對(duì)象存儲(chǔ)服務(wù)minio安裝及使用教程感興趣的朋友一起看看吧
    2021-10-10
  • Docker下安裝zookeeper(單機(jī)和集群)

    Docker下安裝zookeeper(單機(jī)和集群)

    這篇文章主要介紹了Docker下安裝zookeeper(單機(jī)和集群),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07

最新評(píng)論