2020-06-08 docker-2 實(shí)踐

安裝tomcat

  • 官方方式: --rm 用完就刪.
docker run -it --rm tomcat:9.0
  • 下載
docker pull tomcat:9.0
  • 后臺(tái)運(yùn)行,暴露端口
docker run -d -p 3355:8080 --name tomcat01 tomcat
  • 進(jìn)入docker
docker exec -it tomcat01 /bin/bash
# 沒有webapps,默認(rèn)是最小鏡像. 不必要的都剔除掉. linux命令少了.
# 保證最小可運(yùn)行環(huán)境.
  • 容器內(nèi)復(fù)制webapps.dist
cp -rf ./* /usr/local/tomcat/webapps/
  • 希望在外部操作,同步到內(nèi)部.

14 部署ES+kibana

  • 啟動(dòng)
docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.6.2 
  • 啟動(dòng)來 linux就很卡, docker status 查看cpu狀態(tài).
CONTAINER ID        NAME                CPU %               MEM USAGE / LIMIT     MEM %               NET I/O             BLOCK I/O           PIDS
a355588d89c8        elasticsearch       95.30%              590.3MiB / 972.6MiB   60.70%              656B / 0B           0B / 0B             22
44608694a619        tomcat01            0.13%               5.582MiB / 972.6MiB   0.57%               10.1kB / 63.3kB     0B / 0B             30
  • 訪問9200
{
    "name": "a355588d89c8",
    "cluster_name": "docker-cluster",
    "cluster_uuid": "WYTqvf2fTiGevHs1HTO5YA",
    "version": {
        "number": "7.6.2",
        "build_flavor": "default",
        "build_type": "docker",
        "build_hash": "ef48eb35cf30adf4db14086e8aabd07ef6fb113f",
        "build_date": "2020-03-26T06:34:37.794943Z",
        "build_snapshot": false,
        "lucene_version": "8.4.0",
        "minimum_wire_compatibility_version": "6.8.0",
        "minimum_index_compatibility_version": "6.0.0-beta1"
    },
    "tagline": "You Know, for Search"
}
  • 增加配置.啟動(dòng)ES
docker run -d --name elasticsearch01 -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node"  -e ES_JAVA_OPTS="Xms64m -Xmx512m" elasticsearch:7.6.2 

[root@localhost ~]# curl localhost:9200
{
  "name" : "a6dd36f326e3",
  "cluster_name" : "docker-cluster",
  "cluster_uuid" : "nDA8UV-OQuOsDI6OhpQjqQ",
  "version" : {
    "number" : "7.6.2",
    "build_flavor" : "default",
    "build_type" : "docker",
    "build_hash" : "ef48eb35cf30adf4db14086e8aabd07ef6fb113f",
    "build_date" : "2020-03-26T06:34:37.794943Z",
    "build_snapshot" : false,
    "lucene_version" : "8.4.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

17 Portainer可視化面板安裝.

  • portainer
docker run -d -p 8088:9000 --restart=always -v /var/run/docker.sock:/var/run/docker.sock --privileged=true portainer/portainer 
  • Rancher(CI/CD可用)

什么是portainer?

Docker圖形化界面管理工具! 提供一個(gè)后臺(tái)面板供我們操作!

docker run -d -p 8088:9000 --restart=always -v /var/run/docker.sock:/var/run/docker.sock --privileged=true portainer/portainer 

訪問測試: 外網(wǎng): http://172.16.165.131:8088

18.鏡像原理之聯(lián)合文件系統(tǒng).

20. commit 鏡像

  • 提交鏡像命令
docker  commit -m="提交的描述信息" -a="作者"  容器id 目標(biāo)鏡像名: [tag]

21. 容器數(shù)據(jù)卷使用

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


# 目錄掛載
        "Mounts": [
            {
                "Type": "bind",
                "Source": "/home/ceshi",
                "Destination": "/home",
                "Mode": "",
                "RW": true,
                "Propagation": "rprivate"
            }
  • docker 操作文件,linux就同步.

22. 實(shí)戰(zhàn): Mysql同步數(shù)據(jù)

docker pull mysql
# -e 配置環(huán)境
docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag
# 啟動(dòng)帶密碼 -d后臺(tái)運(yùn)行 -p 端口映射 -v 數(shù)據(jù)卷掛載 -e 環(huán)境配置.--name 容器名字.
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

掛載到本地.

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

23. 具名掛載和匿名掛載

匿名掛載

-v 容器內(nèi)路徑
-P 大寫

[root@localhost data]# docker run -d -P --name nginx01 -v /etc/nginx nginx 
Unable to find image 'nginx:latest' locally
latest: Pulling from library/nginx
8559a31e96f4: Already exists 
8d69e59170f7: Pull complete 
3f9f1ec1d262: Pull complete 
d1f5ff4f210d: Pull complete 
1e22bfa8652e: Pull complete 
Digest: sha256:21f32f6c08406306d822a0e6e8b7dc81f53f336570e852e25fbe1e3e3d0d0133
Status: Downloaded newer image for nginx:latest
WARNING: IPv4 forwarding is disabled. Networking will not work.
6dee02275e577583a3742e4e212bd76339e02d8b6900dd5f19cba4367ad848e7
[root@localhost data]# docker volume ls
DRIVER              VOLUME NAME
local               90082dee8994000431b93045d6451e5bb22c906843f5f3079d0b1891d0d31f1b
local               ef0c4170034b7b84ac586e5ca4519ed1c8242ec7f1a651171e2c01e9437468b4
local               f1840696c2e9d8bdab29f97557362105b3ab43641c4ac8ea4df588324d2a2aea
  • 具名掛載
[root@localhost data]# docker run -d -P --name nginx02 -v juming-nginx:/etc/nginx nginx
WARNING: IPv4 forwarding is disabled. Networking will not work.
9d9350f2b3c9d9eacdd3ecfac4df0dca6d1b255af6f7b41546d659350ad1beb1
[root@localhost data]# docker volume ls
DRIVER              VOLUME NAME
local               90082dee8994000431b93045d6451e5bb22c906843f5f3079d0b1891d0d31f1b
local               ef0c4170034b7b84ac586e5ca4519ed1c8242ec7f1a651171e2c01e9437468b4
local               f1840696c2e9d8bdab29f97557362105b3ab43641c4ac8ea4df588324d2a2aea
local               juming-nginx

通過-v 卷名: 容器內(nèi)路徑

[root@localhost data]# docker volume inspect juming-nginx
[
    {
        "CreatedAt": "2020-06-10T19:59:49+08:00",
        "Driver": "local",
        "Labels": null,
        "Mountpoint": "/var/lib/docker/volumes/juming-nginx/_data",
        "Name": "juming-nginx",
        "Options": null,
        "Scope": "local"
    }
]
  • 所有的docker容器內(nèi)的卷, 沒有指定目錄的情況下都是在/var/lib/docker/volumes/xxx/_data
    我們通過具名掛載二塊方便的找到我們的一個(gè)卷,大多數(shù)情況在使用 具名掛載.
# 掛載參數(shù)
-v 容器內(nèi)路徑   # 匿名掛載
-v 卷名: 容器內(nèi)路徑  #具名掛載
-v /宿主機(jī)路徑::容器內(nèi)路徑 # 指定路徑掛載!

拓展:

# 通過 -v 容器內(nèi)路徑: ro rw 改變讀寫權(quán)限
ro readonly
rw readwrite
docker run -d -P --name nginx02 -v juming-nginx:/etc/nginx:ro  nginx
docker run -d -P --name nginx02 -v juming-nginx:/etc/nginx:rw  nginx

24. 初識(shí)Dockerfile

  • Docker 就是用來構(gòu)建docker 鏡像的構(gòu)建文件!命令腳本!先體驗(yàn)一下.
    指令需要大寫.
FROM centos

VOLUME ["volume01", "volume02"]

CMD echo "----end----"
CMD /bin/bash
[root@localhost home]# docker build -f /home/dockerfil -t lvyang/centos:1.0 .                   
unable to prepare context: unable to evaluate symlinks in Dockerfile path: lstat /home/dockerfil: no such file or directory
[root@localhost home]# docker build -f /home/dockerfile -t lvyang/centos:1.0 .
Sending build context to Docker daemon  180.1MB
Step 1/4 : FROM centos
 ---> 470671670cac
Step 2/4 : VOLUME ["volume01", "volume02"]
 ---> [Warning] IPv4 forwarding is disabled. Networking will not work.
 ---> Running in ab234415790b
Removing intermediate container ab234415790b
 ---> e9571b2ff91f
Step 3/4 : CMD echo "----end----"
 ---> [Warning] IPv4 forwarding is disabled. Networking will not work.
 ---> Running in 533d675f572a
Removing intermediate container 533d675f572a
 ---> b36be0ef82a8
Step 4/4 : CMD /bin/bash
 ---> [Warning] IPv4 forwarding is disabled. Networking will not work.
 ---> Running in 4efa2d8d8735
Removing intermediate container 4efa2d8d8735
 ---> b8a01d973fc0
Successfully built b8a01d973fc0
Successfully tagged lvyang/centos:1.0
  • 啟動(dòng)自己的鏡像
[root@localhost home]# docker run -it b8a01d973fc0
WARNING: IPv4 forwarding is disabled. Networking will not work.
[root@c5a96b674a38 /]# ls
bin  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var  volume01  volume02
[root@c5a96b674a38 /]# ls
bin  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var  volume01  volume02
[root@localhost ~]# docker ps
CONTAINER ID        IMAGE                 COMMAND                  CREATED             STATUS              PORTS                               NAMES
c5a96b674a38        b8a01d973fc0          "/bin/sh -c /bin/bash"   3 minutes ago       Up 3 minutes                                            vigorous_einstein
9d9350f2b3c9        nginx                 "/docker-entrypoint.…"   About an hour ago   Up About an hour    0.0.0.0:32769->80/tcp               nginx02
6dee02275e57        nginx                 "/docker-entrypoint.…"   About an hour ago   Up About an hour    0.0.0.0:32768->80/tcp               nginx01
2149ca869695        mysql:5.7             "docker-entrypoint.s…"   23 hours ago        Up 23 hours         33060/tcp, 0.0.0.0:3310->3306/tcp   mysql01
5f136e097791        portainer/portainer   "/portainer"             25 hours ago        Up 25 hours         0.0.0.0:8088->9000/tcp              eager_wright
[root@localhost ~]# docker inspect c5a96b674a38
 "Mounts": [
            {
                "Type": "volume",
                "Name": "eaffe03828e0e012bdfcf184f8e6eb42cbeafb485c94e24d0baf2a94f851b985",
                "Source": "/var/lib/docker/volumes/eaffe03828e0e012bdfcf184f8e6eb42cbeafb485c94e24d0baf2a94f851b985/_data",
                "Destination": "volume01",
                "Driver": "local",
                "Mode": "",
                "RW": true,
                "Propagation": ""
            },
[root@localhost ~]# cd /var/lib/docker/volumes/eaffe03828e0e012bdfcf184f8e6eb42cbeafb485c94e24d0baf2a94f851b985/_data
[root@localhost _data]# ls
test
[root@localhost _data]# 

27.DockerFile指令說明

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末峡迷,一起剝皮案震驚了整個(gè)濱河市沾鳄,隨后出現(xiàn)的幾起案子桌粉,更是在濱河造成了極大的恐慌榛了,老刑警劉巖菇爪,帶你破解...
    沈念sama閱讀 222,681評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件芽隆,死亡現(xiàn)場離奇詭異加匈,居然都是意外死亡攘轩,警方通過查閱死者的電腦和手機(jī)洞辣,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,205評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門咐刨,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人扬霜,你說我怎么就攤上這事定鸟。” “怎么了著瓶?”我有些...
    開封第一講書人閱讀 169,421評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵联予,是天一觀的道長。 經(jīng)常有香客問我材原,道長沸久,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,114評(píng)論 1 300
  • 正文 為了忘掉前任余蟹,我火速辦了婚禮卷胯,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘威酒。我一直安慰自己诵竭,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,116評(píng)論 6 398
  • 文/花漫 我一把揭開白布兼搏。 她就那樣靜靜地躺著卵慰,像睡著了一般。 火紅的嫁衣襯著肌膚如雪佛呻。 梳的紋絲不亂的頭發(fā)上裳朋,一...
    開封第一講書人閱讀 52,713評(píng)論 1 312
  • 那天,我揣著相機(jī)與錄音吓著,去河邊找鬼鲤嫡。 笑死送挑,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的暖眼。 我是一名探鬼主播惕耕,決...
    沈念sama閱讀 41,170評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼诫肠!你這毒婦竟也來了司澎?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,116評(píng)論 0 277
  • 序言:老撾萬榮一對(duì)情侶失蹤栋豫,失蹤者是張志新(化名)和其女友劉穎挤安,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體丧鸯,經(jīng)...
    沈念sama閱讀 46,651評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡蛤铜,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,714評(píng)論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了丛肢。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片围肥。...
    茶點(diǎn)故事閱讀 40,865評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖蜂怎,靈堂內(nèi)的尸體忽然破棺而出穆刻,到底是詐尸還是另有隱情,我是刑警寧澤派敷,帶...
    沈念sama閱讀 36,527評(píng)論 5 351
  • 正文 年R本政府宣布蛹批,位于F島的核電站撰洗,受9級(jí)特大地震影響篮愉,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜差导,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,211評(píng)論 3 336
  • 文/蒙蒙 一试躏、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧设褐,春花似錦颠蕴、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,699評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至外冀,卻和暖如春寡键,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背雪隧。 一陣腳步聲響...
    開封第一講書人閱讀 33,814評(píng)論 1 274
  • 我被黑心中介騙來泰國打工西轩, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留员舵,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,299評(píng)論 3 379
  • 正文 我出身青樓藕畔,卻偏偏與公主長得像马僻,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子注服,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,870評(píng)論 2 361