日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Docker-入门

發布時間:2023/12/20 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Docker-入门 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Docker是基于Linux容器的虛擬化技術,基于go語言開發,生態是非常不錯的,通過對應用組件的封裝、
分發、部署、運行等生命周期的管理,使用戶的APP(可以是一個WEB應用或數據庫應用等等)及其運
行環境能夠做到一次封裝,到處運行。
傳統虛擬技術需要虛擬出一個系統才能運行,Linux容器只是對進程進行了隔離,使得每個進程看起來都運行在一個單獨的系統。不同的容器可以共用相同的庫和內核,而且做到互不影響,所以容器本身沒有內核,也更輕量級。
Docker的兩個核心概念為:容器和鏡像。在后續的使用中會逐步了解

一、Docker安裝

官方文檔:https://docs.docker.com/engine/install/

還是基于CentOS操作系統進行安裝

1.安裝

安裝前先移除,防止有緩存:

yumremove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine

安裝yum-utils并配置鏡像:

yum install-y yum-utilsyum-config-manager \--add-repo \https://download.docker.com/linux/centos/docker-ce.repo# 速度過慢,可以使用阿里鏡像 yum-config-manager \ --add-repo \ http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

安裝docker:

yum install -y docker-ce docker-ce-cli containerd.io

等待下載完后,啟動docker:

systemctl start docker

2.阿里云鏡像加速

由于docker中容器依賴鏡像,鏡像存放在倉庫中,使用時需要拉取到本地,可以是私有,也可以是公開,最大的開放型鏡像倉庫為:https://hub.docker.com/
因為是國外的倉庫,拉取速度會受影響,可以通過阿里云鏡像加速

2.1 進入阿里云

進入網站:https://cr.console.aliyun.com/后,進入控制臺:

2.2 容器鏡像服務

鼠標移動到左上角,進入容器鏡像服務:

2.3 鏡像加速器

選擇鏡像工具-鏡像加速器:

按照教程執行命令:

3.helloworld

啟動docker后,官方提供了一個測試鏡像,執行命令:

docker run hello-world

輸出了一些信息:

4.鏡像倉庫

上面提到過,目前最大的鏡像公開倉庫:https://hub.docker.com/

二、docker命令

通過docker命令,可以初步了解什么是鏡像,什么是容器

1.幫助命令

命令描述
docker version查看docker的版本信息
docker info查看docker詳細的信息
docker --helpdocker的幫助命令,可以查看到相關的其他命令

2.鏡像命令

命令描述
docker images列出本地主機上的鏡像
docker search 鏡像名從 docker hub 上搜索鏡像
docker pull 鏡像名從docker hub 上拉取鏡像
docker rmi 鏡像名稱刪除本地鏡像
2.1 docker images

docker images是常用命令,可選參數為:

參數描述
-a列出本地所有的鏡像
-q只顯示鏡像ID
--digests顯示鏡像的摘要信息
--no-trunc顯示完整的鏡像信息,默認信息過多會進行截取
2.2 docker search

docker search是從docker hub上搜索鏡像,下面是我在網頁上搜索tomcat的結果:

命令的可選參數為:

參數描述
-f過濾條件 docker search -f STARS=5 tomcat :表示搜索stats>=5的tomcat鏡像
--limit分頁顯示
--no-trunc顯示完整信息
2.3 docker pull

docker pull從docker hub上拉取鏡像到本地:

2.4 docker rmi

docker rmi刪除一個或多個鏡像

參數描述
-f強制刪除

3.容器命令

命令描述
docker run 鏡像名創建并啟動一個容器
docker ps列舉容器,默認只展示運行中的
docker start 容器名/容器id啟動容器
docker restart 容器名/容器id重啟容器
docker stop 容器名/容器id停止容器
docker kill 容器名/容器id強制停止容器
docker rm 容器id刪除容器
3.1 docker run

docker run每次執行,會產生一個新的容器并運行該容器,支持的參數:

參數描述
--name指定容器名稱
-d守護式容器,后臺運行
-it-i為交互式模式運行,-t為重新分配一個偽終端,兩者通常一起使用
-P隨機端口映射
-p指定端口映射關系
-v指定數據卷映射關系
--volumes-from指定數據卷容器

