国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專(zhuān)欄INFORMATION COLUMN

Docker 搭建靶場(chǎng)的利器

Jeff / 2852人閱讀

摘要:后聯(lián)合廣東,致力于北伐,他所統(tǒng)領(lǐng)的七軍被譽(yù)為鋼軍,奠定了南京國(guó)民政府的基礎(chǔ),龍?zhí)兑灰郏於私y(tǒng)一全國(guó)的基礎(chǔ)。這本書(shū)爆出很多歷史事實(shí),比如北伐,國(guó)民黨內(nèi)部紛爭(zhēng),蔣介石的為人。

最近在看《李宗仁回憶錄》,斷斷續(xù)續(xù)看了一個(gè)星期,因白天沒(méi)時(shí)間,只能抽出晚上的時(shí)間,荒廢了好多學(xué)習(xí)的時(shí)間,自覺(jué)慚愧。本來(lái)就對(duì)歷史非常感興趣,而李宗仁的這個(gè)回憶錄,寫(xiě)得真是太好啦,每天晚上回來(lái),本想著打開(kāi)書(shū)就看一會(huì),然后就漸漸忘我了。

這本書(shū)最吸引我的地方是刷新了我對(duì)民國(guó)歷史的理解,之前,我了解到的李宗仁是一個(gè)領(lǐng)導(dǎo)臺(tái)兒莊戰(zhàn)役,與蔣介石對(duì)立的桂系領(lǐng)袖。仔細(xì)讀完這本書(shū)之后,發(fā)現(xiàn)李實(shí)為一代英雄,和預(yù)想中差別真是太大,而且從他做事的風(fēng)格打心底佩服這個(gè)傳奇人物。少時(shí)家貧,棄文從戎,從排長(zhǎng)做起,負(fù)過(guò)傷,一步一步(克死上級(jí)),連長(zhǎng)、營(yíng)長(zhǎng)、團(tuán)長(zhǎng)、旅長(zhǎng),三十出頭,統(tǒng)一廣西,李的年輕史就是一部奮斗史。

后聯(lián)合廣東,致力于北伐,他所統(tǒng)領(lǐng)的七軍被譽(yù)為“鋼軍”,奠定了南京國(guó)民政府的基礎(chǔ),龍?zhí)兑灰郏於私y(tǒng)一全國(guó)的基礎(chǔ)。后經(jīng)武漢軍變,蔣桂戰(zhàn)爭(zhēng),中原大戰(zhàn)而不被滅亡,抗日戰(zhàn)爭(zhēng)后又有很多輝煌事跡。這本書(shū)爆出很多歷史事實(shí),比如北伐,國(guó)民黨內(nèi)部紛爭(zhēng),蔣介石的為人。

之前我一直有一個(gè)疑惑,像汪精衛(wèi)這種大漢奸,為什么后人罵之甚少,才知道原來(lái)汪在國(guó)民黨內(nèi)部地位如此之高,而且投日后也未作出對(duì)國(guó)家,對(duì)民族不利的事情。

雖說(shuō)歷史不可全信,而且看這本書(shū)就像看小說(shuō)一樣過(guò)癮,李宗仁的經(jīng)歷就像兒時(shí)自己的夢(mèng)想一樣,只不過(guò)一個(gè)是真實(shí)存在,一個(gè)從來(lái)未踏出第一步,看完之后,只能用佩服得五體投地來(lái)形容。

最近公司里開(kāi)始全面使用 Docker 來(lái)搭建靶機(jī)環(huán)境,以前搭環(huán)境都是用 Ubuntu 虛擬機(jī),安裝必備的軟件 mysql、php 和 apache(以 php 服務(wù)器為例),然后整個(gè)虛擬機(jī)生成一個(gè)好幾 G 的 .vof 虛擬機(jī)文件當(dāng)作服務(wù)器,每次需要搭一個(gè)新環(huán)境,都必先拷貝該文件,然后像 /var/www/html 中復(fù)制 php web 文件。可以說(shuō)整個(gè)過(guò)程,費(fèi)時(shí)費(fèi)力,還很占用空間。

很早之前,公司里有部分人就開(kāi)始研究 docker,最近才打算使用 docker 來(lái)搭建環(huán)境。而我最近在寫(xiě) jQuery 源碼方面的項(xiàng)目,想來(lái)也沒(méi)啥可寫(xiě),就抽時(shí)間把這幾周使用 docker 的經(jīng)驗(yàn)記錄一下吧,歡迎打臉。

為什么要用 docker

