利用Docker搭建Galaxy

前幾天再看新買的《python Web開發(fā)實(shí)踐》時發(fā)現(xiàn)一個神奇的工具---Docker撵术,官網(wǎng)介紹是

Docker is the world's leading software containerization platform

我不禁想到生物信息學(xué)中有許多軟件都要在類unix平臺上運(yùn)行炬转,僅有部分移植到Windows上听诸。所以在要想在Windows上運(yùn)行這些沒有移植的軟件寓涨,要么需要虛擬出一個Linux系統(tǒng),要不就是利用Windows10上一個新特性--內(nèi)置ubuntu系統(tǒng)。

所以由于Docker的特性,就多了一種在windows上運(yùn)行生物信息軟件的方法

安裝

運(yùn)行Docker的第一步就是安裝宿饱。Docker最在僅能在類unix系統(tǒng)運(yùn)行,后來移植到Windows平臺脚祟,不過要在Windows上安裝Docker也要滿足2個要求:

  • Windows10 64位
  • Hyper V
    不滿足的話可以用Docker Toolbox替代谬以。

滿足以上條件后只要下載InstallDocker.msi并運(yùn)行就行了。

然后打開powershell由桌,輸入一下指令檢查是否安裝成功

> docker version
> docker-compose --version
> docker-machine --version

如果以上命令都沒有報錯則安裝完成为黎。此外在命令行直接輸入docker就會出現(xiàn)docker的參數(shù)說明,具體使用方法見后面的案例行您。

Usage: docker [OPTIONS] COMMAND [arg...]
       docker [ --help | -v | --version ]

A self-sufficient runtime for containers.

Options:

  --config=%USERPROFILE%\.docker              Location of client config files
  -D, --debug                                 Enable debug mode
  -H, --host=[]                               Daemon socket(s) to connect to
  -h, --help                                  Print usage
  -l, --log-level=info                        Set the logging level
  --tls                                       Use TLS; implied by --tlsverify
  --tlscacert=%USERPROFILE%\.docker\ca.pem    Trust certs signed only by this CA
  --tlscert=%USERPROFILE%\.docker\cert.pem    Path to TLS certificate file
  --tlskey=%USERPROFILE%\.docker\key.pem      Path to TLS key file
  --tlsverify                                 Use TLS and verify the remote
  -v, --version                               Print version information and quit

Commands:
    attach    Attach to a running container
    build     Build an image from a Dockerfile
    commit    Create a new image from a container's changes
    cp        Copy files/folders between a container and the local filesystem
    create    Create a new container
    diff      Inspect changes on a container's filesystem
    events    Get real time events from the server
    exec      Run a command in a running container
    export    Export a container's filesystem as a tar archive
    history   Show the history of an image
    images    List images
    import    Import the contents from a tarball to create a filesystem image
    info      Display system-wide information
    inspect   Return low-level information on a container, image or task
    kill      Kill one or more running containers
    load      Load an image from a tar archive or STDIN
    login     Log in to a Docker registry.
    logout    Log out from a Docker registry.
    logs      Fetch the logs of a container
    network   Manage Docker networks
    node      Manage Docker Swarm nodes
    pause     Pause all processes within one or more containers
    port      List port mappings or a specific mapping for the container
    ps        List containers
    pull      Pull an image or a repository from a registry
    push      Push an image or a repository to a registry
    rename    Rename a container
    restart   Restart a container
    rm        Remove one or more containers
    rmi       Remove one or more images
    run       Run a command in a new container
    save      Save one or more images to a tar archive (streamed to STDOUT by default)
    search    Search the Docker Hub for images
    service   Manage Docker services
    start     Start one or more stopped containers
    stats     Display a live stream of container(s) resource usage statistics
    stop      Stop one or more running containers
    swarm     Manage Docker Swarm
    tag       Tag an image into a repository
    top       Display the running processes of a container
    unpause   Unpause all processes within one or more containers
    update    Update configuration of one or more containers
    version   Show the Docker version information
    volume    Manage Docker volumes
    wait      Block until a container stops, then print its exit code

Run 'docker COMMAND --help' for more information on a command.

使用Docker搭建Galaxy生物信息平臺

首先我們需要確認(rèn)Docker是否存在這個平臺

$ [sudo] docker search galaxy
NAME                                                 DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
bgruening/galaxy-stable                              Galaxy Docker Image                             18                   [OK]
bgruening/galaxy-deeptools                                                                           5                    [OK]
bgruening/galaxy-rna-workbench                                                                       2                    [OK]
......

通過NAME這一列我們可以找到所需要的鏡像(images)為bgruening/galaxy-stable碍舍,也可以去Docker Hub進(jìn)行查找。

Paste_Image.png
Paste_Image.png

在作者的Docker Hub頁面上會有該鏡像的具體使用方法邑雅。

找到進(jìn)行之后,就可以通過pull下載該鏡像:

> docker pull bgruening/galaxy-stable

隨后通過該鏡像在本地運(yùn)行Galaxy服務(wù):

>docker run --name mygalaxy -d -p 8080:80 -p 8021:21 -p 8022:22 bgruening/galaxy-stable
--name xxxx: 指定該容器名妈经,否則隨機(jī)生成
-d : 作為一種服務(wù)在后臺運(yùn)行
-p 外部端口:內(nèi)部端口 : 將外部端口綁定到內(nèi)部端口淮野,實(shí)現(xiàn)從瀏覽器訪問Galaxy

在瀏覽器輸入localhost:8080,就可以訪問了吹泡。

Galaxy