交互式啟動:

-bash-4.2# docker run -p 1234:8080 -it tomcat /bin/bash root@643f11414f56:/usr/local/tomcat#

交互式退出方式:

  • exit:退出并停止容器
  • ctrl+q+p:退出交互式,容器后臺運行
3.2 docker ps

docker ps用于列舉容器,默認只展示運行中的,支持的參數為:

參數描述
-a展示所有的容器
-l展示最近創建的容器
-n展示最近n個創建的
-q只展示容器編號
--no-trunc展示完整信息
3.3 docker rm

docker rm支持一次性刪除多個容器,后面跟上多個容器id:

docker rm-f 22 64 docker rm -f $(docker ps -qa) docker ps -a -q | xargs docker rm

4.其他命令

命令描述
docker logs 容器id查看容器執行日志
docker inspect 容器id查看容器詳細信息
docker exec 容器id 命令進入容器,打開新的終端執行命令
docker attach 容器id進入容器啟動命令的終端
docker cp 容器id:容器內路徑 目的地路徑復制容器的文件到宿主機中
4.1 docker logs

查看終端執行日志:

-bash-4.2# docker logs -t -f --tail 3 d4 2022-08-30T04:20:13.578533223Z 30-Aug-2022 04:20:13.577 INFO [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet engine: [Apache Tomcat/10.0.14] 2022-08-30T04:20:13.604351571Z 30-Aug-2022 04:20:13.601 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"] 2022-08-30T04:20:13.646282364Z 30-Aug-2022 04:20:13.643 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in [219] milliseconds 2022-08-30T04:23:57.855531488Z 30-Aug-2022 04:23:57.843 INFO [Thread-2] org.apache.coyote.AbstractProtocol.pause Pausing ProtocolHandler ["http-nio-8080"] 2022-08-30T04:23:57.855560212Z 30-Aug-2022 04:23:57.852 INFO [Thread-2] org.apache.catalina.core.StandardService.stopInternal Stopping service [Catalina] 2022-08-30T04:23:57.860806108Z 30-Aug-2022 04:23:57.857 INFO [Thread-2] org.apache.coyote.AbstractProtocol.stop Stopping ProtocolHandler ["http-nio-8080"] 2022-08-30T04:23:57.877280602Z 30-Aug-2022 04:23:57.867 INFO [Thread-2] org.apache.coyote.AbstractProtocol.destroy Destroying ProtocolHandler ["http-nio-8080"]
4.2 docker inspect
4.3 docker exec

docker exec用于容器內執行命令,支持-it進入交互式模式,并且是新創建一個終端,所以退出并不會導致容器停止

-bash-4.2# docker exec -it d7 /bin/bash root@d7b4af8ba1ff:/usr/local/tomcat# exit exit
4.4 docker attach

docker attach是進入啟動容器的終端,退出會導致容器停止

-bash-4.2# docker attach d7 ^C30-Aug-2022 04:38:01.370 INFO [Thread-2] org.apache.coyote.AbstractProtocol.pause Pausing ProtocolHandler ["http-nio-8080"] 30-Aug-2022 04:38:01.387 INFO [Thread-2] org.apache.catalina.core.StandardService.stopInternal Stopping service [Catalina] 30-Aug-2022 04:38:01.394 INFO [Thread-2] org.apache.coyote.AbstractProtocol.stop Stopping ProtocolHandler ["http-nio-8080"] 30-Aug-2022 04:38:01.403 INFO [Thread-2] org.apache.coyote.AbstractProtocol.destroy Destroying ProtocolHandler ["http-nio-8080"]
4.5 docker cp

docker cp用于將文件復制到宿主機內:

-bash-4.2# docker exec -it d7 /bin/bash root@d7b4af8ba1ff:/usr/local/tomcat# cd /root root@d7b4af8ba1ff:~# touch 123.txt root@d7b4af8ba1ff:~# exit exit-bash-4.2# docker cp d7:/root/123.txt /root -bash-4.2# ls 123.txt

三、鏡像