docker 在 github 上開(kāi)源,它是一個(gè)引擎,支持創(chuàng)建一個(gè)輕量級(jí)、可移植的容器,用過(guò)之后感覺(jué)和虛擬機(jī)非常像呀,而且還比虛擬機(jī)輕量多了。docker 最經(jīng)典的一句話:build once, configure once and run anywhere。可見(jiàn) docker 的強(qiáng)大。

比如現(xiàn)在的阿里云容器,用戶(hù)可以在上面購(gòu)買(mǎi) web 服務(wù),然后 docker 一鍵部署生成應(yīng)用,可見(jiàn) docker 已經(jīng)有取代虛擬云主機(jī)的趨勢(shì),畢竟對(duì)于大部分服務(wù)商來(lái)說(shuō),他們只希望 web 服務(wù)能平穩(wěn)安全的運(yùn)行,并不在意它運(yùn)行在容器里還是虛擬機(jī)里。

我的理解,docker 是面向運(yùn)維人員的,而開(kāi)發(fā)人員,該怎么開(kāi)發(fā),還是怎么開(kāi)發(fā),只是運(yùn)行的平臺(tái)不同而已。

那么,docker 的優(yōu)勢(shì)在哪里?

支持多平臺(tái),目前已支持各大操作系統(tǒng):window、linux 和 mac,docker products overview。

就我使用的來(lái)看,比 VM 小,比 VM 快,docker 在構(gòu)建應(yīng)用的過(guò)程中,速度要比虛擬機(jī)快很多,而且每個(gè)應(yīng)用依托 image,實(shí)際上是在 container 中運(yùn)行,鏡像和容器分開(kāi),在構(gòu)建多個(gè)應(yīng)用的時(shí)候,又非常多方便。

docker 雖然是容器,但卻是通過(guò)命令行來(lái)管理,而且還借鑒 git 操作,比如一些常見(jiàn)的 commit、push、pull 命令。

CPU/內(nèi)存的低消耗這方面我無(wú)法驗(yàn)證,但是 build once,run anywhere,這點(diǎn)非常贊同。比如公司里現(xiàn)在需要搭建 php 的環(huán)境,只需要 build 一個(gè) php+mysql+apache 的環(huán)境,便可構(gòu)建任意一個(gè) web 應(yīng)用。

docker 的使用

關(guān)于 docker 的安裝,可以參考 docker docs,詳細(xì)介紹了支持操作系統(tǒng)的安裝。

使用 docker 的第一步,就是拉取 image。docker image 是 docker 運(yùn)行時(shí)的模版,比如我想要運(yùn)行一個(gè) mysql 服務(wù),就必須有一個(gè)安裝了 mysql 的基本的 ubuntu 系統(tǒng)。這個(gè)就是運(yùn)行時(shí)基本的 image,而最基本的 image 要屬一個(gè)純凈的 ubuntu 系統(tǒng)docker hub ubuntu。

第一步,先拉取一個(gè)簡(jiǎn)單的 docker 鏡像。docker 提供一個(gè)類(lèi)似于 github 一樣鏡像官網(wǎng),https://hub.docker.com/,用戶(hù)可以 pull 到一些基本和流行的鏡像。當(dāng)然在 docker hub 中最火的還是 ubuntu 鏡像,關(guān)注度最高。用戶(hù)把基本 ubuntu 鏡像加以改造,衍生出各類(lèi)鏡像文件。

docker pull ubuntu:14.04

上面這個(gè)是最基本的 docker pull 命令,有 ubuntu:14.04 表示官方 ubuntu 鏡像 14.04 版本,也可以 pull 最新版的比如:docker pull ubuntu:latest 或者 pull 16.04:docker pull ubuntu:16.04

這個(gè)是從 docker hub 官網(wǎng)獲取鏡像,速度非常慢,好在國(guó)內(nèi)有鏡像加速器,具體配置可參考這篇文章,或者注冊(cè) www.daocloud.io 通過(guò)這個(gè)頁(yè)面獲取鏡像加速。通過(guò)加速之后,你會(huì)發(fā)現(xiàn),速度非常快。

這個(gè)時(shí)候通過(guò) docker images 可以查看當(dāng)前存在的鏡像。

運(yùn)行的話,使用下面的命令:

docker run -i -t ubuntu:14.04 /bin/bash 
// -i 表示輸出在標(biāo)準(zhǔn)控制臺(tái)
// -t 表示分配一個(gè) tty 終端設(shè)備

