Docker 基本使用總結(jié)(未完待續(xù))

理解幾個(gè)概念

鏡像(Image)

鏡像就是我們平常理解的鏡像文件,主要是一些官方的linux發(fā)行版系統(tǒng)(CentOS/Ubuntu等)、別人打包上傳的文件。下面的IAMGE ID就是一個(gè)鏡像的唯一標(biāo)識(shí),代表著一個(gè)鏡像文件。

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
centos              <none>              e934aafc2206        7 weeks ago         199MB

倉(cāng)庫(kù)(Repository)

倉(cāng)庫(kù)就是鏡像版本管理倉(cāng)庫(kù),下面的第一列就是倉(cāng)庫(kù),可以看出一個(gè)鏡像如果發(fā)展成多個(gè)版本了,可以用引入了倉(cāng)庫(kù)(倉(cāng)庫(kù)標(biāo)識(shí)+Tag)來(lái)管理每一個(gè)版本。和Git管理代碼倉(cāng)庫(kù)有點(diǎn)類似。

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
gene_centos         v1                  d2f69ca9554d        2 hours ago         3.19GB
gene_centos         v2                  d2f69ca9554d        2 hours ago         3.38GB
new_gene_centos     v1                  d2f69ca9554d        2 hours ago         3.14GB

容器(Container)

運(yùn)行一個(gè)倉(cāng)庫(kù)中的鏡像后就是一個(gè)容器。

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                          NAMES
1f736f9ee456        d2f69ca9554d        "/usr/sbin/init"    9 seconds ago       Up 19 seconds       0.0.0.0:80->80/tcp, 8081/tcp   mystifying_perlman

基本管理

Docker服務(wù)管理

啟動(dòng)docker

$ systemctl status docker

重啟docker

$ systemctl daemon-reload
$ systemctl restart docker

修改啟動(dòng)參數(shù)

$ vim /usr/lib/systemd/system/docker.servicec # 在ExecStart后增加選項(xiàng)參數(shù)

驗(yàn)證

$ docker info

鏡像管理

查看所有鏡像

$ ps images

拉取/推送鏡像

$ docker pull [OPTIONS] NAME[:TAG|@DIGEST] [flags] # 命令格式
$ docker pull centos:7.2.1511 # 從Docker Hub下載REPOSITORY為centos的所有鏡像。
$ docker pull -a dszkng/centos7 # 下載REPOSITORY為"dszkng/centos7"的所有鏡像
  • 推送(上傳)鏡像到遠(yuǎn)程

鏡像的管理方式非常像Git,可以使用docker push命令上傳自己本地鏡像到倉(cāng)庫(kù),默認(rèn)上傳到DockerHub官方倉(cāng)庫(kù)(需要登陸)。

$ docker push image_name[:tag_name] # 命令格式
$ docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG] # 命令格式
$ docker tag centos dszkng/centos7 # 在上傳之前一般會(huì)先為自己的鏡像添加帶自己名字(作者信息)的標(biāo)簽
$ docker push dszkng/centos7 # 上傳鏡像

導(dǎo)入/導(dǎo)出到鏡像

  • 導(dǎo)入容器(基于本地模板)
$ docker import [OPTIONS] file|URL|- [REPOSITORY[:TAG]] [flags] # 命令格式
$ docker import /tmp/images/centos.tar dszkng/centos7:v1
  • 導(dǎo)出(持久化)容器
$ docker export [OPTIONS] CONTAINER [flags] # 命令格式
$ docker export 1f736f9ee456 > /tmp/images/centos.tar

存出/載入鏡像

  • 存出鏡像(保存鏡像到本地文件)
$ docker save -o /tmp/images/centos.tar d2f69ca9554d # 指定image_id
$ docker save -o /tmp/images/centos.tar centos # 指定鏡像名稱
  • 載入鏡像(加載本地鏡像文件)
$ docker load --input /tmp/images/centos.tar
$ docker load < /tmp/images/centos.tar # 簡(jiǎn)化寫法

創(chuàng)建/刪除鏡像

  • 創(chuàng)建鏡像

三種方法:基于已有鏡像的容器創(chuàng)建、基于本地模板導(dǎo)入、基于Dockerfile創(chuàng)建。

  1. 基于已有鏡像的容器創(chuàng)建
$ docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]] # 命令格式

主要參數(shù)選項(xiàng)包括:
-a:–author="" 作者信息
-m:–message="" 提交信息
-p:–pause=true 提交是暫停容器運(yùn)行

$ docker commit –m "test" –a "dszkng" d8990fec2141 my-centos7-image
  1. 基于本地模板導(dǎo)入
    上面有介紹。

  2. 基于Dockerfile創(chuàng)建
    暫時(shí)不介紹。

  • 刪除鏡像
$ docker rmi repository:tag # 第一步:先刪除鏡像的使用倉(cāng)庫(kù)
$ docker rmi image_id # 第二步:刪除鏡像

容器管理

  • 查看正在運(yùn)行的容器
?  / docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                          NAMES
1f736f9ee456        d2f69ca9554d        "/usr/sbin/init"    9 seconds ago       Up 19 seconds       0.0.0.0:80->80/tcp, 8081/tcp   mystifying_perlman
  • 查看所有運(yùn)行過(guò)的容器
?  / docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                      PORTS                          NAMES
1f736f9ee456        d2f69ca9554d        "/usr/sbin/init"         4 minutes ago       Up 5 minutes                0.0.0.0:80->80/tcp, 8081/tcp   mystifying_perlman
5d0630b78be7        0fccf9c0af91        "/usr/sbin/init"         44 hours ago        Exited (137) 2 hours ago                                   thirsty_snyder
cfc693c4aed8        ef1a371e7cf4        "/usr/sbin/init"         46 hours ago        Exited (137) 44 hours ago                                  heuristic_kirch
  • 啟動(dòng)容器
docker run 
  • 進(jìn)入一個(gè)正在運(yùn)行的容器
docker exec
  • 停止容器
docker stop
  • 刪除容器
docker rm container_id

附錄:

  1. Docker容器進(jìn)入的4種方式
  2. Docker容器啟動(dòng)后添加端口映射

Docker 容器鏡像刪除

http://www.runoob.com/docker/docker-hello-world.html

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

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

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