鏡像包含著軟件運行環境和基于運行環境開發的軟件,是包含了運行某個軟件的所有內容,鏡像使用UnionFS文件系統,編程語言來理解就是類繼承,該文件是可以被繼承的,即鏡像內部擁有可以分層很多個文件,只是對外表現成一個文件。基于基礎鏡像,可以制作各種各樣的應用鏡像
鏡像是只讀的,當容器啟動時,一個新的可寫層被加載到鏡像的頂部,這一層通常被稱為容器層,容器層之下的都叫鏡像層。

制作鏡像有兩種方式:

  • 基于容器制作
  • 基于其他鏡像,構建DockerFile制作

1.基于容器制作:docker commit

基于容器制作比較簡單,當我們啟動一個容器后,會對容器內部進行一些處理,如寫入一些文件等等,如果想要創建另一個容器,同時也能擁有這些文件,那么就可以基于容器制作鏡像,命令為:

docker commit -m="要提交的描述信息" -a="作者" 容器ID 要創建的目標鏡像名:[標簽名]

目前有一個tomcat的本地鏡像:

1.1 創建容器并添加文件

創建啟動容器,添加文件:

-bash-4.2# docker run -it -p 1234:8080 tomcat /bin/bash root@9d6740173a6c:/usr/local/tomcat# cd webapps root@9d6740173a6c:/usr/local/tomcat/webapps# mkdir ROOT root@9d6740173a6c:/usr/local/tomcat/webapps# cd ROOT root@9d6740173a6c:/usr/local/tomcat/webapps/ROOT# echo hello >> index.html

啟動tomcat:

-bash-4.2# docker exec -it 9d /bin/bash root@9d6740173a6c:/usr/local/tomcat# cd bin/ root@9d6740173a6c:/usr/local/tomcat/bin# ls bootstrap.jar commons-daemon-native.tar.gz digest.sh shutdown.sh version.sh catalina-tasks.xml commons-daemon.jar makebase.sh startup.sh catalina.sh configtest.sh migrate.sh tomcat-juli.jar ciphers.sh daemon.sh setclasspath.sh tool-wrapper.sh root@9d6740173a6c:/usr/local/tomcat/bin# ./startup.sh Using CATALINA_BASE: /usr/local/tomcat Using CATALINA_HOME: /usr/local/tomcat Using CATALINA_TMPDIR: /usr/local/tomcat/temp Using JRE_HOME: /usr/local/openjdk-11 Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar Using CATALINA_OPTS: Tomcat started.

訪問效果:

1.2 制作鏡像
-bash-4.2# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 9d6740173a6c tomcat "/bin/bash" 9 minutes ago Up 9 minutes 0.0.0.0:1234->8080/tcp, :::1234->8080/tcp inspiring_tereshkova-bash-4.2# docker commit -m="add index.html" -a="aruba" 9d tomcat-hello:1.0 sha256:ba5599c90061b73afe32fa7b44b668a4797f1425d69fcd090ea822522723e5b5

查看鏡像:

-bash-4.2# docker images REPOSITORY TAG IMAGE ID CREATED SIZE tomcat-hello 1.0 ba5599c90061 57 seconds ago 680MB tomcat latest fb5657adc892 8 months ago 680MB
1.3 使用鏡像

基于剛剛制作的鏡像,創建啟動容器:

-bash-4.2# docker run -it -p 1244:8080 tomcat-hello:1.0 /bin/bash root@e7cc44f00318:/usr/local/tomcat# ./bin/startup.sh Using CATALINA_BASE: /usr/local/tomcat Using CATALINA_HOME: /usr/local/tomcat Using CATALINA_TMPDIR: /usr/local/tomcat/temp Using JRE_HOME: /usr/local/openjdk-11 Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar Using CATALINA_OPTS: Tomcat started.

訪問效果:

2.基于DockerFile制作鏡像

DockerFile就是一個包含命令和參數的腳本,基于基礎鏡像,構建一個新的鏡像

命令描述
FROM基礎鏡像
MAINTAINER維護者、作者
RUN容器構建時需要運行的命令
EXPOSE當前容器對外暴露的端口
WORKDIR終端默認登錄進來的工作目錄
ENV設置環境變量
ADD將宿主機目錄下的文件拷貝進鏡像,會自動處理URL和解壓tar壓縮包
COPY拷貝文件和目錄到鏡像中
VOLUME容器數據卷
CMD指定一個容器啟動時要運行的命令,只有一條會生效,并會被docker run后跟的命令代替
ENTRYPOINT指定一個容器啟動時要運行的命令
ONBUILD當構建一個被繼承的Dockerfile時運行命令,父鏡像在被子繼承后父鏡像的onbuild被觸發