這個(gè)命令執(zhí)行后,在當(dāng)前的命令行下面,會(huì)進(jìn)入 ubuntu:14.04 的命令行,就像 ssh 服務(wù)器那樣,exit 命令退出。ubuntu:14.04 是 image 名稱(chēng)和版本,最后是要執(zhí)行的命令,這里是進(jìn)入命令行,所以 執(zhí)行 /bin/bash 文件。因?yàn)?build 是自動(dòng)的,所以在大多數(shù)情況下(后面介紹 Dockerfile 會(huì)用到)事先寫(xiě)好一個(gè) bash 文件,啟動(dòng)運(yùn)行這個(gè) bash 文件即可,比如:

docker run -d ubuntu:14.04 /bin/bash /run.sh
// -d 表示后臺(tái)運(yùn)行容器

docker ps 用于查看當(dāng)前正在運(yùn)行的 container,docker ps -a 顯示所有 container,docker stop/start/restart {container_id | container name} 可以停止/開(kāi)啟/重啟 正在運(yùn)行或已經(jīng)停止的容器。總之記住一句話,images 是模版,而運(yùn)行靠容器

有時(shí)候?yàn)榱朔奖愎芾恚€需要對(duì) container 進(jìn)行命名:

docker run -d ubuntu:14.04 /bin/bash /run.sh --name=test

如果運(yùn)行時(shí)忘記了或者需要修改名字,可以通過(guò)下面的命令,因?yàn)榧词雇浢琩ocker container 會(huì)使用一個(gè)系統(tǒng)隨機(jī)分配的名字:

docker rename {old_name} {new_name}

我們可以將基本的 ubuntu 鏡像升級(jí)成一個(gè) mysql 的服務(wù)器,這是通過(guò) commit 命令來(lái)完成:

host$ docker run -i -t ubuntu:14.04 /bin/bash 
// 下面進(jìn)入 ubuntu:14.04 shell
// 命令進(jìn)行簡(jiǎn)化
root$ sudo apt-get update
root$ sudo apt-get install mysql-server
root$ exit
host$ docker commit -m "install mysql_server" {container_id} ubuntu:mysql
host$ docker images

會(huì)發(fā)現(xiàn)多一個(gè)叫做 ubuntu:mysql 的鏡像文件,便是 commit 后的鏡像文件,此時(shí)可以通過(guò) push 命令將它們 push 到服務(wù)器供別人使用。

docker 還通過(guò)端口映射,文件夾映射等,比如一個(gè) mysql 服務(wù)器,它啟動(dòng)了之后,實(shí)際上會(huì)在容器中開(kāi)啟 3306 端口,可以通過(guò) -p 將它們映射到本地的 3306 端口:

docker run -d -p 3306:3306 -p 80:80 -v /web/:/var/www/html ubuntu:apache_server /bin/bash /run.sh

-v 會(huì)將主機(jī)目錄下 /web 映射到 /var/www/html 中。

這是一個(gè)容器,如果我們需要開(kāi)啟第二個(gè) web 應(yīng)用,只需要新建另一個(gè)容器即可,所謂的 build once,run everywhere。

有時(shí)候?qū)τ跀?shù)據(jù)庫(kù)服務(wù)和 apache 服務(wù),需要在兩個(gè)不同的容器中運(yùn)行,需要將它們建立 link 鏈接。

Dockerfile

前面說(shuō)了,一鍵部署,一鍵運(yùn)行,而我們只看到的是一鍵運(yùn)行,而一鍵部署該如何設(shè)置?

通過(guò) docker 提供的 docker build 命令。

新建 image 有兩種方法,前面已經(jīng)介紹過(guò)一種 commit 的方法,但是 commit 是針對(duì) container 來(lái)說(shuō)的,構(gòu)建的話需要一個(gè)已經(jīng)完好的 container,過(guò)程略有繁瑣。

docker build 需要一個(gè) Dockerfile 的文件,如果該文件在當(dāng)前目錄下:

docker build -t ubuntu:mysql .

-t 參數(shù)表示給 image 添加一個(gè) tag 標(biāo)簽,Dockerfile 也可以指定位置,把 . 換成一個(gè)指定的 Dockerfile 即可。

而一個(gè) Dockerfile 大致如下:

# 表示來(lái)自哪個(gè) image
FROM ubuntu:14:04
# 作者
MAINTAINER author 
# ENV 指定 docker 容器的環(huán)境變量
ENV DEBIAN_FRONTEND noninteractive
# RUN 表示執(zhí)行 bash 命令
# install package
RUN apt-get update && 
  apt-get -y install supervisor git apache2 libapache2-mod-php5 mysql-server php5-mysql pwgen php-apc php5-mcrypt && 
  echo "ServerName localhost" >> /etc/apache2/apache2.conf
