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 docker2.阿里云鏡像加速
由于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 --help | docker的幫助命令,可以查看到相關的其他命令 |
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 rm4.其他命令
| 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 exit4.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 680MB1.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 centos2.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.repoCentOS-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-centosofficialCentOS-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鏡像就使用該容器的
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 1231.3 宿主機修改文件內容
在宿主機中將文件內容修改:
-bash-4.2# vi a.txt -bash-4.2# cat a.txt 123 abc在容器內,查看文件內容:
[root@1576b2c30b88 c-shared]# cat a.txt 123 abc1.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 abc2. 構建鏡像指定數據卷
除了在創建容器時,指定數據卷外,還可以在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.txt2.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.txt3. 數據卷容器
如果多個容器要共用一個數據卷,一個個在創建時進行手動指定映射比較繁瑣,一個容器如果使用了數據卷,那么它就是一個數據卷容器,其他容器可以直接指定數據卷容器來實現共用
3.1 創建數據卷容器
基于上面的數據卷鏡像,重新創建一個:
docker run -it --name aruba-centoscentos-share:1.03.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.03.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.txt3.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命令,鏡像拉取,自定義鏡像,容器操作,數據卷內容
總結
- 上一篇: 21天算法训练营
- 下一篇: spring源码缺失spring-cgl