每執行一條命令,都會生成一層新的鏡像層

hub上拉取下來的centos鏡像不帶vim編輯器,我們基于該鏡像制作一個新的,并帶上vim

2.1 準備工作(yum源問題)

2.1.1 拉取centos

docker pull centos

2.1.2 yum源問題

我這邊拉取到的是centos8,centos7可能是沒有問題的,創建和啟動一個centos8容器后,使用yum下載一直報下載不到repo源:

[root@19bad3f699e6 yum]# yum install wget Failed to set locale, defaulting to C.UTF-8 CentOS Linux 8 - AppStream 48 B/s | 38 B 00:00 Error: Failed to download metadata for repo 'appstream': Cannot prepare internal mirrorlist: No URLs in mirrorlist

所以DockerFile構建時,使用yum也會報錯

嘗試手動解除repo中的baseUrl注釋,默認baseUrl是被注釋的

cat /etc/yum.repos.d/CentOS-Linux-AppStream.repo # CentOS-Linux-AppStream.repo # # The mirrorlist system uses the connecting IP address of the client and the # update status of each mirror to pick current mirrors that are geographically # close to the client. You should use this for CentOS updates unless you are # manually picking other mirrors. # # If the mirrorlist does not work for you, you can try the commented out # baseurl line instead.[appstream] name=CentOS Linux $releasever - AppStream mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=AppStream&infra=$infra #baseurl=http://mirror.centos.org/$contentdir/$releasever/AppStream/$basearch/os/ gpgcheck=1 enabled=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial

通過vi將baseUrl的注釋去除,并且注釋掉mirrorlist:

vi /etc/yum.repos.d/CentOS-Linux-AppStream.repo # CentOS-Linux-AppStream.repo # # The mirrorlist system uses the connecting IP address of the client and the # update status of each mirror to pick current mirrors that are geographically # close to the client. You should use this for CentOS updates unless you are # manually picking other mirrors. # # If the mirrorlist does not work for you, you can try the commented out # baseurl line instead.[appstream] name=CentOS Linux $releasever - AppStream mirrorlist=http://mirrorlist.centos.org/?#release=$releasever&arch=$basearch&repo=AppStream&infra=$infra baseurl=http://mirror.centos.org/$contentdir/$releasever/AppStream/$basearch/os/ gpgcheck=1 enabled=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial

再次報錯,不過這次可以看到是哪個地址請求不到了:

進入http://mirror.centos.org/centos/8/后,發現并沒有AppStream目錄:

2.1.3 解決yum源問題

在http://mirror.centos.org/centos/中查找,發現AppStream和BaseOS搬到了http://mirror.centos.org/centos/8-stream/下:

需要將repo文件中的$releasever換成8-stream:

vi CentOS-Linux-BaseOS.repo vi CentOS-Linux-AppStream.repo

CentOS-Linux-BaseOS.repo修改后:

# CentOS-Linux-BaseOS.repo # # The mirrorlist system uses the connecting IP address of the client and the # update status of each mirror to pick current mirrors that are geographically # close to the client. You should use this for CentOS updates unless you are # manually picking other mirrors. # # If the mirrorlist does not work for you, you can try the commented out # baseurl line instead.[baseos] name=CentOS Linux $releasever - BaseOS mirrorlist=http://mirrorlist.centos.org/?release=8-stream&arch=$basearch&repo=BaseOS&infra=$infra #baseurl=http://mirror.centos.org/$contentdir/$releasever/BaseOS/$basearch/os/ gpgcheck=1 enabled=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial

CentOS-Linux-AppStream.repo修改后:

# CentOS-Linux-AppStream.repo # # The mirrorlist system uses the connecting IP address of the client and the # update status of each mirror to pick current mirrors that are geographically # close to the client. You should use this for CentOS updates unless you are # manually picking other mirrors. # # If the mirrorlist does not work for you, you can try the commented out # baseurl line instead.[appstream] name=CentOS Linux $releasever - AppStream mirrorlist=http://mirrorlist.centos.org/?release=8-stream&arch=$basearch&repo=AppStream&infra=$infra #baseurl=http://mirror.centos.org/$contentdir/$releasever/AppStream/$basearch/os/ gpgcheck=1 enabled=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial

再次嘗試安裝wget,即可成功下載安裝了

2.1.4 將容器打包鏡像
后面centos鏡像就使用該容器的

-bash-4.2# docker commit -m="yum" -a="aruba" ff centos-yum:1.0
2.2 DockerFile文件編寫
vi dockerfile

內容為:

# 基礎鏡像 FROM centos-yum:1.0 MAINTAINER aruba# 申明一個變量 ENV path /usr/local # 設置工作目錄 WORKDIR $path# 安裝vim RUN yum install -y vimEXPOSE 8080# 最后執行命令 CMD /bin/bash

最后加上CMD /bin/bash后,如果創建容器時不指定后面的命令,那么會自動執行CMD命令進入虛擬終端

2.3 構建鏡像

語法:docker build -f dockerfile名稱 -t 新建的鏡像名:TAG .

docker build -f dockerfile -tcentos-vim:1.0 .

最后成功創建的信息:

創建啟動容器,已經可以使用vim了:

-bash-4.2# docker run -itcentos-vim:1.0 [root@56771cf32cbb local]# vim 1.txt

四、數據卷

前面我們了解到,容器啟動是在鏡像層上添加了一個容器層,擁有獨立的進程,也擁有獨立的數據存儲,一旦容器不制作成鏡像就被刪除,那么原先容器內部的數據也會刪除
數據卷打通了宿主機和容器之間的橋梁,可以將目錄或文件掛載到一個或多個容器中,實現數據的持久化和容器間共享

1. 數據卷使用

1.1 創建容器

創建容器時,指定數據卷映射,語法為:

docker run -it -v /宿主機絕對路徑:/容器內目錄[:ro] 鏡像名[:ro]為可選項,表示只讀

在宿主機創建文件夾,并映射到容器中:

-bash-4.2# mkdir shared -bash-4.2# docker run -it -v ./shared:/root/c-shared centos-vim:1.0 docker: Error response from daemon: create ./shared: "./shared" includes invalid characters for a local volume name, only "[a-zA-Z0-9][a-zA-Z0-9_.-]" are allowed. If you intended to pass a host directory, use absolute path. See 'docker run --help'. -bash-4.2# docker run -it -v /root/shared:/root/c-shared centos-vim:1.0

可以通過docker inspect中查找到數據卷信息:

1.2 容器內目錄創建文件

在容器內目錄創建一個文件:

[root@1576b2c30b88 c-shared]# cd /root/c-shared/ [root@1576b2c30b88 c-shared]# echo 123 >> a.txt

查看宿主機中文件內容:

-bash-4.2# cd /root/shared -bash-4.2# cat a.txt 123
1.3 宿主機修改文件內容

在宿主機中將文件內容修改:

-bash-4.2# vi a.txt -bash-4.2# cat a.txt 123 abc

在容器內,查看文件內容:

[root@1576b2c30b88 c-shared]# cat a.txt 123 abc
1.4 刪除容器

上面兩個例子說明了,無論是在容器內操作數據卷,還是在宿主機內操作,數據都是同步的,接下來將容器刪除:

-bash-4.2# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 1576b2c30b88 centos-vim:1.0 "/bin/sh -c /bin/bash" 6 minutes ago Exited (130) 7 seconds ago reverent_bhabha 56771cf32cbb centos-vim:1.0 "/bin/sh -c /bin/bash" 42 minutes ago Up 42 minutes 8080/tcp sad_yonath 19bad3f699e6 centos "/bin/bash" 2 hours ago Exited (1) 48 minutes ago flamboyant_kalam -bash-4.2# docker rm 15 15

宿主機內的文件還是存在的:

-bash-4.2# ls a.txt -bash-4.2# cat a.txt 123 abc

2. 構建鏡像指定數據卷

除了在創建容器時,指定數據卷外,還可以在DockerFile構建鏡像時,指定數據卷,