當(dāng)然我們可能還需要在Galaxy中添加管理骤星,修改配置,這時候就需要交互式的運(yùn)行docker爆哑。

docker run -i -t bgruening/galaxy-stable /bin/bash

更詳細(xì)的了解如何管理服務(wù)

光是學(xué)會安裝運(yùn)行還不夠洞难,我們還需要了解服務(wù)的運(yùn)行狀態(tài),這里就要介紹另外幾個command: ps, top, logs, port

> docker ps -l #可以查看最近運(yùn)行的服務(wù)
> docker port mygalaxy # 查看mygalaxy的端口轉(zhuǎn)發(fā)
> docker logs mygalaxy # 了解mygalaxy的運(yùn)行日志
> docker top  mygalaxy # 了解mygalaxy的運(yùn)行進(jìn)程

如何想暫停服務(wù)該怎么辦揭朝?暫停之后有需要重新開啟呢队贱?

>docker stop mygalaxy
>docker start mygalaxy

卸載Galaxy

當(dāng)你用了Docker版的Galaxy后感覺還是不太適合色冀,那應(yīng)該如何卸載呢?首先是停止服務(wù)柱嫌,然后刪除容器锋恬,然后刪除鏡像.

docker stop mygalaxy
docker rm mygalaxy
docker rmi bgruening/galaxy-stable

總結(jié)

本文主要介紹了一種在Windows上搭建Galaxy的一種方法,介紹Docker的幾個指令:search, pull, run, ps, port, top, logs, stop, start等指令编丘,更多Docker和Galaxy相關(guān)內(nèi)容請翻閱參考資料与学。

參考資料

https://docs.docker.com/docker-for-windows/
https://hub.docker.com/r/bgruening/galaxy-stable/

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市嘉抓,隨后出現(xiàn)的幾起案子索守,更是在濱河造成了極大的恐慌,老刑警劉巖抑片,帶你破解...
    沈念sama閱讀 218,525評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件卵佛,死亡現(xiàn)場離奇詭異,居然都是意外死亡蓝丙,警方通過查閱死者的電腦和手機(jī)级遭,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,203評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來渺尘,“玉大人挫鸽,你說我怎么就攤上這事∨父” “怎么了丢郊?”我有些...
    開封第一講書人閱讀 164,862評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長医咨。 經(jīng)常有香客問我枫匾,道長,這世上最難降的妖魔是什么拟淮? 我笑而不...
    開封第一講書人閱讀 58,728評論 1 294
  • 正文 為了忘掉前任干茉,我火速辦了婚禮,結(jié)果婚禮上很泊,老公的妹妹穿的比我還像新娘角虫。我一直安慰自己,他們只是感情好委造,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,743評論 6 392
  • 文/花漫 我一把揭開白布戳鹅。 她就那樣靜靜地躺著,像睡著了一般昏兆。 火紅的嫁衣襯著肌膚如雪枫虏。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,590評論 1 305
  • 那天,我揣著相機(jī)與錄音隶债,去河邊找鬼腾它。 笑死,一個胖子當(dāng)著我的面吹牛燃异,可吹牛的內(nèi)容都是我干的携狭。 我是一名探鬼主播,決...
    沈念sama閱讀 40,330評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼回俐,長吁一口氣:“原來是場噩夢啊……” “哼逛腿!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起仅颇,我...
    開封第一講書人閱讀 39,244評論 0 276
  • 序言:老撾萬榮一對情侶失蹤单默,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后忘瓦,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體搁廓,經(jīng)...
    沈念sama閱讀 45,693評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,885評論 3 336
  • 正文 我和宋清朗相戀三年耕皮,在試婚紗的時候發(fā)現(xiàn)自己被綠了境蜕。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,001評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡凌停,死狀恐怖粱年,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情罚拟,我是刑警寧澤台诗,帶...
    沈念sama閱讀 35,723評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站赐俗,受9級特大地震影響拉队,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜阻逮,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,343評論 3 330
  • 文/蒙蒙 一粱快、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧叔扼,春花似錦事哭、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,919評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽珊拼。三九已至食呻,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背仅胞。 一陣腳步聲響...
    開封第一講書人閱讀 33,042評論 1 270
  • 我被黑心中介騙來泰國打工每辟, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人干旧。 一個月前我還...
    沈念sama閱讀 48,191評論 3 370
  • 正文 我出身青樓渠欺,卻偏偏與公主長得像,于是被迫代替她去往敵國和親椎眯。 傳聞我的和親對象是個殘疾皇子挠将,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,955評論 2 355

推薦閱讀更多精彩內(nèi)容

  • Docker — 云時代的程序分發(fā)方式 要說最近一年云計算業(yè)界有什么大事件?Google Compute Engi...
    ahohoho閱讀 15,534評論 15 147
  • 0. 前言 docker是什么编整?docker是用GO語言開發(fā)的應(yīng)用容器引擎舔稀,基于容器化,沙箱機(jī)制的應(yīng)用部署技術(shù)掌测∧谥可...
    sessionboy閱讀 3,854評論 2 49
  • 一、Docker 簡介 Docker 兩個主要部件:Docker: 開源的容器虛擬化平臺Docker Hub: 用...
    R_X閱讀 4,388評論 0 27
  • 燃點(diǎn)起一支殘燭 竟然又提筆忘字 每天瞎忙到不知所蹤 淚盡 燭盡 還是詩盡
    師荔閱讀 321評論 0 7
  • 前任最近要去看演唱會 恰好看場演唱會一直是我的愿望 如今被他一提 我的內(nèi)心即刻蠢蠢欲動 我以為我是搶不到低價票 我...
    函庭閱讀 150評論 0 0