# ADD 表示將本地文件添加到容器目錄中
ADD start-apache2.sh /start-apache2.sh
ADD start-mysqld.sh /start-mysqld.sh
ADD run.sh /run.sh
RUN chmod 755 /*.sh
ADD my.cnf /etc/mysql/conf.d/my.cnf
ADD supervisord-apache2.conf /etc/supervisor/conf.d/supervisord-apache2.conf
ADD supervisord-mysqld.conf /etc/supervisor/conf.d/supervisord-mysqld.conf

# 刪除數(shù)據(jù)庫(kù)文件
RUN rm -rf /var/lib/mysql/*

# 添加數(shù)據(jù)庫(kù)配置文件
ADD create_mysql_admin_user.sh /create_mysql_admin_user.sh
RUN chmod 755 /*.sh

# clone app 文件
RUN git clone https://github.com/fermayo/hello-world-lamp.git /var/www/html

#Environment variables to configure php
ENV PHP_UPLOAD_MAX_FILESIZE 10M
ENV PHP_POST_MAX_SIZE 10M

# 添加掛載,用于共享,和 -v 命令一樣 
VOLUME  ["/etc/mysql", "/var/lib/mysql" ]

# 暴露端口
EXPOSE 80 3306
# 添加默認(rèn)執(zhí)行的 bash(cmd)
CMD ["/run.sh"]

這里面有一個(gè)坑啊。因?yàn)檫@個(gè) 14.04 的鏡像來(lái)自于官方,所以 apt-get 的源是美國(guó)的主機(jī),非常慢,建議先對(duì) ubuntu 的更新源進(jìn)行修改,然后再執(zhí)行 build 命令,切記。

上面這個(gè) Dockerfile 文件來(lái)自 github 上一個(gè) php+mysql+apache 環(huán)境搭建項(xiàng)目,lamp。

更多 Dockerfile 的命令請(qǐng)參考如何使用Dockerfile構(gòu)建鏡像或Docker入門(mén)教程(三)Dockerfile。

總結(jié)

其實(shí) docker 的使用非常簡(jiǎn)單,又不用看它的的源碼,只是一些簡(jiǎn)單的命令,而且網(wǎng)上的教程滿(mǎn)天飛,想在短時(shí)間內(nèi)學(xué)會(huì) docker 是完全沒(méi)有問(wèn)題的,但是關(guān)鍵的問(wèn)題是:你為什么要學(xué) docker?docker 能給你帶來(lái)哪些便利?

因我公司需要掌握 docker,我也就花了一些時(shí)間,算入門(mén) docker 了吧,基本的命令都有所了解,而且確實(shí)也帶來(lái)了很大的便利。但入門(mén)始終是入門(mén),有一些問(wèn)題會(huì)在使用的過(guò)程中碰到,比如

container 容器 root 權(quán)限的問(wèn)題;

docker 像虛擬機(jī)那樣安全嗎;

docker 的性能與 VM 性能和直接在本地運(yùn)行應(yīng)用的性能,都有多大差別?

共勉!

參考

docker 中文
Docker入門(mén)教程
Docker容器入門(mén)
如何使用Dockerfile構(gòu)建鏡像

歡迎來(lái)我的博客討論。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/35813.html

相關(guān)文章

  • Docker 搭建靶場(chǎng)利器

    摘要:后聯(lián)合廣東,致力于北伐,他所統(tǒng)領(lǐng)的七軍被譽(yù)為鋼軍,奠定了南京國(guó)民政府的基礎(chǔ),龍?zhí)兑灰郏於私y(tǒng)一全國(guó)的基礎(chǔ)。這本書(shū)爆出很多歷史事實(shí),比如北伐,國(guó)民黨內(nèi)部紛爭(zhēng),蔣介石的為人。 最近在看《李宗仁回憶錄》,斷斷續(xù)續(xù)看了一個(gè)星期,因白天沒(méi)時(shí)間,只能抽出晚上的時(shí)間,荒廢了好多學(xué)習(xí)的時(shí)間,自覺(jué)慚愧。本來(lái)就對(duì)歷史非常感興趣,而李宗仁的這個(gè)回憶錄,寫(xiě)得真是太好啦,每天晚上回來(lái),本想著打開(kāi)書(shū)就看一會(huì),然...

    techstay 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<