Docker初级学习指南
Docker技術探討
跟著B站狂神學習的筆記,若有不足請多擔待!!!
Docker安裝
1.卸載舊版
$ sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine去查官網吧
Docker run的運行流程圖
docker 底層原理
Docker是一個Client-Server結構的體系,Docker的守護進程運行在主機上。通過Socket從客戶端訪問!
DockerServer接收到Docker-Client的指令,就會去執行這個命令!
Docker的常用命令
幫助命令
docker version #顯示docker的版本信息 docker info #顯示docker的系統信息,包括鏡像和容器的數量 docker 命令 --help #萬能命令幫助文檔的地址:https://docs.docker.com/engine/reference
鏡像命令
容器命令
#有了鏡像才可以創建容器
1.運行容器命令
docker run [參數] 鏡像名稱#參數說明 --name="名字" 指定容器名字 -d 后臺方式運行容器 -it 以交互方式運行,進入容器查看內容 -p 指定容器的端口 -P 隨機指定端口#-p參數詳細說明 -p ip:主機端口:容器端口 #配置主機端口映射到容器端口 -p 容器端口 #指定容器端口 -p 主機端口:容器端口 #配置主機端口映射容器端口示例1:進入centos容器,以交互模式進入
docker run -it centos /bin/bash #退出容器命令 exit #停止并退出容器 快捷鍵 ctrl+P+Q #不停止容器退出2.退出容器命令
exit #停止并退出容器 快捷鍵 ctrl+P+Q #不停止容器退出3.列出運行過的容器命令
docker ps #列出當前正在運行的容器options: -a #列出所有容器的運行記錄 -n=? #顯示最近創建的n個容器 -q #只顯示容器的編號4.容器刪除命令
docker rm 容器id #刪除指定的容器,不能刪除正在運行的容器, docker rm -f $(docker ps -aq) #刪除所有的容器 docker ps -a -q|xargs docker rm #刪除所有的容器5.啟動和停止容器命令
docker start 容器id #啟動容器 docker restart 容器id #重啟容器 docker stop 容器id #停止當前運行的容器 docker kill 容器id #強制停止當前的容器常用其他命令
1.容器日志的查看
docker logs --help #幫助信息 Options:--details Show extra details provided to logs-f, --follow Follow log output--since string Show logs since timestamp (e.g. 2013-01-02T13:23:37Z) or relative (e.g. 42m for 42 minutes)-n, --tail string Number of lines to show from the end of the logs (default "all")-t, --timestamps Show timestamps--until string Show logs before a timestamp (e.g. 2013-01-02T13:23:37Z) or relative (e.g. 42m for 42 minutes)常用命令
docker logs -tf 容器id #查看容器日志信息 -t #顯示時間戳 -f #輸出日志信息 --tail #顯示num條日志 例如 docker logs -tf --tail 10 容器id #顯示容器十條日志NOTE
docker容器后臺運行,必須要有一個前臺的進程,否則會字段停止 #編寫shell腳本循環執,使得centos容器保持運行狀態 docker run -d centos /bin/sh -c "while true;do echo hi;sleep 5;done"2.查看容器進程信息
docker top 容器idUID PID PPID C STIME TTY CMD3.查看容器的元數據
docker inspect 容器id4.進入當前正在運行的容器
docker exec 容器id #進入容器,新開一個終端,可以在里面操作 docker attach 容器id #進入容器正在執行的終端,不會啟動新的終端例子 docker exec -it 容器id /bin/bash #新開一個終端,以交互模式進入5.拷貝容器上的文件到本地
docker cp 容器id:容器中路徑 本地路徑 例如 docker cp 容器id:/home/test.txt /home #將容器中的/home/test.txt文件復制到本地home目錄下小結
作業練習
作業一:安裝Nginx
第一步 search 鏡像docker search nginx第二步 pull 下載鏡像docker pull nginx第三步 查看是否下載成功docker images第三步 run 通過鏡像啟動容器 以后臺方式運行 并將端口映射到本機3344端口docker run --name=nginx01 -d -p 3344:80 nginxDocker鏡像講解
鏡像是什么
鏡像(image)是一種輕量級、可執行的獨立軟件包,用來打包軟件運行環境和基于運行環境開發的軟件,它包含運行某個軟件所需要的所有內容,包括代碼、庫、環境變量和配置文件。
所有的應用,直接打包docker鏡像,就可以直接跑起來!
如何得到鏡像:
- 從遠程倉庫下載
- 朋友拷貝給你
- 自己制作一個鏡像DockerFile
Docker鏡像加載原理
UnionFS(聯合文件系統)
Union文件系統是一種分層、輕量級并且高性能的文件系統,它支持對文件系統的修改作為一次提交來層層的疊加,同時可以將不同目錄掛載到同一個虛擬文件系統下。Union文件系統是Docker鏡像的基礎。鏡像可以通過分層來進行繼承,基于基礎鏡像,可以制作各種具體的應用鏡像。
**特性:**一次同時加載多個文件系統,但從外面看起來,只能看到一個文件系統,聯合加載會把各層文件系統疊加起來,這樣最終文件系統包含所有底層的文件和目錄
commit鏡像
打包自己的鏡像,將鏡像層與容器層打包成新的鏡像(image)
命令
docker commit -m="描述信息" -a="作者" 容器id 鏡像名:[TAG版本]例如 docker commit -m="message" -a="tyh" 容器id centos_01:1.0容器數據卷
什么是容器數據卷
為了解決什么問題?
如果數據都在容器中,那么容器被刪除,數據也會跟著被刪除! 需求:數據可以持久化
例如:MySQL容器被刪除,數據庫數據也會丟失!因此,希望 Mysql數據可以存儲到本地!
容器之間可以有一個數據共享的技術!Docker容器中產生的數據,同步到本地!
這就是卷技術!目錄的掛載,將容器與本地打通數據共享的通道!
一句話:容器中數據的持久化和同步操作!
使用數據卷
方法一:直接使用命令來掛載 -v
docker run -v 主機目錄:容器內目錄 鏡像名 例如 docker run -it -v 主機目錄:容器內目錄 鏡像名 /bin/bashdocker run -it -v /tmp/test/:/home --privileged=true centos /bin/bash查看是否掛載成功
docker inspect 容器id #查看容器元數據 "Mounts": [{"Type": "bind","Source": "/home", #主機目錄 "Destination": "/home", #容器目錄"Mode": "","RW": true,"Propagation": "rprivate"}],在宿主機上創建文件
Note
在centos測試時,出現 ls: cannot open directory .: Permission denied原因docker權限不夠 解決辦法: 加上 --privileged=true
具名和匿名掛載
匿名掛載
#匿名掛載 -v 容器內路徑 docker run -d -P --name nginx01 -v /ect/nginx nginx[root@localhost test]# docker run -d -v /ect/nginx --name=nginx01 nginx 67e8dbb1b92ec3294ab5d3c3f05efc756fba5a0b00037747c5ab1420f07c8368#查看所有的volume的情況 docker volume ls [root@localhost test]# docker volume ls DRIVER VOLUME NAME local ab41b5d21a8f442ca82992c86411115265e4def480d1a60fbd1dbed57dc13653具名掛載
#具名掛載[root@localhost test]# docker run -d -v tyhdevolume:/ect/nginx --name=nginx02 nginx 39c51163b75cd352f4f4594a32a8221b2d20469e7894cb403f24c833a1ba7842#查看具名掛載信息 [root@localhost test]# docker volume inspect tyhdevolume [{"Driver": "local","Labels": null,"Mountpoint": "/var/lib/docker/volumes/tyhdevolume/_data", #宿主機內路徑"Name": "tyhdevolume","Options": {},"Scope": "local"} ]所有docker容器內的卷,沒有指定目錄的情況下都是在/var/lib/docker/volumes/xxxx/_data
匿名掛載具名掛載區別
#區別-v 容器內路徑 #匿名掛載 -v 卷名:容器內路徑 #具名掛載 -v 主機目錄:容器內目錄 #指定路徑掛載擴展
#通過 -v 容器內路徑:ro rw 改變讀寫權限 ro readonly #只讀 rw readwrite #只寫docker run -d -v tyhdevolume:/ect/nginx:ro --name=nginx02 nginx docker run -d -v tyhdevolume:/ect/nginx:rw --name=nginx02 nginx#ro 只能通過宿主機來操作,容器內部無法操作 #rw(默認) 都可以操作數據卷容器
容器之間通過掛載卷實現數據共享,數據共享方式為值拷貝。一個容器壞了不會影響其他掛載的容器中的數據
--volumes-from #例如 docker run -d -v /ect/nginx --name=nginx01 nginx docker run -d --name=nginx02 --volumes-from nginx01 nginxDockerfile
DockerFile介紹
dockerfile是用來構建docker鏡像的文件!命令參數腳本
構建步驟
1.編寫一個dockerfile文件
2.docker build 構建成為一個鏡像
3.docker run 運行鏡像
4.docker push 發布鏡像
DockerFile構建過程
基礎知識
DockerFile的指令
FROM #基礎鏡像 MAINTAINER #鏡像的創建者,格式:姓名+郵箱 RUN #鏡像構建的時候需要運行的命令 ADD #添加其他鏡像內容 WORKDIR #鏡像的工作目錄 VOLUME #掛載的目錄 EXPOSE #保留端口配置 CMD #指定這個容器啟動的時候要運行的命令,只有最好一個會生效,可被替代 ENTRYPOINT #指定這個容器啟動的時候要運行的命令,可以追加命令 ONBUILD #當被繼承時觸發 COPY #將文件拷貝到鏡像中 ENV #構建的時候設置環境變量實戰測試
構建自己的centos
#1.編寫Dockerfile [root@localhost dockertest]# cat Dockerfile FROM centos MAINTAINER tyh<2445275333@qq.com>ENV MYPATH /usr/local WORKDIR $MYPATHCMD ["touch","test.txt"] CMD ["/bin/bash"]#2.運行Dockerfile構建鏡像 #命令 docker build -f dockerfile文件路徑 -t 鏡像名:[tag] .#note: dockerfile 默認路徑為 /PATH/Dockerfiledocker build -t tyhtest02 . Sending build context to Docker daemon 2.56 kB Step 1/6 : FROM centos---> 5d0da3dc9764 Step 2/6 : MAINTAINER tyh<2445275333@qq.com>---> Using cache---> f5a30999da81 Step 3/6 : ENV MYPATH /usr/local---> Using cache---> fc250ea357bc Step 4/6 : WORKDIR $MYPATH---> Using cache---> c809311c8c4a Step 5/6 : CMD touch test.txt---> Running in b8a6cee1daea---> 3ea70282d6bf Removing intermediate container b8a6cee1daea Step 6/6 : CMD /bin/bash---> Running in 9764d157d463---> ad8ee412e639 Removing intermediate container 9764d157d463 Successfully built ad8ee412e639CMD和ENTRYPOINT的區別
https://blog.csdn.net/u010900754/article/details/78526443
發布自己的鏡像
DockerHub
1.地址 https://hub.docker.com/注冊自己的賬號!
2.確定這個賬號可以登錄
3.在服務器上提交自己的鏡像
[root@localhost dockertest]# docker login --helpUsage: docker login [OPTIONS] [SERVER]Log in to a Docker registryOptions:--help Print usage-p, --password string Password-u, --username string Username4.登錄完畢后就可以提交鏡像了,就是一步docker push
登錄 #docker login -u username發布 #docker push 鏡像name:[tag]例如 #docker push tyhcentos:1.0擴展 #docker tag 鏡像id 別名 #給鏡像起別名小結
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-EzuwIbrj-1647163637162)(F:\my_notebook\java_se\image\image-20220312204644430.png)]
Docker網絡
理解Docker0
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-5f0PwZMF-1647163637163)(F:\my_notebook\java_se\image\image-20220312210452465.png)]
容器互聯–link(不建議使用)
問題:能否通過容器名直接進行網絡訪問
1.#搭建兩個安裝了ping命令的nginx服務器 [root@localhost dockertest]# docker run -d --name nginx01 nginx_with_ping:1.0 89b95b32fb596d63c18ba2bd57f7587d02308442f545597a44c5adb431fd4f0e [root@localhost dockertest]# docker run -d --name nginx02 nginx_with_ping:1.0 05002226827a6b6892561cf8583c53761b763da8a6f7392479653e3984ced22d2.#nginx02直接ping nginx01 [root@localhost dockertest]# docker exec -it nginx02 ping nginx01 ping: nginx01: Name or service not known #未能ping通3.#采用--link nginx01 搭建nginx03 [root@localhost dockertest]# docker run -d --name nginx03 --link nginx01 nginx_with_ping:1.0 fbd09b5410ba9131753ed1b72765722ebf2d2afc8aba6152d9c3567f2ca23b164.#采用nginx03直接去ping nginx01 [root@localhost dockertest]# docker exec -it nginx03 ping nginx01 PING nginx01 (172.17.0.2) 56(84) bytes of data. 64 bytes from nginx01 (172.17.0.2): icmp_seq=1 ttl=64 time=0.187 ms 64 bytes from nginx01 (172.17.0.2): icmp_seq=2 ttl=64 time=1.24 ms 64 bytes from nginx01 (172.17.0.2): icmp_seq=3 ttl=64 time=0.091 ms 64 bytes from nginx01 (172.17.0.2): icmp_seq=4 ttl=64 time=0.061 ms 64 bytes from nginx01 (172.17.0.2): icmp_seq=5 ttl=64 time=0.083 ms 64 bytes from nginx01 (172.17.0.2): icmp_seq=6 ttl=64 time=0.063 ms 64 bytes from nginx01 (172.17.0.2): icmp_seq=7 ttl=64 time=0.064 ms ^C --- nginx01 ping statistics --- 7 packets transmitted, 7 received, 0% packet loss, time 6008ms rtt min/avg/max/mdev = 0.061/0.256/1.244/0.405 ms#結果顯示可以ping通#為什么呢?#查看nginx03下的/etc/hosts [root@localhost dockertest]# docker exec -it nginx03 cat /etc/hosts 127.0.0.1 localhost ::1 localhost ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters 172.17.0.2 nginx01 89b95b32fb59 #將172.17.0.2 與 nginx01進行綁定 172.17.0.4 fbd09b5410ba#通過綁定域名 因此可以ping nginx01探究:docker0 中的network信息
[root@localhost dockertest]# docker network inspect bridge [{"Name": "bridge","Id": "3b16bc1d45be914edc8d8bf3afc673c25a222b64090e8b85c0a908ad27c17185","Created": "2022-03-12T16:09:54.910339931+08:00","Scope": "local","Driver": "bridge","EnableIPv6": false,"IPAM": {"Driver": "default","Options": null,"Config": [{"Subnet": "172.17.0.0/16","Gateway": "172.17.0.1"}]},"Internal": false,"Attachable": false,"Containers": {"05002226827a6b6892561cf8583c53761b763da8a6f7392479653e3984ced22d": {"Name": "nginx02","EndpointID": "95a3e4700d9063021a17bbaa951622789b29ef8c186b4bb0dc5749916e73a609","MacAddress": "02:42:ac:11:00:03","IPv4Address": "172.17.0.3/16","IPv6Address": ""},"89b95b32fb596d63c18ba2bd57f7587d02308442f545597a44c5adb431fd4f0e": {"Name": "nginx01","EndpointID": "660e4ef439ef83dd985367f03124a6267b963dc961920342a9e36f94bfc312f5","MacAddress": "02:42:ac:11:00:02","IPv4Address": "172.17.0.2/16","IPv6Address": ""},"fbd09b5410ba9131753ed1b72765722ebf2d2afc8aba6152d9c3567f2ca23b16": {"Name": "nginx03","EndpointID": "cd233724f7831d52d1b388f4fd3f2a49836a68426c91cc8ebb5d674d70e028c6","MacAddress": "02:42:ac:11:00:04","IPv4Address": "172.17.0.4/16","IPv6Address": ""}},"Options": {"com.docker.network.bridge.default_bridge": "true","com.docker.network.bridge.enable_icc": "true","com.docker.network.bridge.enable_ip_masquerade": "true","com.docker.network.bridge.host_binding_ipv4": "0.0.0.0","com.docker.network.bridge.name": "docker0","com.docker.network.driver.mtu": "1500"},"Labels": {}} ]#docker0 中存放了nginx01-03 的ip信息,起到路由轉發的作用 #docker0的局限性,無法通過容器名直接連通自定義網絡
查看docker網絡信息
#docker network ls [root@localhost dockertest]# docker network ls NETWORK ID NAME DRIVER SCOPE 3b16bc1d45be bridge bridge local 9dc950432393 host host local 3d4a887d8804 none null local網絡模式
bridge:橋接docker(默認,自身搭建網絡也使用bridge模式)
none:不配置網絡
host:和宿主機共享網絡
container:容器網絡連通
創建網絡
#命令 docker network creat [options] 網絡名 #docker network create --driver bridge --subnet 192.168.0.0/16 --gateway 192.168.0.1 網絡名#1.搭建自己的網絡 [root@localhost dockertest]# docker network create --driver bridge --subnet 192.168.0.0/16 --gateway 192.168.0.1 tyhnet f3fa1bcb0dfceb65a3859044910320e81f9cebd5f8f06e6e77f921424fedb6e0#2.查看網絡信息 [root@localhost dockertest]# docker network ls NETWORK ID NAME DRIVER SCOPE 3b16bc1d45be bridge bridge local 9dc950432393 host host local 3d4a887d8804 none null local f3fa1bcb0dfc tyhnet bridge local#3.查看tyhnet的元數據 [root@localhost dockertest]# docker network inspect tyhnet [{"Name": "tyhnet","Id": "f3fa1bcb0dfceb65a3859044910320e81f9cebd5f8f06e6e77f921424fedb6e0","Created": "2022-03-13T16:54:58.181885395+08:00","Scope": "local","Driver": "bridge","EnableIPv6": false,"IPAM": {"Driver": "default","Options": {},"Config": [{"Subnet": "192.168.0.0/16","Gateway": "192.168.0.1"}]},"Internal": false,"Attachable": false,"Containers": {},"Options": {},"Labels": {}} ]#哈哈哈 配置成功 #4.在tyhnet中創建兩個nginx服務器 [root@localhost dockertest]# docker run -d --name nginx04 --net tyhnet nginx_with_ping:1.0 8d9229f120c28e7e20cbf8c2f86e9c28085e659cc4fcfc2d22619eb54f243671 [root@localhost dockertest]# docker run -d --name nginx05 --net tyhnet nginx_with_ping:1.0 35d0cfc52ade916815ab3e4531189b075192b75e7aeb6c143ea57df35aef636d#5.查看tyhnet網絡信息 [root@localhost dockertest]# docker network inspect tyhnet [{"Name": "tyhnet","Id": "f3fa1bcb0dfceb65a3859044910320e81f9cebd5f8f06e6e77f921424fedb6e0","Created": "2022-03-13T16:54:58.181885395+08:00","Scope": "local","Driver": "bridge","EnableIPv6": false,"IPAM": {"Driver": "default","Options": {},"Config": [{"Subnet": "192.168.0.0/16","Gateway": "192.168.0.1"}]},"Internal": false,"Attachable": false,"Containers": {"35d0cfc52ade916815ab3e4531189b075192b75e7aeb6c143ea57df35aef636d": {"Name": "nginx05","EndpointID": "ce58f11752d8073b82b2332779dfb67dd0bb78df0cf6f24cef0b8aa849c8cb60","MacAddress": "02:42:c0:a8:00:03","IPv4Address": "192.168.0.3/16","IPv6Address": ""},"8d9229f120c28e7e20cbf8c2f86e9c28085e659cc4fcfc2d22619eb54f243671": {"Name": "nginx04","EndpointID": "cec851a91345953260469cd2787558976f3601b48476519366bba5cadbb3bbbd","MacAddress": "02:42:c0:a8:00:02","IPv4Address": "192.168.0.2/16","IPv6Address": ""}},"Options": {},"Labels": {}} ]#nginx04 和 05 成功入網#6.看看是否可以通過容器名ping通 [root@localhost dockertest]# docker exec -it nginx04 ping nginx05 PING nginx05 (192.168.0.3) 56(84) bytes of data. 64 bytes from nginx05.tyhnet (192.168.0.3): icmp_seq=1 ttl=64 time=0.199 ms 64 bytes from nginx05.tyhnet (192.168.0.3): icmp_seq=2 ttl=64 time=0.477 ms 64 bytes from nginx05.tyhnet (192.168.0.3): icmp_seq=3 ttl=64 time=0.062 ms 64 bytes from nginx05.tyhnet (192.168.0.3): icmp_seq=4 ttl=64 time=0.062 ms ^C --- nginx05 ping statistics --- 4 packets transmitted, 4 received, 0% packet loss, time 3004ms rtt min/avg/max/mdev = 0.062/0.200/0.477/0.169 ms#自定義的網絡可以通過容器名直接ping通結論
自定義的網絡可以通過容器名直接ping通,而默認的docker0不支持
自定義的網絡有助于進行容器間區域隔離
官方解釋
User-defined bridges provide automatic DNS resolution between containers. Containers on the default bridge network can only access each other by IP addresses, unless you use the --link option, which is considered legacy. On a user-defined bridge network, containers can resolve each other by name or alias.大意:用戶自定義的網卡可以在容器之間提供自動的 DNS 解析
網絡打通
#命令 #docker network connect --help [root@localhost dockertest]# docker network connect --helpUsage: docker network connect [OPTIONS] NETWORK CONTAINERConnect a container to a networkOptions:--alias stringSlice Add network-scoped alias for the container--help Print usage--ip string IP Address--ip6 string IPv6 Address--link list Add link to another container (default [])--link-local-ip stringSlice Add a link-local address for the container實驗
#1.打通tyhnet,使得連接在docker0的nginx01 能夠和tyhnet下的nginx04通信 [root@localhost dockertest]# docker network connect tyhnet nginx01#2.測試雙方通信 [root@localhost dockertest]# docker exec -it nginx01 ping nginx04 PING nginx04 (192.168.0.2) 56(84) bytes of data. 64 bytes from nginx04.tyhnet (192.168.0.2): icmp_seq=1 ttl=64 time=0.216 ms 64 bytes from nginx04.tyhnet (192.168.0.2): icmp_seq=2 ttl=64 time=0.086 ms 64 bytes from nginx04.tyhnet (192.168.0.2): icmp_seq=3 ttl=64 time=0.109 ms 64 bytes from nginx04.tyhnet (192.168.0.2): icmp_seq=4 ttl=64 time=0.459 ms 64 bytes from nginx04.tyhnet (192.168.0.2): icmp_seq=5 ttl=64 time=0.071 ms ^C --- nginx04 ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 4008ms rtt min/avg/max/mdev = 0.071/0.188/0.459/0.144 ms#nginx01可以直接和nginx04通信#3.測試nginx01和nginx05 [root@localhost dockertest]# docker exec -it nginx01 ping nginx05 PING nginx05 (192.168.0.3) 56(84) bytes of data. 64 bytes from nginx05.tyhnet (192.168.0.3): icmp_seq=1 ttl=64 time=0.263 ms 64 bytes from nginx05.tyhnet (192.168.0.3): icmp_seq=2 ttl=64 time=0.076 ms 64 bytes from nginx05.tyhnet (192.168.0.3): icmp_seq=3 ttl=64 time=0.077 ms 64 bytes from nginx05.tyhnet (192.168.0.3): icmp_seq=4 ttl=64 time=0.082 ms 64 bytes from nginx05.tyhnet (192.168.0.3): icmp_seq=5 ttl=64 time=0.398 ms ^C --- nginx05 ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 4004ms rtt min/avg/max/mdev = 0.076/0.179/0.398/0.130 ms#nginx01可以和nginx05通信#結論 通過docker network connect命令,使得nginx01接通tyhnet,通過在nginx01上裝雙網卡實現 #nginx01的雙網卡!!! "Networks": {"bridge": {"IPAMConfig": null,"Links": null,"Aliases": null,"NetworkID": "3b16bc1d45be914edc8d8bf3afc673c25a222b64090e8b85c0a908ad27c17185","EndpointID": "660e4ef439ef83dd985367f03124a6267b963dc961920342a9e36f94bfc312f5","Gateway": "172.17.0.1","IPAddress": "172.17.0.2","IPPrefixLen": 16,"IPv6Gateway": "","GlobalIPv6Address": "","GlobalIPv6PrefixLen": 0,"MacAddress": "02:42:ac:11:00:02"},"tyhnet": {"IPAMConfig": {},"Links": null,"Aliases": ["89b95b32fb59"],"NetworkID": "f3fa1bcb0dfceb65a3859044910320e81f9cebd5f8f06e6e77f921424fedb6e0","EndpointID": "69d2721974ee2a8985d6ca5d365d8b5a58c5dccb3d7840c63d49248ea106f69b","Gateway": "192.168.0.1","IPAddress": "192.168.0.4","IPPrefixLen": 16,"IPv6Gateway": "","GlobalIPv6Address": "","GlobalIPv6PrefixLen": 0,"MacAddress": "02:42:c0:a8:00:04"}##Docker學習任重道遠##
總結
以上是生活随笔為你收集整理的Docker初级学习指南的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2021年前端面试题及答案
- 下一篇: Android中ExpandableLi