最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

簡(jiǎn)介

什么是Docker

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

Docker 自開(kāi)源后受到廣泛的關(guān)注和討論,以至于 dotCloud 公司后來(lái)都改名為 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)一步的封裝,讓用戶(hù)不需要去關(guān)心容器的管理,使得操作更為簡(jiǎn)便。用戶(hù)操作 Docker 的容器就像操作一個(gè)快速輕量級(jí)的虛擬機(jī)一樣簡(jiǎn)單。

下面的圖片比較了 Docker 和傳統(tǒng)虛擬化方式的不同之處,可見(jiàn)容器是在操作系統(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)的開(kāi)銷(xiāo)盡量小。傳統(tǒng)虛擬機(jī)方式運(yùn)行 10 個(gè)不同的應(yīng)用就要起 10 個(gè)虛擬機(jī),而Docker 只需要啟動(dòng) 10 個(gè)隔離的應(yīng)用即可。

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

更快速的交付和部署

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

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

更高效的虛擬化

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

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

Docker 容器幾乎可以在任意的平臺(tái)上運(yùn)行,包括物理機(jī)、虛擬機(jī)、公有云、私有云、個(gè)人電腦、服務(wù)器等。 這種兼容性可以讓用戶(hù)把一個(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í) 分鐘即
硬盤(pán)使用 一般為MB 一般為GB
性能 接近原生 弱于
系統(tǒng)支持量 單機(jī)支持上千個(gè)容器 一般幾十個(gè)

安裝Docker

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

