Docker學(xué)習(xí)筆記#1

一、Docker Toolbox

Docker本身需要在Linux上運(yùn)行,所以想要在windows和mac系統(tǒng)下運(yùn)行,你需要安裝一些軟件。Docker Toolbox就是一個(gè)軟件包,可以登陸官網(wǎng)下載系統(tǒng)對應(yīng)版本。

docker toolbox

安裝完成以后會有兩個(gè)使用docker的工具:一個(gè)是命令行,一個(gè)是圖形界面。

安裝完成

打開Docker Quickstart Terminal工具,默認(rèn)會創(chuàng)建一個(gè)default的虛擬機(jī):


命令行工具

二、Image

Docker Hub網(wǎng)站上面,可以找到別人做好的一些鏡像,有提供基礎(chǔ)環(huán)境的鏡像如,Ubuntu,Centos等等,也有一些安裝了軟件的鏡像。

image

使用docker命令下載所需鏡像到本地電腦上,不過當(dāng)你不確定你要下載的鏡像的名字可以先去搜索一下,比如你要搜索跟Centos相關(guān)的鏡像:

搜索鏡像

docker search centos
search

官方提供的鏡像一般沒有前綴,就像第一個(gè)centos。

下載鏡像

比如要下載cenos鏡像

docker pull centos
download

使用docker官網(wǎng)提供的registry tree可能會有點(diǎn)慢,可以選擇使用國內(nèi)提供的一些鏡像服務(wù),比如阿里云提供的服務(wù),這樣會快很多。

查看鏡像

下載完成以后,查看已下載鏡像可以輸入:

docker images
images

三、container

創(chuàng)建容器

有了鏡像,就可以運(yùn)行鏡像去創(chuàng)建容器。比如:

docker run centos /bin/echo 'hello'
run

docker run 后面跟的是鏡像名字,接著是你希望在創(chuàng)建容器中運(yùn)行的命令,上面運(yùn)行的是使用echo命令輸入hello。

查看容器

docker ps
ps

沒有容器,原因是剛運(yùn)行的容器執(zhí)行完命令后就退出了??梢酝ㄟ^加上--all的選項(xiàng)查看所以容器:

psall

CONTAINER ID表示容器的id,IMAGE表示使用的鏡像,COMMNAND表示運(yùn)行的命令,CREATED表示容器創(chuàng)建的時(shí)間,STATUS表示容器狀態(tài),NAME表示容器的名字,如果不手動指定,會默認(rèn)生成一個(gè)名字。

我們可以基于同一個(gè)鏡像創(chuàng)建不同的容器:

run2

刪除容器

docker rm CONTAINER ID
rm

指定容器名

創(chuàng)建容器時(shí)可以使用--name的選項(xiàng)指定容器名字,方便后續(xù)對該容器的操作:

--name

查看容器日志

docker logs CONTAINER NAME

停止容器

docker stop CONTAINER NAME

重啟容器

docker restart CONTAINER NAME

啟動容器

docker start CONTAINER NAME
container

每運(yùn)行一次容器都會輸出一個(gè)hello,所以最后的log里有三個(gè)hello。

創(chuàng)建帶互動的容器

docker run -i -t centos /bin/bash

-i或者--interactive選項(xiàng)表示創(chuàng)建一個(gè)帶交互的容器
-t或者--tty選項(xiàng)表示給容器附加一個(gè)終端
/bin/bash表示終端的位置

執(zhí)行命令后你會看到你已經(jīng)進(jìn)入到容器里面了,容器的主機(jī)名就是容器的id,在里面可以執(zhí)行命令,安裝應(yīng)用等等。

bash

四、創(chuàng)建鏡像

手工創(chuàng)建

docker commit -m '提交日志'  -a '作者' 容器ID 鏡像名:容器標(biāo)簽

比如在容器里安裝了nodejs的應(yīng)用,想要保存修改,作為鏡像使用??梢詧?zhí)行

docker commit -m '安裝 nodejs' -a 'beckjiang' b5f1e430c603 beckjiang/nodejs-demo:latest

使用Dockerfile創(chuàng)建

使用dockerfile創(chuàng)建會更靈活一些。比如還是創(chuàng)建一個(gè)安裝有nodejs應(yīng)用的鏡像,
先創(chuàng)建目錄,進(jìn)入目錄,編輯dockerfile:


dockerfile1

進(jìn)入nodejs-demo目錄下后,創(chuàng)建Dockerfile文件,編輯文件:

FROM centos
MAINTAINER beckjiang
RUN curl --silent --location https://rpm.nodesource.com/setup_6.x | bash -
RUN yum install nodejs -y

一個(gè)最基本的Dockerfile就這樣寫好了,接著就是用這個(gè)Dockerfile創(chuàng)建鏡像?;氐矫钚校?dāng)前所在位置為nodejs-demo里面,運(yùn)行命令:

docker build --tag beckjiang/nodejs-demo:latest .

--tag表示鏡像的名字以及tag;
. 表示當(dāng)前目錄下去尋找Dockerfile

推送鏡像到Docker hub

Docker hub是一個(gè)保存鏡像的地方,可以登陸網(wǎng)站注冊賬號,注冊完成后,可以在命令行登陸并把自己創(chuàng)見的鏡像推送到Docker hub上面。

登陸Docker hub

docker login

隨后輸入帳號,密碼。

推送鏡像

登陸成功后,可以把鏡像推送上去

docker push beckjiang/nodejs-demo

docker只會把有變化的部分上傳上去。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Docker — 云時(shí)代的程序分發(fā)方式 要說最近一年云計(jì)算業(yè)界有什么大事件?Google Compute Engi...
    ahohoho閱讀 15,844評論 15 147
  • 轉(zhuǎn)載自 http://blog.opskumu.com/docker.html 一、Docker 簡介 Docke...
    極客圈閱讀 10,744評論 0 120
  • 0. 前言 docker是什么?docker是用GO語言開發(fā)的應(yīng)用容器引擎,基于容器化,沙箱機(jī)制的應(yīng)用部署技術(shù)???..
    sessionboy閱讀 4,003評論 2 49
  • 0x01 核心概念 Docker鏡像類似于虛擬機(jī)鏡像,可以理解為一個(gè)面向Docker引擎的只讀模板,包含了文件系統(tǒng)...
    閑云逸心閱讀 4,960評論 0 9
  • 今早出門回來,遠(yuǎn)遠(yuǎn)的就看見小區(qū)門口多了個(gè)小推車,車前老式錄音機(jī)放著過時(shí)的歌,歌聲不大不小,剛好能聽見,一位老人躬著...
    生命之神趙萬物閱讀 1,537評論 2 1

友情鏈接更多精彩內(nèi)容