2.1 構建鏡像

dockerfile2文件內容:

FROM centos-vim:1.0 MAINTAINER arubaVOLUME ["/root/shared2"]CMD /bin/bash

構建鏡像:

docker build -f dockerfile2 -tcentos-share:1.0 .
2.2 創建啟動容器
docker run -it --name aruba-centoscentos-share:1.0

此時查看容器的數據卷信息:

是映射到了宿主機上的一個隨機目錄/var/lib/docker/volumes/59365ccb1af478f0c6611d8a36ac1518f9b8da8f2330e416ba197d023260e78f/_data,并且每次創建新的容器,都會產生一個新的隨機目錄

2.3 數據卷中創建文件

我們在容器數據卷中創建一個文件:

[root@4553615bd221 local]# cd /root/shared2/ [root@4553615bd221 shared2]# touch b.txt

宿主機中查看:

-bash-4.2# cd /var/lib/docker/volumes/59365ccb1af478f0c6611d8a36ac1518f9b8da8f2330e416ba197d023260e78f/_data -bash-4.2# ls b.txt
2.3 刪除容器
-bash-4.2# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 4553615bd221 centos-share:1.0 "/bin/sh -c /bin/bash" 7 minutes ago Exited (130) 6 seconds ago aruba-centos d5f613aab62c centos-vim:1.0 "/bin/sh -c /bin/bash" 24 minutes ago Up 24 minutes 8080/tcp vibrant_hofstadter 56771cf32cbb centos-vim:1.0 "/bin/sh -c /bin/bash" About an hour ago Up About an hour 8080/tcp sad_yonath 19bad3f699e6 centos "/bin/bash" 3 hours ago Exited (1) About an hour ago flamboyant_kalam -bash-4.2# docker rm 45 45

宿主機中的文件還是存在的:

-bash-4.2# ls b.txt

3. 數據卷容器

如果多個容器要共用一個數據卷,一個個在創建時進行手動指定映射比較繁瑣,一個容器如果使用了數據卷,那么它就是一個數據卷容器,其他容器可以直接指定數據卷容器來實現共用

3.1 創建數據卷容器

基于上面的數據卷鏡像,重新創建一個:

docker run -it --name aruba-centoscentos-share:1.0
3.2 --volumes-from容器關聯

創建另外兩個容器,使用--volumes-from關聯上該數據卷容器:

docker run-it --name aruba-centos2 --volumes-from aruba-centos centos-share:1.0 docker run-it --name aruba-centos3 --volumes-from aruba-centos centos-share:1.0
3.3 數據卷中創建文件

創建的三個容器都有/root/shared2目錄,隨便找個容器進行文件的創建:

[root@86df03edebaf usr]# cd /root/shared2/ [root@86df03edebaf shared2]# touch c.txt

其他容器中也能夠看到剛剛創建的文件:

[root@ca9f28d72e9e local]# cd /root/shared2/ [root@ca9f28d72e9e shared2]# ls c.txt
3.4 刪除數據卷容器

將一開始創建的數據卷容器刪除:

-bash-4.2# docker rm 7b 7b -bash-4.2# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 86df03edebaf centos-share:1.0 "/bin/sh -c /bin/bash" 3 minutes ago Up 3 minutes 8080/tcp aruba-centos3 ca9f28d72e9e centos-share:1.0 "/bin/sh -c /bin/bash" 4 minutes ago Up 4 minutes 8080/tcp aruba-centos2 d5f613aab62c centos-vim:1.0 "/bin/sh -c /bin/bash" 35 minutes ago Up 35 minutes 8080/tcp vibrant_hofstadter 56771cf32cbb centos-vim:1.0 "/bin/sh -c /bin/bash" About an hour ago Up About an hour 8080/tcp sad_yonath 19bad3f699e6 centos "/bin/bash" 3 hours ago Exited (1) About an hour ago flamboyant_kalam

其他的容器還依然存在著數據卷:

[root@86df03edebaf shared2]# ls c.txt

以上為Docker入門操作,主要包含Docker的安裝,Docker命令,鏡像拉取,自定義鏡像,容器操作,數據卷內容

總結

以上是生活随笔為你收集整理的Docker-入门的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。