文章目录
帮助命令
docker version # 显示docker的版本信息
docker info # 显示docker的系统信息,包括、镜像的容器信息
docker [命令] --help # 这是一个万能的命令
帮助文档地址:https://docs.docker.com/engine/reference/commandline
镜像命令
查看本机镜像
docker images
[root@VM-0-16-centos docker]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest feb5d9fea6a5 3 weeks ago 13.3kB
# 解释:
REPOSITORY 镜像的仓库源
TAG 镜像的标记-版本号
IMAGE ID 镜像的ID
CREATED 镜像创建时间
SIZE 镜像大小
# 可选项
-a, --all 列出所有的镜像
-q, --quiet 只显示镜像的ID
# 例子
docker images -a
docker images -q
搜索镜像
docker search 镜像名称
[root@VM-0-16-centos docker]# docker search mysql
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
mysql MySQL is a widely used, open-source relation… 11547 [OK]
mariadb MariaDB Server is a high performing open sou… 4393 [OK]
mysql/mysql-server Optimized MySQL Server Docker images. Create… 854 [OK]
phpmyadmin phpMyAdmin - A web interface for MySQL and M… 347 [OK]
# 可选项,可通过STARS收藏过滤mysql
# docker search mysql --filter=STARS=3000 只搜索mysqlSTARS大于3000的
[root@VM-0-16-centos docker]# docker search mysql --filter=STARS=3000
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
mysql MySQL is a widely used, open-source relation… 11547 [OK]
mariadb MariaDB Server is a high performing open sou… 4393 [OK]
# 只搜索mysqlSTARS大于5000的
[root@VM-0-16-centos docker]# docker search mysql --filter=STARS=5000
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
mysql MySQL is a widely used, open-source relation… 11547 [OK]
下载镜像
docker pull 镜像名:tag
# 下载镜像 docker pull [镜像名:tag]
[root@VM-0-16-centos docker]# docker pull mysql
Using default tag: latest # 如果不写tag者默认下载最新的版本
latest: Pulling from library/mysql
b380bbd43752: Pull complete # 使用的分层下载,这是docker镜像的核心,联合文件系统
f23cbf2ecc5d: Pull complete
30cfc6c29c0a: Pull complete
b38609286cbe: Pull complete
8211d9e66cd6: Pull complete
2313f9eeca4a: Pull complete
7eb487d00da0: Pull complete
4d7421c8152e: Pull complete
77f3d8811a28: Pull complete
cce755338cba: Pull complete
69b753046b9f: Pull complete
b2e64b0ab53c: Pull complete
Digest: sha256:6d7d4524463fe6e2b893ffc2b89543c81dec7ef82fb2020a1b27606666464d87
Status: Downloaded newer image for mysql:latest
docker.io/library/mysql:latest # 镜像的真实地址
#等价命令
docker pull mysql
docker pull docker.io/library/mysql:latest
#指定版本下载
[root@VM-0-16-centos docker]# docker pull mysql:5.7
5.7: Pulling from library/mysql
b380bbd43752: Already exists
f23cbf2ecc5d: Already exists
30cfc6c29c0a: Already exists
b38609286cbe: Already exists
8211d9e66cd6: Already exists
2313f9eeca4a: Already exists
7eb487d00da0: Already exists
a71aacf913e7: Pull complete
393153c555df: Pull complete
06628e2290d7: Pull complete
ff2ab8dac9ac: Pull complete
Digest: sha256:2db8bfd2656b51ded5d938abcded8d32ec6181a9eae8dfc7ddf87a656ef97e97
Status: Downloaded newer image for mysql:5.7
docker.io/library/mysql:5.7
# 查看刚才下载的镜像
[root@VM-0-16-centos docker]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mysql 5.7 938b57d64674 10 hours ago 448MB
mysql latest ecac195d15af 10 hours ago 516MB
hello-world latest feb5d9fea6a5 3 weeks ago 13.3kB
删除镜像
docker rmi -f 镜像ID
# 根据IMAGE ID删除指定的镜像,rm-删除,i-immages的意思。docker rmi -f [镜像ID]
[root@VM-0-16-centos docker]# docker rmi -f 938b57d64674
Untagged: mysql:5.7
Untagged: mysql@sha256:2db8bfd2656b51ded5d938abcded8d32ec6181a9eae8dfc7ddf87a656ef97e97
Deleted: sha256:938b57d64674c4a123bf8bed384e5e057be77db934303b3023d9be331398b761
Deleted: sha256:d81fc74bcfc422d67d8507aa0688160bc4ca6515e0a1c8edcdb54f89a0376ff1
Deleted: sha256:a6a530ba6d8591630a1325b53ef2404b8ab593a0775441b716ac4175c14463e6
Deleted: sha256:2a503984330e2cec317bc2ef793f5d4d7b3fd8d50009a4f673026c3195460200
Deleted: sha256:e2a4585c625da1cf4909cdf89b8433dd89ed5c90ebdb3a979d068b161513de90
# 删除多个容器,docker rmi -f [镜像ID1] [镜像ID2] [镜像ID3]
# 删除全部容器,$() 给命令传参->查询出所有的容器ID遍历删除所有的容器
[root@VM-0-16-centos docker]# docker rmi -f $(docker images -aq)
Untagged: mysql:latest
Untagged: mysql@sha256:6d7d4524463fe6e2b893ffc2b89543c81dec7ef82fb2020a1b27606666464d87
Deleted: sha256:ecac195d15afac2335de52fd7a0e34202fe582731963d31830f1b97700bf9509
Deleted: sha256:451fe04d80b84c0b7aca0f0bbdaa5de7c7ac85a65389ed5d3ed492f63ac092e2
Deleted: sha256:814cbf8bc7f6bb85685e5b803e16a76406c30d1960c566eee76303ffac600600
Deleted: sha256:735f72e1d1b936bb641b6a1283e4e60bf10a0c36f8244a5e3f8c7d58fa95b98a
Deleted: sha256:f2d209a30c3950fadffb2d82e1faa434da0753bee7aacad9cdec7d8a7a83df37
Deleted: sha256:03b9f8c5331d9534d2372a144bcffc8402e5f7972c9e4b85c634bef203ec6d20
Deleted: sha256:80f5487a88b8061855e99782979ed6069a8dd1c7dfbb1eb63fe42a4a9d119436
Deleted: sha256:f791a6c727931d41c51f8bf24ee32a4dbf0169f372b174f1ff89b4836b97c48e
Deleted: sha256:4c88df098412e11a98936509f3cede57f87154b350b0f75d96713f6e1dd56101
Deleted: sha256:fdba3a2cd286d9a5f65fc00f5254048855ae7dc00f3b3fa3356981eb9a7fe6d0
Deleted: sha256:8b3a69042e0da82429d28be0c474e73290ba4908730de22b2200a7aac9b245bd
Deleted: sha256:90afe56a0643f5bf1b1e8ee147b40a8e12b3fdd7e26bc2d2c50180d68dd524d0
Deleted: sha256:e81bff2725dbc0bf2003db10272fef362e882eb96353055778a66cda430cf81b
Untagged: hello-world:latest
Untagged: hello-world@sha256:37a0b92b08d4919615c3ee023f7ddb068d12b8387475d64c622ac30f45c29c51
Deleted: sha256:feb5d9fea6a5e9606aa995e879d862b825965ba48de054caab5ef356dc6b3412
[root@VM-0-16-centos docker]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
查看镜像的历史
docker history 镜像名
[root@VM-0-16-centos dockerfile-centos]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mycentos 1.0 892f16103d44 22 minutes ago 336MB
hecan/centos 1.0 507d0341e62a 24 hours ago 231MB
mysql 5.7 938b57d64674 8 days ago 448MB
nginx latest 87a94228f133 2 weeks ago 133MB
centos latest 5d0da3dc9764 5 weeks ago 231MB
[root@VM-0-16-centos dockerfile-centos]# docker history mysql:5.7
IMAGE CREATED CREATED BY SIZE COMMENT
938b57d64674 8 days ago /bin/sh -c #(nop) CMD ["mysqld"] 0B
<missing> 8 days ago /bin/sh -c #(nop) EXPOSE 3306 33060 0B
<missing> 8 days ago /bin/sh -c #(nop) ENTRYPOINT ["docker-entry… 0B
<missing> 8 days ago /bin/sh -c ln -s usr/local/bin/docker-entryp… 34B
<missing> 8 days ago /bin/sh -c #(nop) COPY file:345a22fe55d3e678… 14.5kB
<missing> 8 days ago /bin/sh -c #(nop) VOLUME [/var/lib/mysql] 0B
<missing> 8 days ago /bin/sh -c { echo mysql-community-server m… 313MB
<missing> 8 days ago /bin/sh -c echo 'deb http://repo.mysql.com/a… 55B
<missing> 8 days ago /bin/sh -c #(nop) ENV MYSQL_VERSION=5.7.36-… 0B
<missing> 2 weeks ago /bin/sh -c #(nop) ENV MYSQL_MAJOR=5.7 0B
<missing> 2 weeks ago /bin/sh -c set -ex; key='A4A9406876FCBD3C45… 1.84kB
<missing> 2 weeks ago /bin/sh -c apt-get update && apt-get install… 52.2MB
<missing> 2 weeks ago /bin/sh -c mkdir /docker-entrypoint-initdb.d 0B
<missing> 2 weeks ago /bin/sh -c set -eux; savedAptMark="$(apt-ma… 4.17MB
<missing> 2 weeks ago /bin/sh -c #(nop) ENV GOSU_VERSION=1.12 0B
<missing> 2 weeks ago /bin/sh -c apt-get update && apt-get install… 9.34MB
<missing> 2 weeks ago /bin/sh -c groupadd -r mysql && useradd -r -… 329kB
<missing> 2 weeks ago /bin/sh -c #(nop) CMD ["bash"] 0B
<missing> 2 weeks ago /bin/sh -c #(nop) ADD file:910392427fdf089bc… 69.3MB
[root@VM-0-16-centos dockerfile-centos]#
从上可以看出images的执行历史记录步骤。
容器命令
说明:当我们有了镜像后就可以创建容器,下载一个CentOS的镜像来测试学习。使用docker来创建一个linux系统
# 下载一个最新的centos系统
docker pull centos
启动容器
docker run 可选参数 镜像名称
docker run [可选参数] [镜像名称]
# 参数说明
--name="Name" # 容器名字 tomcat01 tomcat03 tomcat03用来区分容器
-d # 以后台的方式运行
-it # 使用交互模式运行,进入容器查看内容
-p # 指定容器端口 -p 8080:8080
# 端口使用方式
-p ip:主机端口:容器端口
-p 主机端口:容器端口 # 常用的使用方式
-p 容器端口
容器端口
-P # 大写P随机指定端口
# 测试,启动并进入容器
[root@VM-0-16-centos /]# docker run -it centos /bin/bash
[root@bc2de74692d8 /]# ls # 查看容器内的centos,我们已经成功的进入了容器的linux系统
bin dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var
# 从容器中退回主机
[root@bc2de74692d8 /]# exit
exit
[root@VM-0-16-centos /]# ls
bin boot data dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var
[root@VM-0-16-centos /]#
# 一般用来测试,用完会完全的删除容器
docker run -it --rm [镜像名称]
查看运行容器
docker ps
# docker ps 命令
[留空] # 列出当前运行的程序
-a # 列出当前运行的程序+之前运行过的程序
-n=? # 列出最近的n个容器 例如:docker ps -a -n=1
-q # 只显示容器的编号ID
# 列出当前运行的程序 之前使用的是exit退出,容器不会运行
[root@VM-0-16-centos /]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
# 列出当前运行的程序+之前运行过的程序
[root@VM-0-16-centos /]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
bc2de74692d8 centos "/bin/bash" 9 minutes ago Exited (130) 4 minutes ago recursing_shaw
22e209e12519 feb5d9fea6a5 "/hello" 4 hours ago Exited (0) 4 hours ago pensive_kowalevski
# 列出最近的n个容器
[root@VM-0-16-centos /]# docker ps -a -n=1
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
bc2de74692d8 centos "/bin/bash" 15 minutes ago Exited (130) 10 minutes ago recursing_shaw
# 只显示容器的编号ID
[root@VM-0-16-centos /]# docker ps -aq
bc2de74692d8
22e209e12519
退出容器
exit 或 ctrl+p+q
# exit #直接容器停止并退出
# ctrl+p+q #容器不停止退出
# 容器不停止退出
[root@VM-0-16-centos /]# docker run -it centos /bin/bash # 运行并进入centos容器
[root@1bb7c0b00bf8 /]# [root@VM-0-16-centos /]# docker ps #执行ctrl+p+q退出后查看容器还在继续运行
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1bb7c0b00bf8 centos "/bin/bash" 12 seconds ago Up 11 seconds agitated_aryabhata
删除容器
docker rm 容器ID
# 根据容器ID删除容器,不能删除正在运行的容器,如果要强制删除使用命令:docker rm -f [容器ID]
docker rm [容器ID]
[root@VM-0-16-centos /]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1bb7c0b00bf8 centos "/bin/bash" 5 hours ago Up 5 hours agitated_aryabhata
bc2de74692d8 centos "/bin/bash" 21 hours ago Exited (130) 21 hours ago recursing_shaw
22e209e12519 feb5d9fea6a5 "/hello" 25 hours ago Exited (0) 25 hours ago pensive_kowalevski
[root@VM-0-16-centos /]# docker rm bc2de74692d8
bc2de74692d8
[root@VM-0-16-centos /]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1bb7c0b00bf8 centos "/bin/bash" 5 hours ago Up 5 hours agitated_aryabhata
22e209e12519 feb5d9fea6a5 "/hello" 25 hours ago Exited (0) 25 hours ago pensive_kowalevski
# 删除全部的容器
docker rm -f $(docker ps -aq)
[root@VM-0-16-centos /]# docker ps -aq
1bb7c0b00bf8
22e209e12519
[root@VM-0-16-centos /]# docker rm -f $(docker ps -aq)
1bb7c0b00bf8
22e209e12519
[root@VM-0-16-centos /]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
# 等价命令,删除全部的容器
docker rm -f $(docker ps -aq)
docker ps -a -q|xargs docker rm
启动和停止容器
docker start [容器ID] # 启动容器
docker restart [容器ID] # 重启容器
docker stop [容器ID] # 停止当前正在运行的容器
docker kill [容器ID] # 强制停止当前容器
常用的其他命令
前面介绍的命令都是基础的命令,常用命令才是我们经常操作的命令很重要!!!很重要!!!很重要!!!
后台启动容器
# 命令:docker run -d [镜像名]
[root@VM-0-16-centos /]# docker run -d centos
04b1f15661772296b7007df426f8b3f459b16efcac8187ffd27307db86a8649c
[root@VM-0-16-centos /]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
# 问题:发现刚启动的centos容器自动停止了
# 常见的坑:docker 容器使用后台运行,就必须要有一个前台进程,docker发现没有应用,就会自动停止。
# nginx 容器启动后,发现自己没有相关服务,就会立刻停止,没有程序了
查看日志
docker logs -f -t --tail [容器ID] # 容器没有日志
# 自己编写一段脚本启动容器并生成日志
docker run -d centos /bin/sh -c "while true;do echo hecan;sleep 1;done"
# 查看运行日志(查看最后10行的日志,同时滚动查看新日志)
[root@VM-0-16-centos /]# docker logs -f -t --tail 10 8355654b5aa3
2021-10-20T08:21:23.394953984Z hecan
2021-10-20T08:21:24.396904480Z hecan
2021-10-20T08:21:25.398632538Z hecan
2021-10-20T08:21:26.400784744Z hecan
2021-10-20T08:21:27.402518008Z hecan
2021-10-20T08:21:28.404628333Z hecan
2021-10-20T08:21:29.406724799Z hecan
2021-10-20T08:21:30.409114272Z hecan
2021-10-20T08:21:31.410931343Z hecan
2021-10-20T08:21:32.412850668Z hecan
......
# 查看容器所有的日志
[root@VM-0-16-centos /]# docker logs -tf 8355654b5aa3
2021-10-20T08:18:30.026496421Z hecan
2021-10-20T08:18:31.028907454Z hecan
2021-10-20T08:18:32.030883129Z hecan
2021-10-20T08:18:33.032861153Z hecan
2021-10-20T08:18:34.034819431Z hecan
2021-10-20T08:18:35.037167822Z hecan
2021-10-20T08:18:36.039150329Z hecan
2021-10-20T08:18:37.041657574Z hecan
2021-10-20T08:18:38.044322153Z hecan
2021-10-20T08:18:39.046054330Z hecan
2021-10-20T08:18:40.048071308Z hecan
2021-10-20T08:18:41.049943485Z hecan
......
查看容器中进程的信息
# 命令:docker top 容器ID
[root@VM-0-16-centos /]# docker top 070a398fde37
UID PID PPID C STIME TTY TIME CMD
root 30690 30671 0 17:10 pts/0 00:00:00 /bin/bash
查看容器元数据信息
# 命令:docker inspect [容器ID]
[root@VM-0-16-centos /]# docker inspect 070a398fde37
[
{
"Id": "070a398fde376a46dd3c5d24f3385e1ddcec345e110ee7b1696c40cc1651e5f4",
"Created": "2021-10-20T09:10:44.928099721Z",
"Path": "/bin/bash",
"Args": [],
"State": {
"Status": "running",
"Running": true,
"Paused": false,
"Restarting": false,
"OOMKilled": false,
"Dead": false,
"Pid": 30690,
"ExitCode": 0,
"Error": "",
"StartedAt": "2021-10-20T09:10:45.229953288Z",
"FinishedAt": "0001-01-01T00:00:00Z"
},
"Image": "sha256:5d0da3dc976460b72c77d94c8a1ad043720b0416bfc16c52c45d4847e53fadb6",
"ResolvConfPath": "/var/lib/docker/containers/070a398fde376a46dd3c5d24f3385e1ddcec345e110ee7b1696c40cc1651e5f4/resolv.conf",
"HostnamePath": "/var/lib/docker/containers/070a398fde376a46dd3c5d24f3385e1ddcec345e110ee7b1696c40cc1651e5f4/hostname",
"HostsPath": "/var/lib/docker/containers/070a398fde376a46dd3c5d24f3385e1ddcec345e110ee7b1696c40cc1651e5f4/hosts",
"LogPath": "/var/lib/docker/containers/070a398fde376a46dd3c5d24f3385e1ddcec345e110ee7b1696c40cc1651e5f4/070a398fde376a46dd3c5d24f3385e1ddcec345e110ee7b1696c40cc1651e5f4-json.log",
"Name": "/funny_pare",
"RestartCount": 0,
"Driver": "overlay2",
"Platform": "linux",
"MountLabel": "",
"ProcessLabel": "",
"AppArmorProfile": "",
"ExecIDs": null,
"HostConfig": {
"Binds": null,
"ContainerIDFile": "",
"LogConfig": {
"Type": "json-file",
"Config": {}
},
"NetworkMode": "default",
"PortBindings": {},
"RestartPolicy": {
"Name": "no",
"MaximumRetryCount": 0
},
"AutoRemove": false,
"VolumeDriver": "",
"VolumesFrom": null,
"CapAdd": null,
"CapDrop": null,
"CgroupnsMode": "host",
"Dns": [],
"DnsOptions": [],
"DnsSearch": [],
"ExtraHosts": null,
"GroupAdd": null,
"IpcMode": "private",
"Cgroup": "",
"Links": null,
"OomScoreAdj": 0,
"PidMode": "",
"Privileged": false,
"PublishAllPorts": false,
"ReadonlyRootfs": false,
"SecurityOpt": null,
"UTSMode": "",
"UsernsMode": "",
"ShmSize": 67108864,
"Runtime": "runc",
"ConsoleSize": [
0,
0
],
"Isolation": "",
"CpuShares": 0,
"Memory": 0,
"NanoCpus": 0,
"CgroupParent": "",
"BlkioWeight": 0,
"BlkioWeightDevice": [],
"BlkioDeviceReadBps": null,
"BlkioDeviceWriteBps": null,
"BlkioDeviceReadIOps": null,
"BlkioDeviceWriteIOps": null,
"CpuPeriod": 0,
"CpuQuota": 0,
"CpuRealtimePeriod": 0,
"CpuRealtimeRuntime": 0,
"CpusetCpus": "",
"CpusetMems": "",
"Devices": [],
"DeviceCgroupRules": null,
"DeviceRequests": null,
"KernelMemory": 0,
"KernelMemoryTCP": 0,
"MemoryReservation": 0,
"MemorySwap": 0,
"MemorySwappiness": null,
"OomKillDisable": false,
"PidsLimit": null,
"Ulimits": null,
"CpuCount": 0,
"CpuPercent": 0,
"IOMaximumIOps": 0,
"IOMaximumBandwidth": 0,
"MaskedPaths": [
"/proc/asound",
"/proc/acpi",
"/proc/kcore",
"/proc/keys",
"/proc/latency_stats",
"/proc/timer_list",
"/proc/timer_stats",
"/proc/sched_debug",
"/proc/scsi",
"/sys/firmware"
],
"ReadonlyPaths": [
"/proc/bus",
"/proc/fs",
"/proc/irq",
"/proc/sys",
"/proc/sysrq-trigger"
]
},
"GraphDriver": {
"Data": {
"LowerDir": "/var/lib/docker/overlay2/e26e947be7ae15f5757f3f9bec471143bb5891a6cec25b1d60b43a6f02645082-init/diff:/var/lib/docker/overlay2/3b52c65087c3fbdce68a73d5f20f3391dda96cd04748bf6126a40c9a99bcf8e3/diff",
"MergedDir": "/var/lib/docker/overlay2/e26e947be7ae15f5757f3f9bec471143bb5891a6cec25b1d60b43a6f02645082/merged",
"UpperDir": "/var/lib/docker/overlay2/e26e947be7ae15f5757f3f9bec471143bb5891a6cec25b1d60b43a6f02645082/diff",
"WorkDir": "/var/lib/docker/overlay2/e26e947be7ae15f5757f3f9bec471143bb5891a6cec25b1d60b43a6f02645082/work"
},
"Name": "overlay2"
},
"Mounts": [],
"Config": {
"Hostname": "070a398fde37",
"Domainname": "",
"User": "",
"AttachStdin": true,
"AttachStdout": true,
"AttachStderr": true,
"Tty": true,
"OpenStdin": true,
"StdinOnce": true,
"Env": [
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
],
"Cmd": [
"/bin/bash"
],
"Image": "centos",
"Volumes": null,
"WorkingDir": "",
"Entrypoint": null,
"OnBuild": null,
"Labels": {
"org.label-schema.build-date": "20210915",
"org.label-schema.license": "GPLv2",
"org.label-schema.name": "CentOS Base Image",
"org.label-schema.schema-version": "1.0",
"org.label-schema.vendor": "CentOS"
}
},
"NetworkSettings": {
"Bridge": "",
"SandboxID": "c64dc9b5ee3d7ea8bfd901259a26ae75dee93a0c2c700ed7be819ddf1838c4e9",
"HairpinMode": false,
"LinkLocalIPv6Address": "",
"LinkLocalIPv6PrefixLen": 0,
"Ports": {},
"SandboxKey": "/var/run/docker/netns/c64dc9b5ee3d",
"SecondaryIPAddresses": null,
"SecondaryIPv6Addresses": null,
"EndpointID": "7b9977a0b691c26b028b2aa2defb93d63655634bd385e8a6d28dd94f1d7b8297",
"Gateway": "172.17.0.1",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"IPAddress": "172.17.0.2",
"IPPrefixLen": 16,
"IPv6Gateway": "",
"MacAddress": "02:42:ac:11:00:02",
"Networks": {
"bridge": {
"IPAMConfig": null,
"Links": null,
"Aliases": null,
"NetworkID": "9f7b4676cc486b2f47bc7a0fecd9a9c6c8e6249f2c4f37817efa00a3f05d1bc5",
"EndpointID": "7b9977a0b691c26b028b2aa2defb93d63655634bd385e8a6d28dd94f1d7b8297",
"Gateway": "172.17.0.1",
"IPAddress": "172.17.0.2",
"IPPrefixLen": 16,
"IPv6Gateway": "",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"MacAddress": "02:42:ac:11:00:02",
"DriverOpts": null
}
}
}
}
]
进入正在运行的容器
# 我们通常容器都是使用后台方式运行的,需要进入容器,修改一些配置
# 命令:docker exec -it [容器ID] bashShell
[root@VM-0-16-centos /]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
070a398fde37 centos "/bin/bash" 21 minutes ago Up 21 minutes funny_pare
[root@VM-0-16-centos /]# docker exec -it 070a398fde37 /bin/bash
[root@070a398fde37 /]# ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 09:10 pts/0 00:00:00 /bin/bash
root 16 0 0 09:32 pts/1 00:00:00 /bin/bash
root 30 16 0 09:32 pts/1 00:00:00 ps -ef
# 方式2 命令:docker attach [容器ID]
[root@VM-0-16-centos /]# docker attach 070a398fde37
# 正在执行当前的代码......
[root@070a398fde37 /]# ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 09:10 pts/0 00:00:00 /bin/bash
root 16 0 0 09:32 pts/1 00:00:00 /bin/bash
root 32 1 0 09:35 pts/0 00:00:00 ps -ef
# 对比
#docker exec # 进入容器后打开一个新的终端,可以在里面直接操作(常用)
#docker attach # 进入容器当前正在执行的终端,不会启动新的进程!
从容器内部拷贝文件到主机上
# dockers cp 容器ID:文件所在容器内的路径 目的主机的存放路径
# 查看运行的容器
[root@VM-0-16-centos /]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
070a398fde37 centos "/bin/bash" 16 hours ago Up 16 hours funny_pare
# 进入正在运行的容器
[root@VM-0-16-centos /]# docker attach 070a398fde37
# 进入容器里面的home目录并创建一个test.java文件,然后退出容器回到主机
[root@070a398fde37 /]# cd /home
[root@070a398fde37 home]# ls
[root@070a398fde37 home]# touch test.java
[root@070a398fde37 home]# exit
exit
# 再次查看刚才的容器,无论容器是否允许,我们都可以将文件从容器里赋值到主机上
[root@VM-0-16-centos /]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
[root@VM-0-16-centos /]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
070a398fde37 centos "/bin/bash" 16 hours ago Exited (0) 14 seconds ago funny_pare
5d4a10e0ade3 centos "/bin/bash" 16 hours ago Exited (0) 16 hours ago recursing_galois
8355654b5aa3 centos "/bin/sh -c 'while t…" 17 hours ago Exited (137) 17 hours ago heuristic_dubinsky
96f52a2e1526 centos "/bin/bash" 17 hours ago Exited (0) 17 hours ago suspicious_haslett
04b1f1566177 centos "/bin/bash" 18 hours ago Exited (0) 18 hours ago sleepy_satoshi
# 执行命令,将容器里面的test.java文件复制到主机的/home目录下面
[root@VM-0-16-centos /]# docker cp 070a398fde37:/home/test.java /home
[root@VM-0-16-centos /]# cd home/
[root@VM-0-16-centos home]# ls
lighthouse test.java
# 这个拷贝是一个手动的过程,未来我们使用 -V 卷的技术,可以实现主机/home 和 容器/home 之间的绑定,实现自动的同步
建议:命令方式,将所有的命令自己全部的手敲一遍,自己记录一下笔记!!!
小结
命令小结图
作业练习
Docker安装nginx
# 1、查看当前允许的容器
[root@VM-0-16-centos home]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
[root@VM-0-16-centos home]# clear
# 2、搜索nginx镜像,也可以在dockerHub上搜索nginx,查看具体的版本号信息
[root@VM-0-16-centos home]# docker search nginx
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
nginx Official build of Nginx. 15666 [OK]
jwilder/nginx-proxy Automated Nginx reverse proxy for docker con… 2080 [OK]
richarvey/nginx-php-fpm Container running Nginx + PHP-FPM capable of… 818 [OK]
jc21/nginx-proxy-manager Docker container for managing Nginx proxy ho… 259
linuxserver/nginx An Nginx container, brought to you by LinuxS… 157
tiangolo/nginx-rtmp Docker image with Nginx using the nginx-rtmp… 142 [OK]
jlesage/nginx-proxy-manager Docker container for Nginx Proxy Manager 140 [OK]
alfg/nginx-rtmp NGINX, nginx-rtmp-module and FFmpeg from sou… 110 [OK]
jasonrivers/nginx-rtmp Docker images to host RTMP streams using NGI… 95 [OK]
nginxdemos/hello NGINX webserver that serves a simple page co… 74 [OK]
privatebin/nginx-fpm-alpine PrivateBin running on an Nginx, php-fpm & Al… 59 [OK]
nginx/nginx-ingress NGINX and NGINX Plus Ingress Controllers fo… 55
nginxinc/nginx-unprivileged Unprivileged NGINX Dockerfiles 54
staticfloat/nginx-certbot Opinionated setup for automatic TLS certs lo… 25 [OK]
nginxproxy/nginx-proxy Automated Nginx reverse proxy for docker con… 23
nginx/nginx-prometheus-exporter NGINX Prometheus Exporter for NGINX and NGIN… 21
schmunk42/nginx-redirect A very simple container to redirect HTTP tra… 19 [OK]
centos/nginx-112-centos7 Platform for running nginx 1.12 or building … 15
raulr/nginx-wordpress Nginx front-end for the official wordpress:f… 13 [OK]
centos/nginx-18-centos7 Platform for running nginx 1.8 or building n… 13
flashspys/nginx-static Super Lightweight Nginx Image 11 [OK]
mailu/nginx Mailu nginx frontend 9 [OK]
sophos/nginx-vts-exporter Simple server that scrapes Nginx vts stats a… 7 [OK]
ansibleplaybookbundle/nginx-apb An APB to deploy NGINX 2 [OK]
wodby/nginx Generic nginx 1 [OK]
# 3、下载最新版本的nginx镜像
[root@VM-0-16-centos home]# docker pull nginx
Using default tag: latest
latest: Pulling from library/nginx
b380bbd43752: Pull complete
fca7e12d1754: Pull complete
745ab57616cb: Pull complete
a4723e260b6f: Pull complete
1c84ebdff681: Pull complete
858292fd2e56: Pull complete
Digest: sha256:644a70516a26004c97d0d85c7fe1d0c3a67ea8ab7ddf4aff193d9f301670cf36
Status: Downloaded newer image for nginx:latest
docker.io/library/nginx:latest
# 4、查看下载好的镜像nginx
[root@VM-0-16-centos home]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest 87a94228f133 9 days ago 133MB
centos latest 5d0da3dc9764 5 weeks ago 231MB
# 5、后台运行nginx
# -d 后台运行
# --name 给容器命名
# -p 宿主主机端口:容器内部端口(端口映射,可以使宿主机可以访问nginx容器内部)
[root@VM-0-16-centos home]# docker run -d --name nginx01 -p 3344:80 nginx
2ecd2bcdf97df1ee3b816ab17468dce13aa32fd27067490b104c9ce4d1c1d6d2
[root@VM-0-16-centos home]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2ecd2bcdf97d nginx "/docker-entrypoint.…" 11 seconds ago Up 11 seconds 0.0.0.0:3344->80/tcp, :::3344->80/tcp nginx01
# 6、测试nginx安装是否成功
[root@VM-0-16-centos home]# curl localhost:3344
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
html { color-scheme: light dark; }
body { width: 35em; margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif; }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>
<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>
<p><em>Thank you for using nginx.</em></p>
</body>
</html>
# 7、进入nginx容器(打开新终端模式进入)
[root@VM-0-16-centos home]# docker exec -it nginx01 /bin/bash
root@2ecd2bcdf97d:/# whereis nginx
nginx: /usr/sbin/nginx /usr/lib/nginx /etc/nginx /usr/share/nginx
root@2ecd2bcdf97d:/# cd /etc/nginx
root@2ecd2bcdf97d:/etc/nginx# ls
conf.d fastcgi_params mime.types modules nginx.conf scgi_params uwsgi_params
端口暴露的概念图
浏览器访问:http://ip(服务器公网ip):3344
Docker安装tomcat
# 1、docker搜索tomcat
[root@VM-0-16-centos ~]# docker search tomcat
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
tomcat Apache Tomcat is an open source implementati… 3155 [OK]
tomee Apache TomEE is an all-Apache Java EE certif… 93 [OK]
dordoka/tomcat Ubuntu 14.04, Oracle JDK 8 and Tomcat 8 base… 58 [OK]
kubeguide/tomcat-app Tomcat image for Chapter 1 31
consol/tomcat-7.0 Tomcat 7.0.57, 8080, "admin/admin" 18 [OK]
cloudesire/tomcat Tomcat server, 6/7/8 15 [OK]
aallam/tomcat-mysql Debian, Oracle JDK, Tomcat & MySQL 13 [OK]
arm32v7/tomcat Apache Tomcat is an open source implementati… 11
rightctrl/tomcat CentOS , Oracle Java, tomcat application ssl… 7 [OK]
arm64v8/tomcat Apache Tomcat is an open source implementati… 6
maluuba/tomcat7-java8 Tomcat7 with java8. 6
unidata/tomcat-docker Security-hardened Tomcat Docker container. 5 [OK]
amd64/tomcat Apache Tomcat is an open source implementati… 3
cfje/tomcat-resource Tomcat Concourse Resource 2
oobsri/tomcat8 Testing CI Jobs with different names. 2
jelastic/tomcat An image of the Tomcat Java application serv… 2
fabric8/tomcat-8 Fabric8 Tomcat 8 Image 2 [OK]
camptocamp/tomcat-logback Docker image for tomcat with logback integra… 1 [OK]
picoded/tomcat7 tomcat7 with jre8 and MANAGER_USER / MANAGER… 1 [OK]
99taxis/tomcat7 Tomcat7 1 [OK]
ppc64le/tomcat Apache Tomcat is an open source implementati… 1
chenyufeng/tomcat-centos tomcat基于centos6的镜像 1 [OK]
secoresearch/tomcat-varnish Tomcat and Varnish 5.0 0 [OK]
s390x/tomcat Apache Tomcat is an open source implementati… 0
softwareplant/tomcat Tomcat images for jira-cloud testing 0 [OK]
# 2、根据版本号下载对应得tomcat
[root@VM-0-16-centos ~]# docker pull tomcat:9.0
9.0: Pulling from library/tomcat
bb7d5a84853b: Pull complete
f02b617c6a8c: Pull complete
d32e17419b7e: Pull complete
c9d2d81226a4: Pull complete
fab4960f9cd2: Pull complete
da1c1e7baf6d: Pull complete
79b231561270: Pull complete
7d337880d8b4: Pull complete
ca5413c09be2: Pull complete
bb83013543f6: Pull complete
Digest: sha256:9d17c6817ce46fb9c880ec3882289bb3aafb7efd15262fa07b54e71f42674134
Status: Downloaded newer image for tomcat:9.0
docker.io/library/tomcat:9.0
[root@VM-0-16-centos ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
# 3、检查下载得tomcat镜像
[root@VM-0-16-centos ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
tomcat 9.0 e81ee1ac2b97 7 days ago 680MB
nginx latest 87a94228f133 9 days ago 133MB
centos latest 5d0da3dc9764 5 weeks ago 231MB
# 4、运行tomcat
# 这里需要注意一个点,官网的使用方式命令如下:
# docker run -it --rm tomcat:9.0
# 说明:我们之前启动的都是后台启动,容器停止后还是可以查询到的 docker run -it --rm一般用来测试,用完会完全的删除
[root@VM-0-16-centos /]# docker run -it --rm tomcat
Unable to find image 'tomcat:latest' locally
latest: Pulling from library/tomcat
bb7d5a84853b: Already exists
f02b617c6a8c: Already exists
d32e17419b7e: Already exists
c9d2d81226a4: Already exists
fab4960f9cd2: Already exists
da1c1e7baf6d: Already exists
79b231561270: Already exists
7d337880d8b4: Already exists
2df65a31be06: Pull complete
10cbf519de23: Pull complete
Digest: sha256:7c30d3c92b191ec2b84f64be99326f9c83a4a4e079c899ee4d0a9a41abca8406
Status: Downloaded newer image for tomcat:latest
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:
NOTE: Picked up JDK_JAVA_OPTIONS: --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.util.concurrent=ALL-UNNAMED --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
21-Oct-2021 05:55:31.251 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version name: Apache Tomcat/10.0.12
21-Oct-2021 05:55:31.258 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server built: Sep 28 2021 13:34:21 UTC
21-Oct-2021 05:55:31.258 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version number: 10.0.12.0
21-Oct-2021 05:55:31.259 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Name: Linux
21-Oct-2021 05:55:31.259 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Version: 3.10.0-1160.11.1.el7.x86_64
21-Oct-2021 05:55:31.259 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Architecture: amd64
21-Oct-2021 05:55:31.259 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Java Home: /usr/local/openjdk-11
21-Oct-2021 05:55:31.259 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Version: 11.0.12+7
21-Oct-2021 05:55:31.259 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Vendor: Oracle Corporation
21-Oct-2021 05:55:31.259 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE: /usr/local/tomcat
21-Oct-2021 05:55:31.259 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME: /usr/local/tomcat
21-Oct-2021 05:55:31.285 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.lang=ALL-UNNAMED
21-Oct-2021 05:55:31.288 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.io=ALL-UNNAMED
21-Oct-2021 05:55:31.288 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.util=ALL-UNNAMED
21-Oct-2021 05:55:31.288 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.util.concurrent=ALL-UNNAMED
21-Oct-2021 05:55:31.288 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
21-Oct-2021 05:55:31.289 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties
21-Oct-2021 05:55:31.289 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
21-Oct-2021 05:55:31.289 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djdk.tls.ephemeralDHKeySize=2048
21-Oct-2021 05:55:31.289 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.protocol.handler.pkgs=org.apache.catalina.webresources
21-Oct-2021 05:55:31.289 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dorg.apache.catalina.security.SecurityListener.UMASK=0027
21-Oct-2021 05:55:31.289 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dignore.endorsed.dirs=
21-Oct-2021 05:55:31.289 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.base=/usr/local/tomcat
21-Oct-2021 05:55:31.289 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.home=/usr/local/tomcat
21-Oct-2021 05:55:31.289 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.io.tmpdir=/usr/local/tomcat/temp
21-Oct-2021 05:55:31.295 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent Loaded Apache Tomcat Native library [1.2.31] using APR version [1.7.0].
21-Oct-2021 05:55:31.295 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true], UDS [true].
21-Oct-2021 05:55:31.299 INFO [main] org.apache.catalina.core.AprLifecycleListener.initializeSSL OpenSSL successfully initialized [OpenSSL 1.1.1k 25 Mar 2021]
21-Oct-2021 05:55:31.703 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["http-nio-8080"]
21-Oct-2021 05:55:31.748 INFO [main] org.apache.catalina.startup.Catalina.load Server initialization in [820] milliseconds
21-Oct-2021 05:55:31.856 INFO [main] org.apache.catalina.core.StandardService.startInternal Starting service [Catalina]
21-Oct-2021 05:55:31.856 INFO [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet engine: [Apache Tomcat/10.0.12]
21-Oct-2021 05:55:31.869 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"]
21-Oct-2021 05:55:31.893 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in [144] milliseconds
^C21-Oct-2021 05:56:06.417 INFO [Thread-2] org.apache.coyote.AbstractProtocol.pause Pausing ProtocolHandler ["http-nio-8080"]
21-Oct-2021 05:56:06.427 INFO [Thread-2] org.apache.catalina.core.StandardService.stopInternal Stopping service [Catalina]
21-Oct-2021 05:56:06.433 INFO [Thread-2] org.apache.coyote.AbstractProtocol.stop Stopping ProtocolHandler ["http-nio-8080"]
21-Oct-2021 05:56:06.478 INFO [Thread-2] org.apache.coyote.AbstractProtocol.destroy Destroying ProtocolHandler ["http-nio-8080"]
# 运行退出后再次查看运行过的容器发现已经找不到被默认删除了!!!
[root@VM-0-16-centos /]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
61b6a6623f66 nginx "/docker-entrypoint.…" 3 hours ago Exited (0) 2 hours ago nginx02
2ecd2bcdf97d nginx "/docker-entrypoint.…" 3 hours ago Exited (0) 3 hours ago nginx01
070a398fde37 centos "/bin/bash" 21 hours ago Exited (0) 4 hours ago funny_pare
5d4a10e0ade3 centos "/bin/bash" 21 hours ago Exited (0) 21 hours ago recursing_galois
8355654b5aa3 centos "/bin/sh -c 'while t…" 22 hours ago Exited (137) 22 hours ago heuristic_dubinsky
96f52a2e1526 centos "/bin/bash" 22 hours ago Exited (0) 22 hours ago suspicious_haslett
04b1f1566177 centos "/bin/bash" 22 hours ago Exited (0) 22 hours ago sleepy_satoshi
# 5、正常启动tomcat
[root@VM-0-16-centos /]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
tomcat 9.0 e81ee1ac2b97 7 days ago 680MB
tomcat latest 4ce9babdd885 7 days ago 680MB
nginx latest 87a94228f133 9 days ago 133MB
centos latest 5d0da3dc9764 5 weeks ago 231MB
[root@VM-0-16-centos /]# docker run -d -p 3344:8080 --name tomcat01 e81ee1ac2b97
f12370ece6fca76db2d3650fb7cc6df55d344dbc4639da6b3fb316d3240deba5
[root@VM-0-16-centos /]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f12370ece6fc e81ee1ac2b97 "catalina.sh run" 8 seconds ago Up 7 seconds 0.0.0.0:3344->8080/tcp, :::3344->8080/tcp tomcat01
浏览器测试访问tomcat。访问提示404应为webapps里面资源是空,但是tomcat部署时成功了的!!!
# 6、进入tomcat发现很多基础命令都不可以使用webapps里面也是空的,所以报上图404
[root@VM-0-16-centos /]# docker exec -it tomcat01 /bin/bash
root@f12370ece6fc:/usr/local/tomcat# ls
BUILDING.txt CONTRIBUTING.md LICENSE NOTICE README.md RELEASE-NOTES RUNNING.txt bin conf lib logs native-jni-lib temp webapps webapps.dist work
root@f12370ece6fc:/usr/local/tomcat#
root@f12370ece6fc:/usr/local/tomcat#
root@f12370ece6fc:/usr/local/tomcat#
root@f12370ece6fc:/usr/local/tomcat#
root@f12370ece6fc:/usr/local/tomcat#
root@f12370ece6fc:/usr/local/tomcat# ll
bash: ll: command not found
root@f12370ece6fc:/usr/local/tomcat#
root@f12370ece6fc:/usr/local/tomcat#
root@f12370ece6fc:/usr/local/tomcat#
root@f12370ece6fc:/usr/local/tomcat# ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 1 06:06 ? 00:00:03 /usr/local/openjdk-11/bin/java -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties -Djava.util.logging.manager=org.a
root 38 0 0 06:11 pts/0 00:00:00 /bin/bash
root 46 38 0 06:12 pts/0 00:00:00 ps -ef
root@f12370ece6fc:/usr/local/tomcat# ls
BUILDING.txt CONTRIBUTING.md LICENSE NOTICE README.md RELEASE-NOTES RUNNING.txt bin conf lib logs native-jni-lib temp webapps webapps.dist work
root@f12370ece6fc:/usr/local/tomcat# cd webapps
root@f12370ece6fc:/usr/local/tomcat/webapps# ls
root@f12370ece6fc:/usr/local/tomcat/webapps#
# 发现问题:1 linux命令少了 2 没有webapps。这是因为阿里云镜像的原因。默认是最小的镜像,所有不必要的都给剔除了,保证最小可运行环境。
# 解决问题:
# 在tomcat目录下有一个webapps.dist文件,将里面的内容复制到webapps里面刷新浏览器即可。
# 进入webapps.dist文件,查看文件内容
root@f12370ece6fc:/usr/local/tomcat# cd webapps.dist/
root@f12370ece6fc:/usr/local/tomcat/webapps.dist# ls
ROOT docs examples host-manager manager
root@f12370ece6fc:/usr/local/tomcat/webapps.dist# cd ..
# 复制webapps.dist全部文件到webapps下
root@f12370ece6fc:/usr/local/tomcat# cp ./webapps.dist/* ./webapps
cp: -r not specified; omitting directory './webapps.dist/ROOT'
cp: -r not specified; omitting directory './webapps.dist/docs'
cp: -r not specified; omitting directory './webapps.dist/examples'
cp: -r not specified; omitting directory './webapps.dist/host-manager'
cp: -r not specified; omitting directory './webapps.dist/manager'
root@f12370ece6fc:/usr/local/tomcat# cp -r ./webapps.dist/* ./webapps
root@f12370ece6fc:/usr/local/tomcat# ls
BUILDING.txt CONTRIBUTING.md LICENSE NOTICE README.md RELEASE-NOTES RUNNING.txt bin conf lib logs native-jni-lib temp webapps webapps.dist work
root@f12370ece6fc:/usr/local/tomcat# cd webapps
root@f12370ece6fc:/usr/local/tomcat/webapps# ls
ROOT docs examples host-manager manager
# 刷新浏览器,部署成功
Docker部署es+kibana
# es 暴露的端口多
# es 十分耗用内存
# es 数据一般要放到安全的目录!挂载
# --net somenetwork ?网络配置后面再说
# 下载启动elasticsearch容器
[root@VM-0-16-centos /]# docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.6.2
Unable to find image 'elasticsearch:7.6.2' locally
7.6.2: Pulling from library/elasticsearch
ab5ef0e58194: Pull complete
c4d1ca5c8a25: Pull complete
941a3cc8e7b8: Pull complete
43ec483d9618: Pull complete
c486fd200684: Pull complete
1b960df074b2: Pull complete
1719d48d6823: Pull complete
Digest: sha256:1b09dbd93085a1e7bca34830e77d2981521a7210e11f11eda997add1c12711fa
Status: Downloaded newer image for elasticsearch:7.6.2
0f184c3a9fc2457985eef984e14954f3d651ab9a7be5b211447c34ba2b6e4db1
[root@VM-0-16-centos /]#
[root@VM-0-16-centos /]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0f184c3a9fc2 elasticsearch:7.6.2 "/usr/local/bin/dock…" 14 seconds ago Up 13 seconds 0.0.0.0:9200->9200/tcp, :::9200->9200/tcp, 0.0.0.0:9300->9300/tcp, :::9300->9300/tcp elasticsearch
# 查看容器状态,一秒刷一次
[root@VM-0-16-centos /]# docker stats 0f184c3a9fc2
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
0f184c3a9fc2 elasticsearch 0.19% 1.236GiB / 3.701GiB 33.41% 656B / 0B 0B / 696kB 43
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
0f184c3a9fc2 elasticsearch 0.19% 1.236GiB / 3.701GiB 33.41% 656B / 0B 0B / 696kB 43
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
0f184c3a9fc2 elasticsearch 1.80% 1.236GiB / 3.701GiB 33.41% 656B / 0B 0B / 696kB 43
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
0f184c3a9fc2 elasticsearch 1.80% 1.236GiB / 3.701GiB 33.41% 656B / 0B 0B / 696kB 43
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
0f184c3a9fc2 elasticsearch 0.53% 1.236GiB / 3.701GiB 33.41% 656B / 0B 0B / 696kB 43
# elasticsearch允许占用1.23G,如何增加内存限制,修改配置文件 -e 环境配置文件
# docker run -d --name elasticsearch01 -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms64m -Xms512m" elasticsearch:7.6.2
# 限制内存启动
[root@VM-0-16-centos /]# docker run -d --name elasticsearch01 -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms64m -Xms512m" elasticsearch:7.6.2
2769ed2f0e32c984384a461fb19b24c402055ec3c4ed23ada00921a3e68eabe7
[root@VM-0-16-centos /]#
[root@VM-0-16-centos /]#
[root@VM-0-16-centos /]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2769ed2f0e32 elasticsearch:7.6.2 "/usr/local/bin/dock…" 7 seconds ago Up 5 seconds 0.0.0.0:9200->9200/tcp, :::9200->9200/tcp, 0.0.0.0:9300->9300/tcp, :::9300->9300/tcp elasticsearch01
# 查看内存发现小很多了744m
[root@VM-0-16-centos /]# docker stats
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
2769ed2f0e32 elasticsearch01 0.19% 744.2MiB / 3.701GiB 19.64% 656B / 0B 0B / 696kB 43
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
2769ed2f0e32 elasticsearch01 0.19% 744.2MiB / 3.701GiB 19.64% 656B / 0B 0B / 696kB 43
# 测试elasticsearch01是否启动成功
[root@VM-0-16-centos /]# curl localhost:9200
{
"name" : "2769ed2f0e32",
"cluster_name" : "docker-cluster",
"cluster_uuid" : "af7HPF21SKiMVw8rT-tQvw",
"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"
}
思考:kibana连接es? 思考网络如何才能连接过去。
可视化
1、portainer (不是最好的先用这个)
docker run -d -p 8088:9000 --restart=always -v /var/run/docker.sock:/var/run/docker.sock --privileged=true portainer/portainer
# 下载启动运行portainer,注意开启云服务的安全组和端口限制
[root@VM-0-16-centos /]# docker run -d -p 8088:9000 --restart=always -v /var/run/docker.sock:/var/run/docker.sock --privileged=true portainer/portainer
Unable to find image 'portainer/portainer:latest' locally
latest: Pulling from portainer/portainer
94cfa856b2b1: Pull complete
49d59ee0881a: Pull complete
a2300fd28637: Pull complete
Digest: sha256:fb45b43738646048a0a0cc74fcee2865b69efde857e710126084ee5de9be0f3f
Status: Downloaded newer image for portainer/portainer:latest
893253fca79797136411db2ea0b1401ba8b335885d4bb3fe013f8f0fdd046e7c
[root@VM-0-16-centos /]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
893253fca797 portainer/portainer "/portainer" 5 seconds ago Up 5 seconds 0.0.0.0:8088->9000/tcp, :::8088->9000/tcp kind_jepsen
测试访问:http://公网IP:8088 ,设置用户名密码
选择本地,点击连接
登录进来的主界面
鸣谢
本文为狂神说Docker学习笔记
学习地址:https://www.bilibili.com/video/BV1og4y1q7M4