Docker精華 ,超全文件!

死磕程式設計發表於2020-06-21

我們的口號是:再小的帆也能遠航,人生不設限!!   


 

學習規劃:繼續上篇 《Docker入門》https://www.cnblogs.com/dk1024/p/13121389.html 

繼續講解=========》》》》》》》》》》》》》》》》》》》》》》》》》

 

 

 

 

一、容器資料卷

1、什麼是容器資料卷:Docker是將應用和環境打包成一個映象,釋出到伺服器,這個跑起來的容器如果不小心刪除掉,呢麼資料就會全部丟失,尤其是Mysql之類的容器,name現在就有一個需求,資料持久化到本地,這就是卷技術,即:目錄的掛載,將我們的容器內的目錄掛載到Linux某個目錄下,說白了就是一種同步的機制,就是容器的持久化和同步操作,而且容器之間也是可以共享資料的。

 

 

 2、體驗卷技術

實戰:直接使用命令掛載  -v

#目的:啟動centos,把容器內 /home 掛載到 /home/ceshi 下

#檢查Linux /home目錄下是否乾淨

[root@ldk ~]# cd /home/
[root@ldk home]#

[root@ldk home]# ls


#啟動centos 容器

[root@ldk /]# docker run -it -v /home/ceshi:/home centos /bin/bash

 

#進入 容器 檢視/home目錄


[root@2ce40ff3194b /]# cd /home/
[root@2ce40ff3194b home]# ls
[root@2ce40ff3194b home]#

 

#檢視 宿主機目錄 /home目錄  發現多了個  ceshi資料夾

[root@ldk ~]# cd /home/
[root@ldk home]# ls
 ceshi
[root@ldk home]#

 

#在 宿主機,確認卷是否掛載成功了

