安裝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]#