下面使用CentOS7安裝Docker,本人采用虛擬機(jī)的方式來(lái)安裝,安裝好的虛擬機(jī)必須保證能訪(fǎng)問(wèn)外網(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 命令來(lái)從倉(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í)候用戶(hù)都是隨時(shí)刪除和新創(chuàng)建容器。

下面的命令則啟動(dòng)一個(gè) bash 終端,允許用戶(hù)進(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)輸入保持打開(kāi)。

當(dāng)利用 docker run 來(lái)創(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),并在只讀的鏡像層外面掛載一層可讀寫(xiě)層
(4)從宿主主機(jī)配置的網(wǎng)橋接口中橋接一個(gè)虛擬接口到容器中去
(5)從地址池配置一個(gè) ip 地址給容器
(6)執(zhí)行用戶(hù)指定的應(yīng)用程序
(7)執(zhí)行完畢后容器被終止

可以使用下面命令來(lái)查看CentOS版本信息:

$ cat /etc/redhat-release

修改root密碼

使用passwd密碼來(lái)修改密碼(如提示沒(méi)有這個(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),去掉#注釋?zhuān)瑢⑺膫€(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è)置開(kāi)機(jī)啟動(dòng):

$ service sshd restart
$ chkconfig sshd on

退出容器并保存更改

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

 [root@ffe81683c404 /]# exit

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

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

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

其中,-m 來(lái)指定提交的說(shuō)明信息,跟我們使用的版本控制工具一樣;-a 可以指定更新的用戶(hù)信息;之后是用來(lái)創(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鏡像消失的問(wèn)題及臨時(shí)解決方案

    docker鏡像消失的問(wèn)題及臨時(shí)解決方案

    本文主要介紹了docker鏡像消失的問(wèn)題及臨時(shí)解決方案,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-05-05
  • 詳解Docker中VLAN網(wǎng)絡(luò)模式的配置

    詳解Docker中VLAN網(wǎng)絡(luò)模式的配置

    在Docker應(yīng)用到生產(chǎn)環(huán)境的時(shí)候包括了原生Bridge NAT模式、LinuxBridge VLAN模式以及利用第三方的網(wǎng)絡(luò)方案這三種,這篇文章給大家詳細(xì)介紹了Docker中VLAN網(wǎng)絡(luò)模式的配置,有需要的朋友們下面來(lái)一起看看吧。
    2016-10-10
  • Docker容器跨主機(jī)通信中直接路由方式詳解

    Docker容器跨主機(jī)通信中直接路由方式詳解

    在本篇文章里我們給各位整理的是一篇關(guān)于Docker容器跨主機(jī)通信中直接路由方式詳解內(nèi)容,有需要的朋友們可以參考下。
    2019-10-10
  • docker已啟動(dòng)容器修改添加端口映射的兩種方法

    docker已啟動(dòng)容器修改添加端口映射的兩種方法

    最近工作中遇到一個(gè)問(wèn)題,docker容器啟動(dòng)后怎么修改端口映射?通過(guò)查找相關(guān)資料解決了,這篇文章主要給大家介紹了關(guān)于docker已啟動(dòng)容器修改添加端口映射的兩種方法,需要的朋友可以參考下
    2022-08-08
  • 在docker中執(zhí)行l(wèi)inux shell命令的操作

    在docker中執(zhí)行l(wèi)inux shell命令的操作

    這篇文章主要介紹了在docker中執(zhí)行l(wèi)inux shell命令的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-03-03
  • docker swarm外部驗(yàn)證負(fù)載均衡時(shí)不生效的解決方案

    docker swarm外部驗(yàn)證負(fù)載均衡時(shí)不生效的解決方案

    這篇文章主要介紹了docker swarm外部驗(yàn)證負(fù)載均衡時(shí)不生效的問(wèn)題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-04-04
  • 通過(guò)docker 部署minio的方法(端口號(hào)為9105)

    通過(guò)docker 部署minio的方法(端口號(hào)為9105)

    通過(guò)Docker部署MinIO對(duì)象存儲(chǔ)服務(wù),并指定API端口為9105,下面給大家分享實(shí)現(xiàn)步驟,感興趣的朋友一起看看吧
    2024-12-12
  • 清理Docker廢棄鏡像與緩存詳細(xì)圖文教程

    清理Docker廢棄鏡像與緩存詳細(xì)圖文教程

    在使用Docker進(jìn)行開(kāi)發(fā)和部署過(guò)程中,我們可能會(huì)遇到需要?jiǎng)h除舊鏡像和容器以釋放磁盤(pán)空間或清除不再需要的緩存的情況,這篇文章主要給大家介紹了關(guān)于清理Docker廢棄鏡像與緩存的相關(guān)資料,需要的朋友可以參考下
    2024-07-07
  • 使用Docker部署的基于binlog實(shí)現(xiàn)Mysql8的操作方法

    使用Docker部署的基于binlog實(shí)現(xiàn)Mysql8的操作方法

    MySQL 基于?Binlog?的主從復(fù)制(Master-Slave Replication)是 MySQL 數(shù)據(jù)庫(kù)中實(shí)現(xiàn)數(shù)據(jù)復(fù)制的一種機(jī)制,這篇文章主要介紹了使用Docker部署的基于binlog實(shí)現(xiàn)Mysql8,需要的朋友可以參考下
    2025-01-01
  • 解決docker容器與宿主機(jī)相差8小時(shí)的問(wèn)題

    解決docker容器與宿主機(jī)相差8小時(shí)的問(wèn)題

    使用docker-compose部署時(shí),在輸出的日志以及相關(guān)事件校驗(yàn)及輸出時(shí),導(dǎo)致事件與現(xiàn)實(shí)相差8小時(shí)。糾結(jié)怎么回事呢?下面小編給大家分享下解決docker容器與宿主機(jī)相差8小時(shí)的問(wèn)題,一起看看吧
    2021-09-09

最新評(píng)論

哈巴河县| 固原市| 苗栗县| 忻州市| 库尔勒市| 玉门市| 博野县| 利川市| 年辖:市辖区| 蓬安县| 陈巴尔虎旗| 禹城市| 乐亭县| 诸暨市| 太和县| 定安县| 马尔康县| 惠来县| 银川市| 屏南县| 平江县| 通化市| 炎陵县| 汽车| 无锡市| 内丘县| 鄄城县| 资源县| 上思县| 武清区| 娄烦县| 彭水| 巴青县| 诸暨市| 洮南市| 海阳市| 建水县| 鄂托克前旗| 花垣县| 永吉县| 颍上县|