[root@ldk home]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2ce40ff3194b centos "/bin/bash" 4 minutes ago Up 4 minutes boring_swanson
[root@ldk home]# docker inspect 2ce40ff3194b
[
{
"Id": "2ce40ff3194b192421024cf4b56606c6dfe3b49c504f41698f0b7ec38e49b71c",
"Created": "2020-06-20T06:05:30.539438785Z",
"Path": "/bin/bash",
"Args": [],
"State": {
"Status": "running",
"Running": true,
"Paused": false,
"Restarting": false,
"OOMKilled": false,
"Dead": false,
"Pid": 6971,

...

"Mounts": [
{
"Type": "bind",
"Source": "/home/ceshi",   #宿主機地址
"Destination": "/home",    #docker容器內地址
"Mode": "",
"RW": true,
"Propagation": "rprivate"
}
],

...

 

#測試掛載效果(在 宿主機 /home/ceshi 下新增ldk.java  檢查是否可以對映到 容器 內的/home 目錄下)

 

#宿主機

[root@ldk home]# cd ceshi
[root@ldk ceshi]# ll
total 0
[root@ldk ceshi]# touch ldk.java
[root@ldk ceshi]# ll
total 0
-rw-r--r-- 1 root root 0 Jun 20 14:17 ldk.java
[root@ldk ceshi]#

#容器內

[root@2ce40ff3194b /]# cd /home/
[root@2ce40ff3194b home]# ls
ldk.java     
[root@2ce40ff3194b home]#

#檢視發現,同步成功! 同理,停止容器,修改 宿主機的ldk.java 檔案,再重啟容器,檢視容器內的ldk.java,同樣是可以同步成功的。只要容器存在,就可以同步成功。注:刪除容器,宿主機的掛載目錄還是存在的。這也間接說明,兩份檔案佔用了兩份儲存。

 

實戰:Mysql 同步資料

 

#獲取mysql映象

[root@ldk /]# docker pull mysql Using default tag: latest latest: Pulling from library/mysql 8559a31e96f4: Already exists d51ce1c2e575: Already exists c2344adc4858: Already exists fcf3ceff18fc: Already exists 16da0c38dc5b: Already exists b905d1797e97: Already exists 4b50d1c6b05c: Already exists c75914a65ca2: Pull complete 1ae8042bdd09: Pull complete 453ac13c00a3: Pull complete 9e680cd72f08: Pull complete a6b5dc864b6c: Pull complete Digest: sha256:8b7b328a7ff6de46ef96bcf83af048cb00a1c86282bfca0cb119c84568b4caf6 Status: Downloaded newer image for mysql:latest docker.io/library/mysql:latest

#啟動mysql
-d 後臺執行
-p 埠對映
-v 卷掛載 這邊我們掛載兩個目錄
-e mysql密碼
--name 容器名字 [root@ldk /]# docker run -d -p 3310:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql01 mysql:5.7 8126f9c18eecb4581a33c1bbab4b5b829617d25104ed7b9004fe751055a9606a [root@ldk /]#

#啟動並且掛載成功,按照centos容器掛載規則,檢視是否掛載

 

 

 

 

二、具名掛載和匿名掛載

#匿名掛載  Nginx, 只指定容器內路徑,不指定容器外路徑

[root@ldk ~]# docker run -d -P --name nginx01 -v /etc/nginx nginx 9aef70a2a4a5e91687d639dc65635968c8d86e0c456be4eff9665ce2870ced94

#檢視所有掛載情況 [root@ldk ~]# docker volume ls DRIVER VOLUME NAME local 9b560fb95ed9e801600ee4fc84d8566575185ff04eec984bd8b2a4bcff9459f1 local 12c2c93d2d80e10ea8545ff78fc7e3fa2eb03400bcc5a7bf475b36d64ec6f48a local 78f7f7c39370425190946b0a29288043e2999e9f0c18078b045c89895bd57264 [root@ldk ~]#

#具名掛載 格式:-v 卷名:容器內目錄(大多數情況都是具名方式)

[root@ldk ~]# docker run -d -P --name nginx02 -v jumign-nginx:/etc/nginx nginx
709e5d31a7adfc79fa491edabfec81048a04be3df22dcbb6edf419bfd16de5fd
[root@ldk ~]# docker volume ls
DRIVER VOLUME NAME
local 9b560fb95ed9e801600ee4fc84d8566575185ff04eec984bd8b2a4bcff9459f1
local 12c2c93d2d80e10ea8545ff78fc7e3fa2eb03400bcc5a7bf475b36d64ec6f48a
local 78f7f7c39370425190946b0a29288043e2999e9f0c18078b045c89895bd57264
local jumign-nginx
[root@ldk ~]#

 

 

#檢視inspect,所有的卷都掛載在:/var/lib/docker/volumes  下

[root@ldk ~]# docker volume inspect jumign-nginx
[
{
"CreatedAt": "2020-06-20T16:53:27+08:00",
"Driver": "local",
"Labels": null,
"Mountpoint": "/var/lib/docker/volumes/jumign-nginx/_data",
"Name": "jumign-nginx",
"Options": null,
"Scope": "local"
}
]
[root@ldk ~]#

 

#進入宿主機,驗證卷的掛載情況

[root@ldk ~]# cd /var/lib/docker/volumes
[root@ldk volumes]# ll
total 40
drwxr-xr-x 3 root root 4096 Jun 20 16:48 12c2c93d2d80e10ea8545ff78fc7e3fa2eb03400bcc5a7bf475b36d64ec6f48a
drwxr-xr-x 3 root root 4096 Jun 20 16:36 78f7f7c39370425190946b0a29288043e2999e9f0c18078b045c89895bd57264
drwxr-xr-x 3 root root 4096 Jun 20 16:36 9b560fb95ed9e801600ee4fc84d8566575185ff04eec984bd8b2a4bcff9459f1
drwxr-xr-x 3 root root 4096 Jun 20 16:53 jumign-nginx
-rw------- 1 root root 32768 Jun 20 16:53 metadata.db
[root@ldk volumes]#

#繼續深入檢視jumign-nginx 掛載情況,看到了想要的nginx.conf配置檔案

[root@ldk volumes]# cd jumign-nginx/_data/
[root@ldk _data]# ll
total 40
drwxr-xr-x 2 root root 4096 Jun 20 16:53 conf.d
-rw-r--r-- 1 root root 1007 May 26 23:00 fastcgi_params
-rw-r--r-- 1 root root 2837 May 26 23:00 koi-utf
-rw-r--r-- 1 root root 2223 May 26 23:00 koi-win
-rw-r--r-- 1 root root 5231 May 26 23:00 mime.types
lrwxrwxrwx 1 root root 22 May 26 23:01 modules -> /usr/lib/nginx/modules
-rw-r--r-- 1 root root 643 May 26 23:01 nginx.conf
-rw-r--r-- 1 root root 636 May 26 23:00 scgi_params
-rw-r--r-- 1 root root 664 May 26 23:00 uwsgi_params
-rw-r--r-- 1 root root 3610 May 26 23:00 win-utf
[root@ldk _data]#

#擴充:
ro readonly 只讀:設定之後,只能通過容器外部進行改寫,容器內不禁止操作,且許可權不可修改
rw readwrite 可讀可寫,容器內外均可讀寫


docker run -d -P --name nginx02 -v jumign-nginx:/etc/nginx:ro nginx
docker run -d -P --name nginx02 -v jumign-nginx:/etc/nginx:rw nginx
 

 

 

三、資料卷之Dockerfile

  初識Dockerfile:之前我們使用commit命令生成過映象,我們也可以使用Dockerfile構建映象,說白了,Dockerfile就是Docker映象的構建檔案,就是一段命令指令碼!

 小試一把:

#在宿主機 /home/docker-test-volume/ 下新建一個dockerfile1的檔案
[root@ldk /]# cd /home/
[root@ldk home]# mkdir docker-test-volume
[root@ldk home]# cd docker-test-volume/
[root@ldk docker-test-volume]# ll
total 0
[root@ldk docker-test-volume]# vim dockerfile1

#編寫指令碼(開頭大寫,分層構建):

FROM centos


VOLUME ["volume01","volume02"]


CMD echo "------build end------"


CMD /bin/bash

#指令碼解釋:準備一個基礎的centos映象;
      設定具名掛載目錄為volum01和volume02,建立的時候就掛載 ;
      構建完列印:------build end------;
      預設bash控制檯;

#執行指令碼

[root@ldk docker-test-volume]# docker build -f /home/docker-test-volume/dockerfile1 -t ldk/centos:1.0 .
Sending build context to Docker daemon 2.048kB
Step 1/4 : FROM centos
---> 470671670cac
Step 2/4 : VOLUME ["volume01","volume02"]
---> Running in 771370c6dfef
Removing intermediate container 771370c6dfef
---> 1941426d1d91
Step 3/4 : CMD echo "------build end------"
---> Running in 070cbd782e00
Removing intermediate container 070cbd782e00
---> c947d804f177
Step 4/4 : CMD /bin/bash
---> Running in 817099ec4089
Removing intermediate container 817099ec4089
---> 49a84ce17460
Successfully built 49a84ce17460
Successfully tagged ldk/centos:1.0

#建立映象成功

[root@ldk docker-test-volume]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ldk/centos 1.0 49a84ce17460 6 minutes ago 237MB
tomcat latest 2eb5a120304e 10 days ago 647MB
nginx latest 2622e6cca7eb 10 days ago 132MB
mysql 5.7 9cfcce23593a 11 days ago 448MB
mysql latest be0dbf01a0f3 11 days ago 541MB
centos latest 470671670cac 5 months ago 237MB
hello-world latest bf756fb1ae65 5 months ago 13.3kB
[root@ldk docker-test-volume]#

 

 

#啟動自己構建的容器

[root@ldk /]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ldk/centos 1.0 49a84ce17460 8 minutes ago 237MB
tomcat latest 2eb5a120304e 10 days ago 647MB
nginx latest 2622e6cca7eb 10 days ago 132MB
mysql 5.7 9cfcce23593a 11 days ago 448MB
mysql latest be0dbf01a0f3 11 days ago 541MB
centos latest 470671670cac 5 months ago 237MB
hello-world latest bf756fb1ae65 5 months ago 13.3kB
[root@ldk /]# docker run -it 49a84ce17460 /bin/bash
[root@7b0a9902dbeb /]# ls -l
total 56
lrwxrwxrwx 1 root root 7 May 11 2019 bin -> usr/bin
drwxr-xr-x 5 root root 360 Jun 20 09:44 dev
drwxr-xr-x 1 root root 4096 Jun 20 09:44 etc
drwxr-xr-x 2 root root 4096 May 11 2019 home
lrwxrwxrwx 1 root root 7 May 11 2019 lib -> usr/lib
lrwxrwxrwx 1 root root 9 May 11 2019 lib64 -> usr/lib64
drwx------ 2 root root 4096 Jan 13 21:48 lost+found
drwxr-xr-x 2 root root 4096 May 11 2019 media
drwxr-xr-x 2 root root 4096 May 11 2019 mnt
drwxr-xr-x 2 root root 4096 May 11 2019 opt
dr-xr-xr-x 95 root root 0 Jun 20 09:44 proc
dr-xr-x--- 2 root root 4096 Jan 13 21:49 root
drwxr-xr-x 11 root root 4096 Jan 13 21:49 run
lrwxrwxrwx 1 root root 8 May 11 2019 sbin -> usr/sbin
drwxr-xr-x 2 root root 4096 May 11 2019 srv
dr-xr-xr-x 13 root root 0 Jun 20 09:31 sys
drwxrwxrwt 7 root root 4096 Jan 13 21:49 tmp
drwxr-xr-x 12 root root 4096 Jan 13 21:49 usr
drwxr-xr-x 20 root root 4096 Jan 13 21:49 var
drwxr-xr-x 2 root root 4096 Jun 20 09:44 volume01   //這兩個就是我們自動掛載的資料卷目錄
drwxr-xr-x 2 root root 4096 Jun 20 09:44 volume02
[root@7b0a9902dbeb /]#

 

 

#驗證是否掛載成功(在容器內部新建一個 av.txt檔案,去宿主機尋找被同步的av.txt)

#進入容器內的掛載目錄 /volum01,新建檔案 av.txt

[root@7b0a9902dbeb /]# cd volume01
[root@7b0a9902dbeb volume01]# ls
[root@7b0a9902dbeb volume01]# touch av.txt
[root@7b0a9902dbeb volume01]# ls
av.txt
[root@7b0a9902dbeb volume01]#

 

 

#進入宿主機 

[root@ldk ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7b0a9902dbeb 49a84ce17460 "/bin/bash" 5 minutes ago Up 5 minutes serene_napier
709e5d31a7ad nginx "/docker-entrypoint.…" 57 minutes ago Up 57 minutes 0.0.0.0:32769->80/tcp nginx02
9aef70a2a4a5 nginx "/docker-entrypoint.…" About an hour ago Up About an hour 0.0.0.0:32768->80/tcp nginx01
[root@ldk ~]# docker inspect 7b0a9902dbeb
...
]
},
"GraphDriver": {
"Data": {
"LowerDir": "/var/lib/docker/overlay2/11bd55866068e52271cf7f50ab7adf3fdb1eef887f0f3560810ce83d36a44fcb-init/diff:/var/lib/docker/overlay2/07e92bfd3de681a8ac6ef84545406794783f828fd4f8f0303be4f18ae4e4e198/diff",
"MergedDir": "/var/lib/docker/overlay2/11bd55866068e52271cf7f50ab7adf3fdb1eef887f0f3560810ce83d36a44fcb/merged",
"UpperDir": "/var/lib/docker/overlay2/11bd55866068e52271cf7f50ab7adf3fdb1eef887f0f3560810ce83d36a44fcb/diff",
"WorkDir": "/var/lib/docker/overlay2/11bd55866068e52271cf7f50ab7adf3fdb1eef887f0f3560810ce83d36a44fcb/work"
},
"Name": "overlay2"
},
"Mounts": [
{
"Type": "volume",
"Name": "d4a5330aa541110183f279343a769ec93712ec71f6b71ebb71a76a452e3e21e2",
"Source": "/var/lib/docker/volumes/d4a5330aa541110183f279343a769ec93712ec71f6b71ebb71a76a452e3e21e2/_data",
"Destination": "volume01",
"Driver": "local",
"Mode": "",
"RW": true,
"Propagation": ""
},
...
[root@ldk ~]# cd /var/lib/docker/volumes/d4a5330aa541110183f279343a769ec93712ec71f6b71ebb71a76a452e3e21e2/_data
[root@ldk _data]# ll
total 0
-rw-r--r-- 1 root root 0 Jun 20 17:50 av.txt
[root@ldk _data]#


 

 

四、資料卷容器

多個mysql同步資料!

#啟動我們自己製作的映象(注:啟動命名最後一個引數,要麼填寫映象id。要麼填寫 映象名稱+tag,否則會報錯)
[root@ldk /]# docker run -it --name docker01 ldk/centos:1.0
[root@8a3e0b293bf9 /]# ls
bin  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var  volume01    volume02

#啟動成功之後 退出容器(Control + P + Q)

[root@8a3e0b293bf9 /]# [root@ldk /]#

#依賴docker01啟動docker02,docker01就叫做資料卷容器 [root@ldk /]# docker run -it --name docker02 --volumes-from docker01 ldk/centos:1.0 [root@ee6fa31cd361 /]# ls bin dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var volume01 volume02 [root@ee6fa31cd361 /]# cd volume01 [root@ee6fa31cd361 volume01]# ls

#進入docker01內部在掛載目錄 volumes01下建立一個檔案

[root@ldk /]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ee6fa31cd361 ldk/centos:1.0 "/bin/sh -c /bin/bash" About a minute ago Up About a minute docker02
8a3e0b293bf9 ldk/centos:1.0 "/bin/sh -c /bin/bash" 4 minutes ago Up 4 minutes docker01
[root@ldk /]# docker attach 8a3e0b293bf9
[root@8a3e0b293bf9 /]# cd volume01
[root@8a3e0b293bf9 volume01]# ls
[root@8a3e0b293bf9 volume01]# touch docker01
[root@8a3e0b293bf9 volume01]# ls
docker01
[root@8a3e0b293bf9 volume01]#


#進入docker02內部在掛載目錄 volumes01 檢視是否有同步更新的檔案
[root@ee6fa31cd361 volume01]# ls
docker01
[root@ee6fa31cd361 volume01]# 
#同理:創造一個docker03依賴docker01,效果一樣,時拿出docker01,docker02 和docker03 已經 同步拷貝 的檔案,依然存在!

 


 

 

 

 

五、DockerFile介紹

1、基礎介紹:

  dockerfile就是用來構建docker映象的檔案,定義了一切步驟,就是一段包含命令和引數的可執行指令碼。

 

構建步驟:1、編寫一個dockerfile檔案

        2、docker build 構建成為一個映象

     3、docker run 執行映象

     4、docker push 釋出映象(DockerHub 、阿里雲映象倉庫)

 

構建過程:

  基礎知識:1、每個保留關鍵字(指令)都必須是大寫字母

        2、從上向下執行

        3、# 表示註釋

        4、每個指令都會建立一個新的映象層,並提交

 

 

 小總結:DockerFile是面向開發的,我們要釋出專案,就需要製作映象,就需要編寫dockerfile檔案,Docker映象逐漸成為企業交付的標準。

    DockerFile:構建映象的初始化檔案,原始碼。

    DockerImages:通過DockerFile構建生成的容器,最終釋出和執行的產品。

    Docker容器:容器就是映象執行起來的伺服器。

 

DockerFile指令:

FROM      #基礎映象,一切的開始
MANTAINER   #映象作者(姓名+郵箱)
RUN       #映象構建的時候需要執行的命令
ADD       #步驟中新增tomcat映象,這個tomcat壓縮包就是新增內容
WORKDIR     #映象的掛載目錄
VOLUME     #掛載的目錄位置
EXPOSE     #指定暴露埠
CMD       #指定這個容器啟動的時候要執行的命令,只有最後一個會生效,可被替代,如果替代之後不是命令,會報錯的
ENTRYPOINT   #指定這個容器啟動的時候要執行的命令,可以追加執行命令
ONBUILD     #當構建一個被繼承的DockerFile,這個時候就會執行ONBUILD 的指令,觸發指令。
COPY       #類似AD的,將我們的映象拷貝到映象中
WNV       #構建的時候這隻環境變數

 

2、實戰:構建自己的centos

 

#1、編寫DockerFile檔案

[root@ldk home]# mkdir dockerfile
[root@ldk home]# cd dockerfile/
[root@ldk dockerfile]# ll
total 0
[root@ldk dockerfile]# vim dockerfile01

DockerFile檔案內容:

FROM centos

MAINTAINER ldk<107123456@qq.com>

ENV MYPATH /usr/local
WORKDIR $MYPATH

RUN yum -y install vim
RUN yum -y install net-tools

EXPOSE 80

CMD echo $MYPATH
CMD echo "----end----"
CMD /bin/bash

#2、通過這個DockerFile構建映象

[root@ldk dockerfile]# docker build -f dockerfile01 -t ldkcentos:0.1 .
Sending build context to Docker daemon 2.048kB
Step 1/10 : FROM centos
---> 470671670cac
Step 2/10 : MAINTAINER ldk<107123456@qq.com>

...

---> Running in 58114b729de4
Removing intermediate container 58114b729de4
---> 3c797ceb67f6
Successfully built 3c797ceb67f6
Successfully tagged ldkcentos:0.1
[root@ldk dockerfile]# 

#3、構建成功,測試執行

[root@ldk dockerfile]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ldkcentos 0.1 3c797ceb67f6 5 minutes ago 317MB
ldk/centos 1.0 49a84ce17460 6 hours ago 237MB
tomcat latest 2eb5a120304e 10 days ago 647MB
nginx latest 2622e6cca7eb 10 days ago 132MB
mysql 5.7 9cfcce23593a 11 days ago 448MB
mysql latest be0dbf01a0f3 11 days ago 541MB
centos latest 470671670cac 5 months ago 237MB
hello-world latest bf756fb1ae65 5 months ago 13.3kB
[root@ldk dockerfile]#

#啟動自己構建的映象

[root@ldk dockerfile]# docker run -it ldkcentos:0.1
[root@b334b9f261bf local]#

#我們發現進入映象,直接進入了剛才DockerFile 設定的工作目錄 /usr/local 下。

#4、docker history 映象id  :檢視映象的構建過程歷史資訊,可以自己試一下。



 

 

3、實戰:DockerFile製作tomcat映象

#1、準備映象檔案  tomcat壓縮包,jdk壓縮包

#2、編寫dockerfile檔案,官方命名:DockerFile,build會自動尋找這個檔案,就不需要-f指定了

[root@ldk tomcat]# vim Dockerfile

  #檔案內容:

FROM centos
MAINTAINER ldk<107123456@qq.com>

COPY readme.txt /usr/local/readme.txt

ADD jdk-8u65-linux-x64.tar.gz /usr/local/
ADD apache-tomcat-8.0.28.tar.gz /usr/local/

RUN yum -y install vim

ENV MYPATH /usr/local
WORKDIR $MYPATH

ENV JAVA_HOME /usr/local/jdk1.8.0.65
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_MOHE/lib/tools.jar
ENV CATALINA_HOME /usr/local/apache-tomcat-8.0.28
ENV CATLINA_BASH /usr/local/apache-tomcat-8.0.28
ENV PATH $PATH:$JAVA_HOME/bin:$CATALIN_HOME/lib:$CATALINA_HOME/bin

EXPOSE 8080

CMD /usr/local/apache-tomcat-8.0.28/bin/startup.sh && tail -F /url/local/apache-tomcat-8.0.28/bin/logs/catalina.out


3、構建映象

[root@ldk tomcat]# docker build -t diytomcat .

[root@ldk tomcat]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
diytomcat latest 2835818b0158 15 minutes ago 672MB
ldkcentos 0.1 3c797ceb67f6 About an hour ago 317MB
ldk/centos 1.0 49a84ce17460 7 hours ago 237MB
tomcat latest 2eb5a120304e 10 days ago 647MB
nginx latest 2622e6cca7eb 11 days ago 132MB
mysql 5.7 9cfcce23593a 11 days ago 448MB
mysql latest be0dbf01a0f3 11 days ago 541MB
centos latest 470671670cac 5 months ago 237MB
hello-world latest bf756fb1ae65 5 months ago 13.3kB
[root@ldk tomcat]#


4、啟動映象

[root@ldk tomcat]# docker run -d -p 3310:8080 --name ldkdiytomcat -v /home/ldk/build/tomcat/test:/url/local/apache-tomcat-8.0.28/webapps/test -v /home/ldk/build/tomcat/tomcatlogs/:/url/local/apache-tomcat-8.0.28/logs diytomcat
d29fef718ec1b522847d1be13811dcfe6bd64da753c2e887fa54fa982ce2d35f

[root@ldk tomcat]# pwd
/home/ldk/build/tomcat
[root@ldk tomcat]# ll
total 8
drwxr-xr-x 2 root root 4096 Jun 21 00:54 test
drwxr-xr-x 2 root root 4096 Jun 21 00:55 tomcatlogs
[root@ldk tomcat]#ll

total 8
drwxr-xr-x 2 root root 4096 Jun 21 00:54 test
drwxr-xr-x 2 root root 4096 Jun 21 00:55 tomcatlogs
[root@ldk tomcat]#


5、訪問測試

 

 



#ok,專案釋出成功

 

 本週就暫時總結到這====》》》》

還剩下幾個模組,

有興趣的,記得留言,我後期再更,

沒有留言就不更了~

 

釋出映象到DockerHub

釋出映象到阿里雲容器服務

Docker所有流程小結

Docker0網路詳解

容器互聯--link

自定義網路

網路連通

 

本文的思路大綱是來自《狂神說》免費課程,它是一個不為任何機構組織站臺的程式愛好者,樂於開源,忠於自己,絕對寶藏男孩!

大家有興趣可以去b站參觀學習:https://space.bilibili.com/95256449/video

 

相關文章