Docker系列(二)-Dcoker的常用命令
文章目录
- 帮助命令
- 镜像命令
- 查看本机镜像
- 搜索镜像
- 下载镜像
- 删除镜像
- 查看镜像的历史
- 容器命令
- 启动容器
- 查看运行容器
- 退出容器
- 删除容器
- 启动和停止容器
- 常用的其他命令
- 后台启动容器
- 查看日志
- 查看容器中进程的信息
- 查看容器元数据信息
- 进入正在运行的容器
- 从容器内部拷贝文件到主机上
- 小结
- 作业练习
- Docker安装nginx
- Docker安装tomcat
- Docker部署es+kibana
- 可视化
- 鸣谢
帮助命令
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 0f184c3a9fc2CONTAINER 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 43CONTAINER 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 43CONTAINER 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 43CONTAINER 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 43CONTAINER 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 statsCONTAINER 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 43CONTAINER 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
Docker系列(二)-Dcoker的常用命令相关推荐
- docker 一起性重启所有镜像_docker系列四之docker镜像与容器的常用命令
docker镜像与容器的常用命令 一.概述 docker的镜像于容器是docker中两个至关重要的概念,首先给各位读者解释一下笔者对于这两个概念的理解.镜像,我们从字面意思上看,镜子里成像,我们人站在 ...
- Docker系列(二): 搭建docker镜像仓库-Nexus、Harbor
Docker介绍及环境搭建参考: Docker系列一: docker介绍&&安装(含离线安装) Docker系列(二): 搭建docker镜像仓库-Nexus.Harbor Docke ...
- Maven(二):常用命令、依赖管理
相关阅读: Maven(一):安装与环境配置.使用Maven搭建web项目 Maven(二):常用命令.依赖管理 Maven(三):将web项目的war包热部署到远程Tomcat服务器 Maven(四 ...
- Docker系列二~自定义网桥
Docker系列二 docker自定义网桥 查看本地网络 docker network ls #查看本地所有网络[root@localhost conf.d]# docker network ls N ...
- docker介绍和安装以及常用命令
介绍 Docker是基于Go语言实现的云开源项目. 一次镜像,处处运行 传统的部署项目环境配置相当麻烦,换一台机器,就要重来一次,费力费时. Docker的主要目标是"一次镜像,随处运行&q ...
- docker笔记1_安装及常用命令
文章目录 虚拟机与 docker的区别 docker 的基本组成 docker 安装 docker 的运行原理 Docker 的常用命令 1. 帮助命令 1. 镜像命令 1. 容器命令 下一页 虚拟机 ...
- Docker小白到实战之常用命令演示,通俗易懂
前言 上一篇大概认识了Docker,主要是从概念.架构.优点及流程方面进行阐述,并进行安装和体验:接下来就开始进行实操学习,在演示过程中会针对关键的知识点进行归纳和总结,这里先从常用命令说起,来吧,小 ...
- docker 删除所有镜像_Docker常用命令
docker 常用命令 #查看 Docker 版本 docker version #从 Docker 文件构建 Docker 镜像 docker build -t image-name docker ...
- Docker学习篇(一)Docker概述、安装和常用命令
Docker概述 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化.容器是完 ...
最新文章
- LeetCode 215. Kth Largest Element in an Array--数字第K大的元素--最大堆或优先队列--C++,Python解法
- 开关电源怎么测试文波_示波器测试开关电源纹波的方法
- 计算机的主存储器可以分为哪两类,2017年计算机应用基础模拟试题「答案」(2)...
- Android学习一:文件操作
- C# DataTable用法详解
- springboot2.0 多数据源整合问题 At least one JPA metamodel must be present! at
- Elegant Construction HDU-5813 构造
- 如何下载php-5.5.38.tar.gz_搭建PHP服务器php-5.3.28.tar.gz
- push指令的执行过程
- 面试之mybatis和hibernate的区别
- JavaWeb-谷歌验证码的使用
- 用大数据预测雾霾,微软是如何做的?
- python爬虫爬取网易云音乐歌曲_如何用Python网络爬虫爬取网易云音乐歌曲
- 通达信版弘历软件指标_通达信仿弘历软件的六彩神龙指标公式副图源码
- matlab usb采集,求助MATLAB是否支持USB数据采集卡
- 吐血给女朋友讲解spring循环依赖
- c语言编程星号输出图形的步骤,使用C语言打印不同星号图案
- Maximum Likelihood 最大似然估计
- 关于Efficient Subgraph Matching by Postponing Cartesian的批注
- Android手游3d模型导出,楚留香手游3D模型怎么提取 提取教程