文章目录

  • 帮助命令
  • 镜像命令
    • 查看本机镜像
    • 搜索镜像
    • 下载镜像
    • 删除镜像
    • 查看镜像的历史
  • 容器命令
    • 启动容器
    • 查看运行容器
    • 退出容器
    • 删除容器
    • 启动和停止容器
  • 常用的其他命令
    • 后台启动容器
    • 查看日志
    • 查看容器中进程的信息
    • 查看容器元数据信息
    • 进入正在运行的容器
    • 从容器内部拷贝文件到主机上
  • 小结
  • 作业练习
    • 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的常用命令相关推荐

  1. docker 一起性重启所有镜像_docker系列四之docker镜像与容器的常用命令

    docker镜像与容器的常用命令 一.概述 docker的镜像于容器是docker中两个至关重要的概念,首先给各位读者解释一下笔者对于这两个概念的理解.镜像,我们从字面意思上看,镜子里成像,我们人站在 ...

  2. Docker系列(二): 搭建docker镜像仓库-Nexus、Harbor

    Docker介绍及环境搭建参考: Docker系列一: docker介绍&&安装(含离线安装) Docker系列(二): 搭建docker镜像仓库-Nexus.Harbor Docke ...

  3. Maven(二):常用命令、依赖管理

    相关阅读: Maven(一):安装与环境配置.使用Maven搭建web项目 Maven(二):常用命令.依赖管理 Maven(三):将web项目的war包热部署到远程Tomcat服务器 Maven(四 ...

  4. Docker系列二~自定义网桥

    Docker系列二 docker自定义网桥 查看本地网络 docker network ls #查看本地所有网络[root@localhost conf.d]# docker network ls N ...

  5. docker介绍和安装以及常用命令

    介绍 Docker是基于Go语言实现的云开源项目. 一次镜像,处处运行 传统的部署项目环境配置相当麻烦,换一台机器,就要重来一次,费力费时. Docker的主要目标是"一次镜像,随处运行&q ...

  6. docker笔记1_安装及常用命令

    文章目录 虚拟机与 docker的区别 docker 的基本组成 docker 安装 docker 的运行原理 Docker 的常用命令 1. 帮助命令 1. 镜像命令 1. 容器命令 下一页 虚拟机 ...

  7. Docker小白到实战之常用命令演示,通俗易懂

    前言 上一篇大概认识了Docker,主要是从概念.架构.优点及流程方面进行阐述,并进行安装和体验:接下来就开始进行实操学习,在演示过程中会针对关键的知识点进行归纳和总结,这里先从常用命令说起,来吧,小 ...

  8. docker 删除所有镜像_Docker常用命令

    docker 常用命令 #查看 Docker 版本 docker version #从 Docker 文件构建 Docker 镜像 docker build -t image-name docker ...

  9. Docker学习篇(一)Docker概述、安装和常用命令

    Docker概述 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化.容器是完 ...

最新文章

  1. LeetCode 215. Kth Largest Element in an Array--数字第K大的元素--最大堆或优先队列--C++,Python解法
  2. 开关电源怎么测试文波_示波器测试开关电源纹波的方法
  3. 计算机的主存储器可以分为哪两类,2017年计算机应用基础模拟试题「答案」(2)...
  4. Android学习一:文件操作
  5. C# DataTable用法详解
  6. springboot2.0 多数据源整合问题 At least one JPA metamodel must be present!   at
  7. Elegant Construction HDU-5813 构造
  8. 如何下载php-5.5.38.tar.gz_搭建PHP服务器php-5.3.28.tar.gz
  9. push指令的执行过程
  10. 面试之mybatis和hibernate的区别
  11. JavaWeb-谷歌验证码的使用
  12. 用大数据预测雾霾,微软是如何做的?
  13. python爬虫爬取网易云音乐歌曲_如何用Python网络爬虫爬取网易云音乐歌曲
  14. 通达信版弘历软件指标_通达信仿弘历软件的六彩神龙指标公式副图源码
  15. matlab usb采集,求助MATLAB是否支持USB数据采集卡
  16. 吐血给女朋友讲解spring循环依赖
  17. c语言编程星号输出图形的步骤,使用C语言打印不同星号图案
  18. Maximum Likelihood 最大似然估计
  19. 关于Efficient Subgraph Matching by Postponing Cartesian的批注
  20. Android手游3d模型导出,楚留香手游3D模型怎么提取 提取教程

热门文章

  1. python实现单位换算计算
  2. Android 博客周刊13期
  3. 万字综述!从21篇最新论文看多模态预训练模型研究进展
  4. 中国石油大学《大学英语(三)》第二阶段在线作业
  5. jvm内存分区和TLAB
  6. 微信小程序——支付成功后更新订单为已支付
  7. 制作Tomcat镜像
  8. 戴尔 inspiron 的 fn 键怎么设置
  9. 3D面具破解人脸识别?这事儿没那么简单……
  10. 养兔子c语言sdut,SDUT 1218 养兔子