Docker系列(二)-Dcoker的常用命令

帮助命令
docker version		# 显示docker的版本信息
docker info			# 显示docker的系统信息,包括、镜像的容器信息
docker [命令] --help # 这是一个万能的命令

帮助文档地址:https://docs.docker.com/engine/reference/commandline

镜像命令
查看本机镜像

docker images

[root@VM-0-16-centos docker]# docker images
REPOSITORY    TAG       IMAGE ID       CREATED       SIZE
hello-world   latest    feb5d9fea6a5   3 weeks ago   13.3kB

# 解释:
REPOSITORY 	镜像的仓库源
TAG 		镜像的标记-版本号
IMAGE ID	镜像的ID
CREATED		镜像创建时间
SIZE		镜像大小

# 可选项
-a, --all             列出所有的镜像
-q, --quiet           只显示镜像的ID

# 例子
docker images -a
docker images -q
搜索镜像

docker search 镜像名称

[root@VM-0-16-centos docker]# docker search mysql
NAME                              DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
mysql                             MySQL is a widely used, open-source relation…   11547     [OK]       
mariadb                           MariaDB Server is a high performing open sou…   4393      [OK]       
mysql/mysql-server                Optimized MySQL Server Docker images. Create…   854                  [OK]
phpmyadmin                        phpMyAdmin - A web interface for MySQL and M…   347       [OK]

# 可选项,可通过STARS收藏过滤mysql
# docker search mysql --filter=STARS=3000 只搜索mysqlSTARS大于3000的
[root@VM-0-16-centos docker]# docker search mysql --filter=STARS=3000
NAME      DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
mysql     MySQL is a widely used, open-source relation…   11547     [OK]       
mariadb   MariaDB Server is a high performing open sou…   4393      [OK]

# 只搜索mysqlSTARS大于5000的
[root@VM-0-16-centos docker]# docker search mysql --filter=STARS=5000
NAME      DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
mysql     MySQL is a widely used, open-source relation…   11547     [OK]
下载镜像

docker pull 镜像名:tag

# 下载镜像 docker pull [镜像名:tag]
[root@VM-0-16-centos docker]# docker pull mysql
Using default tag: latest	# 如果不写tag者默认下载最新的版本
latest: Pulling from library/mysql
b380bbd43752: Pull complete  # 使用的分层下载,这是docker镜像的核心,联合文件系统
f23cbf2ecc5d: Pull complete 
30cfc6c29c0a: Pull complete 
b38609286cbe: Pull complete 
8211d9e66cd6: Pull complete 
2313f9eeca4a: Pull complete 
7eb487d00da0: Pull complete 
4d7421c8152e: Pull complete 
77f3d8811a28: Pull complete 
cce755338cba: Pull complete 
69b753046b9f: Pull complete 
b2e64b0ab53c: Pull complete 
Digest: sha256:6d7d4524463fe6e2b893ffc2b89543c81dec7ef82fb2020a1b27606666464d87
Status: Downloaded newer image for mysql:latest
docker.io/library/mysql:latest # 镜像的真实地址

#等价命令
docker pull mysql
docker pull docker.io/library/mysql:latest

#指定版本下载
[root@VM-0-16-centos docker]# docker pull mysql:5.7
5.7: Pulling from library/mysql
b380bbd43752: Already exists 
f23cbf2ecc5d: Already exists 
30cfc6c29c0a: Already exists 
b38609286cbe: Already exists 
8211d9e66cd6: Already exists 
2313f9eeca4a: Already exists 
7eb487d00da0: Already exists 
a71aacf913e7: Pull complete 
393153c555df: Pull complete 
06628e2290d7: Pull complete 
ff2ab8dac9ac: Pull complete 
Digest: sha256:2db8bfd2656b51ded5d938abcded8d32ec6181a9eae8dfc7ddf87a656ef97e97
Status: Downloaded newer image for mysql:5.7
docker.io/library/mysql:5.7

# 查看刚才下载的镜像
[root@VM-0-16-centos docker]# docker images
REPOSITORY    TAG       IMAGE ID       CREATED        SIZE
mysql         5.7       938b57d64674   10 hours ago   448MB
mysql         latest    ecac195d15af   10 hours ago   516MB
hello-world   latest    feb5d9fea6a5   3 weeks ago    13.3kB
删除镜像

docker rmi -f 镜像ID

# 根据IMAGE ID删除指定的镜像,rm-删除,i-immages的意思。docker rmi -f [镜像ID]
[root@VM-0-16-centos docker]# docker rmi -f 938b57d64674
Untagged: mysql:5.7
Untagged: mysql@sha256:2db8bfd2656b51ded5d938abcded8d32ec6181a9eae8dfc7ddf87a656ef97e97
Deleted: sha256:938b57d64674c4a123bf8bed384e5e057be77db934303b3023d9be331398b761
Deleted: sha256:d81fc74bcfc422d67d8507aa0688160bc4ca6515e0a1c8edcdb54f89a0376ff1
Deleted: sha256:a6a530ba6d8591630a1325b53ef2404b8ab593a0775441b716ac4175c14463e6
Deleted: sha256:2a503984330e2cec317bc2ef793f5d4d7b3fd8d50009a4f673026c3195460200
Deleted: sha256:e2a4585c625da1cf4909cdf89b8433dd89ed5c90ebdb3a979d068b161513de90

# 删除多个容器,docker rmi -f [镜像ID1] [镜像ID2] [镜像ID3]

# 删除全部容器,$() 给命令传参->查询出所有的容器ID遍历删除所有的容器	
[root@VM-0-16-centos docker]# docker rmi -f $(docker images -aq)
Untagged: mysql:latest
Untagged: mysql@sha256:6d7d4524463fe6e2b893ffc2b89543c81dec7ef82fb2020a1b27606666464d87
Deleted: sha256:ecac195d15afac2335de52fd7a0e34202fe582731963d31830f1b97700bf9509
Deleted: sha256:451fe04d80b84c0b7aca0f0bbdaa5de7c7ac85a65389ed5d3ed492f63ac092e2
Deleted: sha256:814cbf8bc7f6bb85685e5b803e16a76406c30d1960c566eee76303ffac600600
Deleted: sha256:735f72e1d1b936bb641b6a1283e4e60bf10a0c36f8244a5e3f8c7d58fa95b98a
Deleted: sha256:f2d209a30c3950fadffb2d82e1faa434da0753bee7aacad9cdec7d8a7a83df37
Deleted: sha256:03b9f8c5331d9534d2372a144bcffc8402e5f7972c9e4b85c634bef203ec6d20
Deleted: sha256:80f5487a88b8061855e99782979ed6069a8dd1c7dfbb1eb63fe42a4a9d119436
Deleted: sha256:f791a6c727931d41c51f8bf24ee32a4dbf0169f372b174f1ff89b4836b97c48e
Deleted: sha256:4c88df098412e11a98936509f3cede57f87154b350b0f75d96713f6e1dd56101
Deleted: sha256:fdba3a2cd286d9a5f65fc00f5254048855ae7dc00f3b3fa3356981eb9a7fe6d0
Deleted: sha256:8b3a69042e0da82429d28be0c474e73290ba4908730de22b2200a7aac9b245bd
Deleted: sha256:90afe56a0643f5bf1b1e8ee147b40a8e12b3fdd7e26bc2d2c50180d68dd524d0
Deleted: sha256:e81bff2725dbc0bf2003db10272fef362e882eb96353055778a66cda430cf81b
Untagged: hello-world:latest
Untagged: hello-world@sha256:37a0b92b08d4919615c3ee023f7ddb068d12b8387475d64c622ac30f45c29c51
Deleted: sha256:feb5d9fea6a5e9606aa995e879d862b825965ba48de054caab5ef356dc6b3412
[root@VM-0-16-centos docker]# docker images
REPOSITORY   TAG       IMAGE ID   CREATED   SIZE
查看镜像的历史

docker history 镜像名

[root@VM-0-16-centos dockerfile-centos]# docker images
REPOSITORY     TAG       IMAGE ID       CREATED          SIZE
mycentos       1.0       892f16103d44   22 minutes ago   336MB
hecan/centos   1.0       507d0341e62a   24 hours ago     231MB
mysql          5.7       938b57d64674   8 days ago       448MB
nginx          latest    87a94228f133   2 weeks ago      133MB
centos         latest    5d0da3dc9764   5 weeks ago      231MB
[root@VM-0-16-centos dockerfile-centos]# docker history mysql:5.7
IMAGE          CREATED       CREATED BY                                      SIZE      COMMENT
938b57d64674   8 days ago    /bin/sh -c #(nop)  CMD ["mysqld"]               0B        
<missing>      8 days ago    /bin/sh -c #(nop)  EXPOSE 3306 33060            0B        
<missing>      8 days ago    /bin/sh -c #(nop)  ENTRYPOINT ["docker-entry…   0B        
<missing>      8 days ago    /bin/sh -c ln -s usr/local/bin/docker-entryp…   34B       
<missing>      8 days ago    /bin/sh -c #(nop) COPY file:345a22fe55d3e678…   14.5kB    
<missing>      8 days ago    /bin/sh -c #(nop)  VOLUME [/var/lib/mysql]      0B        
<missing>      8 days ago    /bin/sh -c {   echo mysql-community-server m…   313MB     
<missing>      8 days ago    /bin/sh -c echo 'deb http://repo.mysql.com/a…   55B       
<missing>      8 days ago    /bin/sh -c #(nop)  ENV MYSQL_VERSION=5.7.36-…   0B        
<missing>      2 weeks ago   /bin/sh -c #(nop)  ENV MYSQL_MAJOR=5.7          0B        
<missing>      2 weeks ago   /bin/sh -c set -ex;  key='A4A9406876FCBD3C45…   1.84kB    
<missing>      2 weeks ago   /bin/sh -c apt-get update && apt-get install…   52.2MB    
<missing>      2 weeks ago   /bin/sh -c mkdir /docker-entrypoint-initdb.d    0B        
<missing>      2 weeks ago   /bin/sh -c set -eux;  savedAptMark="$(apt-ma…   4.17MB    
<missing>      2 weeks ago   /bin/sh -c #(nop)  ENV GOSU_VERSION=1.12        0B        
<missing>      2 weeks ago   /bin/sh -c apt-get update && apt-get install…   9.34MB    
<missing>      2 weeks ago   /bin/sh -c groupadd -r mysql && useradd -r -…   329kB     
<missing>      2 weeks ago   /bin/sh -c #(nop)  CMD ["bash"]                 0B        
<missing>      2 weeks ago   /bin/sh -c #(nop) ADD file:910392427fdf089bc…   69.3MB    
[root@VM-0-16-centos dockerfile-centos]# 

从上可以看出images的执行历史记录步骤。

容器命令

说明:当我们有了镜像后就可以创建容器,下载一个CentOS的镜像来测试学习。使用docker来创建一个linux系统

# 下载一个最新的centos系统
docker pull centos
启动容器

docker run 可选参数 镜像名称

docker run [可选参数] [镜像名称]

# 参数说明
--name="Name"	# 容器名字 tomcat01 tomcat03 tomcat03用来区分容器
-d				# 以后台的方式运行
-it				# 使用交互模式运行,进入容器查看内容
-p				# 指定容器端口 -p 8080:8080
	# 端口使用方式
	-p ip:主机端口:容器端口
	-p 主机端口:容器端口 # 常用的使用方式
	-p 容器端口
	容器端口
-P				# 大写P随机指定端口

# 测试,启动并进入容器
[root@VM-0-16-centos /]# docker run -it centos /bin/bash
[root@bc2de74692d8 /]# ls		# 查看容器内的centos,我们已经成功的进入了容器的linux系统
bin  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var

# 从容器中退回主机
[root@bc2de74692d8 /]# exit
exit
[root@VM-0-16-centos /]# ls
bin  boot  data  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
[root@VM-0-16-centos /]# 

# 一般用来测试,用完会完全的删除容器
docker run -it --rm [镜像名称]
查看运行容器

docker ps

# docker ps 命令
[留空]   # 列出当前运行的程序
-a 		# 列出当前运行的程序+之前运行过的程序
-n=? 	# 列出最近的n个容器 例如:docker ps -a -n=1
-q		# 只显示容器的编号ID

# 列出当前运行的程序		之前使用的是exit退出,容器不会运行
[root@VM-0-16-centos /]# docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

# 列出当前运行的程序+之前运行过的程序
[root@VM-0-16-centos /]# docker ps -a
CONTAINER ID   IMAGE          COMMAND       CREATED         STATUS                       PORTS     NAMES
bc2de74692d8   centos         "/bin/bash"   9 minutes ago   Exited (130) 4 minutes ago             recursing_shaw
22e209e12519   feb5d9fea6a5   "/hello"      4 hours ago     Exited (0) 4 hours ago                 pensive_kowalevski

# 列出最近的n个容器
[root@VM-0-16-centos /]# docker ps -a -n=1
CONTAINER ID   IMAGE     COMMAND       CREATED          STATUS                        PORTS     NAMES
bc2de74692d8   centos    "/bin/bash"   15 minutes ago   Exited (130) 10 minutes ago             recursing_shaw

# 只显示容器的编号ID
[root@VM-0-16-centos /]# docker ps -aq
bc2de74692d8
22e209e12519
退出容器

exit 或 ctrl+p+q

# exit		#直接容器停止并退出
# ctrl+p+q	#容器不停止退出

# 容器不停止退出
[root@VM-0-16-centos /]# docker run -it centos /bin/bash  # 运行并进入centos容器
[root@1bb7c0b00bf8 /]# [root@VM-0-16-centos /]# docker ps #执行ctrl+p+q退出后查看容器还在继续运行
CONTAINER ID   IMAGE     COMMAND       CREATED          STATUS          PORTS     NAMES
1bb7c0b00bf8   centos    "/bin/bash"   12 seconds ago   Up 11 seconds             agitated_aryabhata

删除容器

docker rm 容器ID

# 根据容器ID删除容器,不能删除正在运行的容器,如果要强制删除使用命令:docker rm -f [容器ID]
docker rm [容器ID]
[root@VM-0-16-centos /]# docker ps -a
CONTAINER ID   IMAGE          COMMAND       CREATED        STATUS                      PORTS     NAMES
1bb7c0b00bf8   centos         "/bin/bash"   5 hours ago    Up 5 hours                            agitated_aryabhata
bc2de74692d8   centos         "/bin/bash"   21 hours ago   Exited (130) 21 hours ago             recursing_shaw
22e209e12519   feb5d9fea6a5   "/hello"      25 hours ago   Exited (0) 25 hours ago               pensive_kowalevski
[root@VM-0-16-centos /]# docker rm bc2de74692d8
bc2de74692d8
[root@VM-0-16-centos /]# docker ps -a
CONTAINER ID   IMAGE          COMMAND       CREATED        STATUS                    PORTS     NAMES
1bb7c0b00bf8   centos         "/bin/bash"   5 hours ago    Up 5 hours                          agitated_aryabhata
22e209e12519   feb5d9fea6a5   "/hello"      25 hours ago   Exited (0) 25 hours ago             pensive_kowalevski

# 删除全部的容器
docker rm -f $(docker ps -aq)
[root@VM-0-16-centos /]# docker ps -aq
1bb7c0b00bf8
22e209e12519
[root@VM-0-16-centos /]# docker rm -f $(docker ps -aq)
1bb7c0b00bf8
22e209e12519
[root@VM-0-16-centos /]# docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

# 等价命令,删除全部的容器
docker rm -f $(docker ps -aq)
docker ps -a -q|xargs docker rm
启动和停止容器
docker start [容器ID]		# 启动容器
docker restart [容器ID]	# 重启容器
docker stop [容器ID]		# 停止当前正在运行的容器
docker kill [容器ID]		# 强制停止当前容器
常用的其他命令

前面介绍的命令都是基础的命令,常用命令才是我们经常操作的命令很重要!!!很重要!!!很重要!!!

后台启动容器
# 命令:docker run -d [镜像名]
[root@VM-0-16-centos /]# docker run -d centos
04b1f15661772296b7007df426f8b3f459b16efcac8187ffd27307db86a8649c
[root@VM-0-16-centos /]# docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
# 问题:发现刚启动的centos容器自动停止了
# 常见的坑:docker 容器使用后台运行,就必须要有一个前台进程,docker发现没有应用,就会自动停止。
# nginx 容器启动后,发现自己没有相关服务,就会立刻停止,没有程序了
查看日志
docker logs -f -t --tail [容器ID]			# 容器没有日志

# 自己编写一段脚本启动容器并生成日志
docker run -d centos /bin/sh -c "while true;do echo hecan;sleep 1;done"

# 查看运行日志(查看最后10行的日志,同时滚动查看新日志)
[root@VM-0-16-centos /]# docker logs -f -t --tail 10 8355654b5aa3
2021-10-20T08:21:23.394953984Z hecan
2021-10-20T08:21:24.396904480Z hecan
2021-10-20T08:21:25.398632538Z hecan
2021-10-20T08:21:26.400784744Z hecan
2021-10-20T08:21:27.402518008Z hecan
2021-10-20T08:21:28.404628333Z hecan
2021-10-20T08:21:29.406724799Z hecan
2021-10-20T08:21:30.409114272Z hecan
2021-10-20T08:21:31.410931343Z hecan
2021-10-20T08:21:32.412850668Z hecan
......

# 查看容器所有的日志
[root@VM-0-16-centos /]# docker logs -tf 8355654b5aa3
2021-10-20T08:18:30.026496421Z hecan
2021-10-20T08:18:31.028907454Z hecan
2021-10-20T08:18:32.030883129Z hecan
2021-10-20T08:18:33.032861153Z hecan
2021-10-20T08:18:34.034819431Z hecan
2021-10-20T08:18:35.037167822Z hecan
2021-10-20T08:18:36.039150329Z hecan
2021-10-20T08:18:37.041657574Z hecan
2021-10-20T08:18:38.044322153Z hecan
2021-10-20T08:18:39.046054330Z hecan
2021-10-20T08:18:40.048071308Z hecan
2021-10-20T08:18:41.049943485Z hecan
......
查看容器中进程的信息
# 命令:docker top 容器ID
[root@VM-0-16-centos /]# docker top 070a398fde37
UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMD
root                30690               30671               0                   17:10               pts/0               00:00:00            /bin/bash
查看容器元数据信息
# 命令:docker inspect [容器ID]
[root@VM-0-16-centos /]# docker inspect 070a398fde37
[
    {
        "Id": "070a398fde376a46dd3c5d24f3385e1ddcec345e110ee7b1696c40cc1651e5f4",
        "Created": "2021-10-20T09:10:44.928099721Z",
        "Path": "/bin/bash",
        "Args": [],
        "State": {
            "Status": "running",
            "Running": true,
            "Paused": false,
            "Restarting": false,
            "OOMKilled": false,
            "Dead": false,
            "Pid": 30690,
            "ExitCode": 0,
            "Error": "",
            "StartedAt": "2021-10-20T09:10:45.229953288Z",
            "FinishedAt": "0001-01-01T00:00:00Z"
        },
        "Image": "sha256:5d0da3dc976460b72c77d94c8a1ad043720b0416bfc16c52c45d4847e53fadb6",
        "ResolvConfPath": "/var/lib/docker/containers/070a398fde376a46dd3c5d24f3385e1ddcec345e110ee7b1696c40cc1651e5f4/resolv.conf",
        "HostnamePath": "/var/lib/docker/containers/070a398fde376a46dd3c5d24f3385e1ddcec345e110ee7b1696c40cc1651e5f4/hostname",
        "HostsPath": "/var/lib/docker/containers/070a398fde376a46dd3c5d24f3385e1ddcec345e110ee7b1696c40cc1651e5f4/hosts",
        "LogPath": "/var/lib/docker/containers/070a398fde376a46dd3c5d24f3385e1ddcec345e110ee7b1696c40cc1651e5f4/070a398fde376a46dd3c5d24f3385e1ddcec345e110ee7b1696c40cc1651e5f4-json.log",
        "Name": "/funny_pare",
        "RestartCount": 0,
        "Driver": "overlay2",
        "Platform": "linux",
        "MountLabel": "",
        "ProcessLabel": "",
        "AppArmorProfile": "",
        "ExecIDs": null,
        "HostConfig": {
            "Binds": null,
            "ContainerIDFile": "",
            "LogConfig": {
                "Type": "json-file",
                "Config": {}
            },
            "NetworkMode": "default",
            "PortBindings": {},
            "RestartPolicy": {
                "Name": "no",
                "MaximumRetryCount": 0
            },
            "AutoRemove": false,
            "VolumeDriver": "",
            "VolumesFrom": null,
            "CapAdd": null,
            "CapDrop": null,
            "CgroupnsMode": "host",
            "Dns": [],
            "DnsOptions": [],
            "DnsSearch": [],
            "ExtraHosts": null,
            "GroupAdd": null,
            "IpcMode": "private",
            "Cgroup": "",
            "Links": null,
            "OomScoreAdj": 0,
            "PidMode": "",
            "Privileged": false,
            "PublishAllPorts": false,
            "ReadonlyRootfs": false,
            "SecurityOpt": null,
            "UTSMode": "",
            "UsernsMode": "",
            "ShmSize": 67108864,
            "Runtime": "runc",
            "ConsoleSize": [
                0,
                0
            ],
            "Isolation": "",
            "CpuShares": 0,
            "Memory": 0,
            "NanoCpus": 0,
            "CgroupParent": "",
            "BlkioWeight": 0,
            "BlkioWeightDevice": [],
            "BlkioDeviceReadBps": null,
            "BlkioDeviceWriteBps": null,
            "BlkioDeviceReadIOps": null,
            "BlkioDeviceWriteIOps": null,
            "CpuPeriod": 0,
            "CpuQuota": 0,
            "CpuRealtimePeriod": 0,
            "CpuRealtimeRuntime": 0,
            "CpusetCpus": "",
            "CpusetMems": "",
            "Devices": [],
            "DeviceCgroupRules": null,
            "DeviceRequests": null,
            "KernelMemory": 0,
            "KernelMemoryTCP": 0,
            "MemoryReservation": 0,
            "MemorySwap": 0,
            "MemorySwappiness": null,
            "OomKillDisable": false,
            "PidsLimit": null,
            "Ulimits": null,
            "CpuCount": 0,
            "CpuPercent": 0,
            "IOMaximumIOps": 0,
            "IOMaximumBandwidth": 0,
            "MaskedPaths": [
                "/proc/asound",
                "/proc/acpi",
                "/proc/kcore",
                "/proc/keys",
                "/proc/latency_stats",
                "/proc/timer_list",
                "/proc/timer_stats",
                "/proc/sched_debug",
                "/proc/scsi",
                "/sys/firmware"
            ],
            "ReadonlyPaths": [
                "/proc/bus",
                "/proc/fs",
                "/proc/irq",
                "/proc/sys",
                "/proc/sysrq-trigger"
            ]
        },
        "GraphDriver": {
            "Data": {
                "LowerDir": "/var/lib/docker/overlay2/e26e947be7ae15f5757f3f9bec471143bb5891a6cec25b1d60b43a6f02645082-init/diff:/var/lib/docker/overlay2/3b52c65087c3fbdce68a73d5f20f3391dda96cd04748bf6126a40c9a99bcf8e3/diff",
                "MergedDir": "/var/lib/docker/overlay2/e26e947be7ae15f5757f3f9bec471143bb5891a6cec25b1d60b43a6f02645082/merged",
                "UpperDir": "/var/lib/docker/overlay2/e26e947be7ae15f5757f3f9bec471143bb5891a6cec25b1d60b43a6f02645082/diff",
                "WorkDir": "/var/lib/docker/overlay2/e26e947be7ae15f5757f3f9bec471143bb5891a6cec25b1d60b43a6f02645082/work"
            },
            "Name": "overlay2"
        },
        "Mounts": [],
        "Config": {
            "Hostname": "070a398fde37",
            "Domainname": "",
            "User": "",
            "AttachStdin": true,
            "AttachStdout": true,
            "AttachStderr": true,
            "Tty": true,
            "OpenStdin": true,
            "StdinOnce": true,
            "Env": [
                "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
            ],
            "Cmd": [
                "/bin/bash"
            ],
            "Image": "centos",
            "Volumes": null,
            "WorkingDir": "",
            "Entrypoint": null,
            "OnBuild": null,
            "Labels": {
                "org.label-schema.build-date": "20210915",
                "org.label-schema.license": "GPLv2",
                "org.label-schema.name": "CentOS Base Image",
                "org.label-schema.schema-version": "1.0",
                "org.label-schema.vendor": "CentOS"
            }
        },
        "NetworkSettings": {
            "Bridge": "",
            "SandboxID": "c64dc9b5ee3d7ea8bfd901259a26ae75dee93a0c2c700ed7be819ddf1838c4e9",
            "HairpinMode": false,
            "LinkLocalIPv6Address": "",
            "LinkLocalIPv6PrefixLen": 0,
            "Ports": {},
            "SandboxKey": "/var/run/docker/netns/c64dc9b5ee3d",
            "SecondaryIPAddresses": null,
            "SecondaryIPv6Addresses": null,
            "EndpointID": "7b9977a0b691c26b028b2aa2defb93d63655634bd385e8a6d28dd94f1d7b8297",
            "Gateway": "172.17.0.1",
            "GlobalIPv6Address": "",
            "GlobalIPv6PrefixLen": 0,
            "IPAddress": "172.17.0.2",
            "IPPrefixLen": 16,
            "IPv6Gateway": "",
            "MacAddress": "02:42:ac:11:00:02",
            "Networks": {
                "bridge": {
                    "IPAMConfig": null,
                    "Links": null,
                    "Aliases": null,
                    "NetworkID": "9f7b4676cc486b2f47bc7a0fecd9a9c6c8e6249f2c4f37817efa00a3f05d1bc5",
                    "EndpointID": "7b9977a0b691c26b028b2aa2defb93d63655634bd385e8a6d28dd94f1d7b8297",
                    "Gateway": "172.17.0.1",
                    "IPAddress": "172.17.0.2",
                    "IPPrefixLen": 16,
                    "IPv6Gateway": "",
                    "GlobalIPv6Address": "",
                    "GlobalIPv6PrefixLen": 0,
                    "MacAddress": "02:42:ac:11:00:02",
                    "DriverOpts": null
                }
            }
        }
    }
]
进入正在运行的容器
# 我们通常容器都是使用后台方式运行的,需要进入容器,修改一些配置
# 命令:docker exec -it [容器ID] bashShell
[root@VM-0-16-centos /]# docker ps
CONTAINER ID   IMAGE     COMMAND       CREATED          STATUS          PORTS     NAMES
070a398fde37   centos    "/bin/bash"   21 minutes ago   Up 21 minutes             funny_pare
[root@VM-0-16-centos /]# docker exec -it 070a398fde37 /bin/bash
[root@070a398fde37 /]# ps -ef
UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  0 09:10 pts/0    00:00:00 /bin/bash
root        16     0  0 09:32 pts/1    00:00:00 /bin/bash
root        30    16  0 09:32 pts/1    00:00:00 ps -ef

# 方式2 命令:docker attach [容器ID]
[root@VM-0-16-centos /]# docker attach 070a398fde37
# 正在执行当前的代码......
[root@070a398fde37 /]# ps -ef
UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  0 09:10 pts/0    00:00:00 /bin/bash
root        16     0  0 09:32 pts/1    00:00:00 /bin/bash
root        32     1  0 09:35 pts/0    00:00:00 ps -ef

# 对比
#docker exec		# 进入容器后打开一个新的终端,可以在里面直接操作(常用)
#docker attach		# 进入容器当前正在执行的终端,不会启动新的进程!
从容器内部拷贝文件到主机上
# dockers cp 容器ID:文件所在容器内的路径 目的主机的存放路径

# 查看运行的容器
[root@VM-0-16-centos /]# docker ps
CONTAINER ID   IMAGE     COMMAND       CREATED        STATUS        PORTS     NAMES
070a398fde37   centos    "/bin/bash"   16 hours ago   Up 16 hours             funny_pare
# 进入正在运行的容器
[root@VM-0-16-centos /]# docker attach 070a398fde37
# 进入容器里面的home目录并创建一个test.java文件,然后退出容器回到主机
[root@070a398fde37 /]# cd /home 
[root@070a398fde37 home]# ls
[root@070a398fde37 home]# touch test.java
[root@070a398fde37 home]# exit
exit
# 再次查看刚才的容器,无论容器是否允许,我们都可以将文件从容器里赋值到主机上
[root@VM-0-16-centos /]# docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
[root@VM-0-16-centos /]# docker ps -a
CONTAINER ID   IMAGE     COMMAND                  CREATED        STATUS                      PORTS     NAMES
070a398fde37   centos    "/bin/bash"              16 hours ago   Exited (0) 14 seconds ago             funny_pare
5d4a10e0ade3   centos    "/bin/bash"              16 hours ago   Exited (0) 16 hours ago               recursing_galois
8355654b5aa3   centos    "/bin/sh -c 'while t…"   17 hours ago   Exited (137) 17 hours ago             heuristic_dubinsky
96f52a2e1526   centos    "/bin/bash"              17 hours ago   Exited (0) 17 hours ago               suspicious_haslett
04b1f1566177   centos    "/bin/bash"              18 hours ago   Exited (0) 18 hours ago               sleepy_satoshi
# 执行命令,将容器里面的test.java文件复制到主机的/home目录下面
[root@VM-0-16-centos /]# docker cp 070a398fde37:/home/test.java /home
[root@VM-0-16-centos /]# cd home/
[root@VM-0-16-centos home]# ls
lighthouse  test.java

# 这个拷贝是一个手动的过程,未来我们使用 -V 卷的技术,可以实现主机/home 和 容器/home 之间的绑定,实现自动的同步

建议:命令方式,将所有的命令自己全部的手敲一遍,自己记录一下笔记!!!

小结

命令小结图

在这里插入图片描述

作业练习
Docker安装nginx
# 1、查看当前允许的容器
[root@VM-0-16-centos home]# docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
[root@VM-0-16-centos home]# clear
# 2、搜索nginx镜像,也可以在dockerHub上搜索nginx,查看具体的版本号信息
[root@VM-0-16-centos home]# docker search nginx
NAME                              DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
nginx                             Official build of Nginx.                        15666     [OK]       
jwilder/nginx-proxy               Automated Nginx reverse proxy for docker con…   2080                 [OK]
richarvey/nginx-php-fpm           Container running Nginx + PHP-FPM capable of…   818                  [OK]
jc21/nginx-proxy-manager          Docker container for managing Nginx proxy ho…   259                  
linuxserver/nginx                 An Nginx container, brought to you by LinuxS…   157                  
tiangolo/nginx-rtmp               Docker image with Nginx using the nginx-rtmp…   142                  [OK]
jlesage/nginx-proxy-manager       Docker container for Nginx Proxy Manager        140                  [OK]
alfg/nginx-rtmp                   NGINX, nginx-rtmp-module and FFmpeg from sou…   110                  [OK]
jasonrivers/nginx-rtmp            Docker images to host RTMP streams using NGI…   95                   [OK]
nginxdemos/hello                  NGINX webserver that serves a simple page co…   74                   [OK]
privatebin/nginx-fpm-alpine       PrivateBin running on an Nginx, php-fpm & Al…   59                   [OK]
nginx/nginx-ingress               NGINX and  NGINX Plus Ingress Controllers fo…   55                   
nginxinc/nginx-unprivileged       Unprivileged NGINX Dockerfiles                  54                   
staticfloat/nginx-certbot         Opinionated setup for automatic TLS certs lo…   25                   [OK]
nginxproxy/nginx-proxy            Automated Nginx reverse proxy for docker con…   23                   
nginx/nginx-prometheus-exporter   NGINX Prometheus Exporter for NGINX and NGIN…   21                   
schmunk42/nginx-redirect          A very simple container to redirect HTTP tra…   19                   [OK]
centos/nginx-112-centos7          Platform for running nginx 1.12 or building …   15                   
raulr/nginx-wordpress             Nginx front-end for the official wordpress:f…   13                   [OK]
centos/nginx-18-centos7           Platform for running nginx 1.8 or building n…   13                   
flashspys/nginx-static            Super Lightweight Nginx Image                   11                   [OK]
mailu/nginx                       Mailu nginx frontend                            9                    [OK]
sophos/nginx-vts-exporter         Simple server that scrapes Nginx vts stats a…   7                    [OK]
ansibleplaybookbundle/nginx-apb   An APB to deploy NGINX                          2                    [OK]
wodby/nginx                       Generic nginx                                   1                    [OK]
# 3、下载最新版本的nginx镜像
[root@VM-0-16-centos home]# docker pull nginx
Using default tag: latest
latest: Pulling from library/nginx
b380bbd43752: Pull complete 
fca7e12d1754: Pull complete 
745ab57616cb: Pull complete 
a4723e260b6f: Pull complete 
1c84ebdff681: Pull complete 
858292fd2e56: Pull complete 
Digest: sha256:644a70516a26004c97d0d85c7fe1d0c3a67ea8ab7ddf4aff193d9f301670cf36
Status: Downloaded newer image for nginx:latest
docker.io/library/nginx:latest
# 4、查看下载好的镜像nginx
[root@VM-0-16-centos home]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
nginx        latest    87a94228f133   9 days ago    133MB
centos       latest    5d0da3dc9764   5 weeks ago   231MB
# 5、后台运行nginx
# -d 后台运行
# --name 给容器命名
# -p 宿主主机端口:容器内部端口(端口映射,可以使宿主机可以访问nginx容器内部)
[root@VM-0-16-centos home]# docker run -d --name nginx01 -p 3344:80 nginx
2ecd2bcdf97df1ee3b816ab17468dce13aa32fd27067490b104c9ce4d1c1d6d2
[root@VM-0-16-centos home]# docker ps
CONTAINER ID   IMAGE     COMMAND                  CREATED          STATUS          PORTS                                   NAMES
2ecd2bcdf97d   nginx     "/docker-entrypoint.…"   11 seconds ago   Up 11 seconds   0.0.0.0:3344->80/tcp, :::3344->80/tcp   nginx01
# 6、测试nginx安装是否成功
[root@VM-0-16-centos home]# curl localhost:3344
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
html { color-scheme: light dark; }
body { width: 35em; margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif; }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>

<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>

<p><em>Thank you for using nginx.</em></p>
</body>
</html>
# 7、进入nginx容器(打开新终端模式进入)
[root@VM-0-16-centos home]# docker exec -it nginx01 /bin/bash
root@2ecd2bcdf97d:/# whereis nginx
nginx: /usr/sbin/nginx /usr/lib/nginx /etc/nginx /usr/share/nginx
root@2ecd2bcdf97d:/# cd /etc/nginx
root@2ecd2bcdf97d:/etc/nginx# ls
conf.d	fastcgi_params	mime.types  modules  nginx.conf  scgi_params  uwsgi_params

端口暴露的概念图
在这里插入图片描述

浏览器访问:http://ip(服务器公网ip):3344
在这里插入图片描述

Docker安装tomcat
# 1、docker搜索tomcat
[root@VM-0-16-centos ~]# docker search tomcat
NAME                          DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
tomcat                        Apache Tomcat is an open source implementati…   3155      [OK]       
tomee                         Apache TomEE is an all-Apache Java EE certif…   93        [OK]       
dordoka/tomcat                Ubuntu 14.04, Oracle JDK 8 and Tomcat 8 base…   58                   [OK]
kubeguide/tomcat-app          Tomcat image for Chapter 1                      31                   
consol/tomcat-7.0             Tomcat 7.0.57, 8080, "admin/admin"              18                   [OK]
cloudesire/tomcat             Tomcat server, 6/7/8                            15                   [OK]
aallam/tomcat-mysql           Debian, Oracle JDK, Tomcat & MySQL              13                   [OK]
arm32v7/tomcat                Apache Tomcat is an open source implementati…   11                   
rightctrl/tomcat              CentOS , Oracle Java, tomcat application ssl…   7                    [OK]
arm64v8/tomcat                Apache Tomcat is an open source implementati…   6                    
maluuba/tomcat7-java8         Tomcat7 with java8.                             6                    
unidata/tomcat-docker         Security-hardened Tomcat Docker container.      5                    [OK]
amd64/tomcat                  Apache Tomcat is an open source implementati…   3                    
cfje/tomcat-resource          Tomcat Concourse Resource                       2                    
oobsri/tomcat8                Testing CI Jobs with different names.           2                    
jelastic/tomcat               An image of the Tomcat Java application serv…   2                    
fabric8/tomcat-8              Fabric8 Tomcat 8 Image                          2                    [OK]
camptocamp/tomcat-logback     Docker image for tomcat with logback integra…   1                    [OK]
picoded/tomcat7               tomcat7 with jre8 and MANAGER_USER / MANAGER…   1                    [OK]
99taxis/tomcat7               Tomcat7                                         1                    [OK]
ppc64le/tomcat                Apache Tomcat is an open source implementati…   1                    
chenyufeng/tomcat-centos      tomcat基于centos6的镜像                              1                    [OK]
secoresearch/tomcat-varnish   Tomcat and Varnish 5.0                          0                    [OK]
s390x/tomcat                  Apache Tomcat is an open source implementati…   0                    
softwareplant/tomcat          Tomcat images for jira-cloud testing            0                    [OK]
# 2、根据版本号下载对应得tomcat
[root@VM-0-16-centos ~]# docker pull tomcat:9.0
9.0: Pulling from library/tomcat
bb7d5a84853b: Pull complete 
f02b617c6a8c: Pull complete 
d32e17419b7e: Pull complete 
c9d2d81226a4: Pull complete 
fab4960f9cd2: Pull complete 
da1c1e7baf6d: Pull complete 
79b231561270: Pull complete 
7d337880d8b4: Pull complete 
ca5413c09be2: Pull complete 
bb83013543f6: Pull complete 
Digest: sha256:9d17c6817ce46fb9c880ec3882289bb3aafb7efd15262fa07b54e71f42674134
Status: Downloaded newer image for tomcat:9.0
docker.io/library/tomcat:9.0
[root@VM-0-16-centos ~]# docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
# 3、检查下载得tomcat镜像
[root@VM-0-16-centos ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
tomcat       9.0       e81ee1ac2b97   7 days ago    680MB
nginx        latest    87a94228f133   9 days ago    133MB
centos       latest    5d0da3dc9764   5 weeks ago   231MB
# 4、运行tomcat
# 这里需要注意一个点,官网的使用方式命令如下:
# docker run -it --rm tomcat:9.0
# 说明:我们之前启动的都是后台启动,容器停止后还是可以查询到的 docker run -it --rm一般用来测试,用完会完全的删除
[root@VM-0-16-centos /]# docker run -it --rm tomcat
Unable to find image 'tomcat:latest' locally
latest: Pulling from library/tomcat
bb7d5a84853b: Already exists 
f02b617c6a8c: Already exists 
d32e17419b7e: Already exists 
c9d2d81226a4: Already exists 
fab4960f9cd2: Already exists 
da1c1e7baf6d: Already exists 
79b231561270: Already exists 
7d337880d8b4: Already exists 
2df65a31be06: Pull complete 
10cbf519de23: Pull complete 
Digest: sha256:7c30d3c92b191ec2b84f64be99326f9c83a4a4e079c899ee4d0a9a41abca8406
Status: Downloaded newer image for tomcat:latest
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr/local/openjdk-11
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Using CATALINA_OPTS:   
NOTE: Picked up JDK_JAVA_OPTIONS:  --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.util.concurrent=ALL-UNNAMED --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
21-Oct-2021 05:55:31.251 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version name:   Apache Tomcat/10.0.12
21-Oct-2021 05:55:31.258 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server built:          Sep 28 2021 13:34:21 UTC
21-Oct-2021 05:55:31.258 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version number: 10.0.12.0
21-Oct-2021 05:55:31.259 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Name:               Linux
21-Oct-2021 05:55:31.259 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Version:            3.10.0-1160.11.1.el7.x86_64
21-Oct-2021 05:55:31.259 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Architecture:          amd64
21-Oct-2021 05:55:31.259 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Java Home:             /usr/local/openjdk-11
21-Oct-2021 05:55:31.259 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Version:           11.0.12+7
21-Oct-2021 05:55:31.259 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Vendor:            Oracle Corporation
21-Oct-2021 05:55:31.259 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE:         /usr/local/tomcat
21-Oct-2021 05:55:31.259 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME:         /usr/local/tomcat
21-Oct-2021 05:55:31.285 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.lang=ALL-UNNAMED
21-Oct-2021 05:55:31.288 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.io=ALL-UNNAMED
21-Oct-2021 05:55:31.288 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.util=ALL-UNNAMED
21-Oct-2021 05:55:31.288 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.util.concurrent=ALL-UNNAMED
21-Oct-2021 05:55:31.288 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
21-Oct-2021 05:55:31.289 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties
21-Oct-2021 05:55:31.289 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
21-Oct-2021 05:55:31.289 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djdk.tls.ephemeralDHKeySize=2048
21-Oct-2021 05:55:31.289 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.protocol.handler.pkgs=org.apache.catalina.webresources
21-Oct-2021 05:55:31.289 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dorg.apache.catalina.security.SecurityListener.UMASK=0027
21-Oct-2021 05:55:31.289 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dignore.endorsed.dirs=
21-Oct-2021 05:55:31.289 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.base=/usr/local/tomcat
21-Oct-2021 05:55:31.289 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.home=/usr/local/tomcat
21-Oct-2021 05:55:31.289 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.io.tmpdir=/usr/local/tomcat/temp
21-Oct-2021 05:55:31.295 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent Loaded Apache Tomcat Native library [1.2.31] using APR version [1.7.0].
21-Oct-2021 05:55:31.295 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true], UDS [true].
21-Oct-2021 05:55:31.299 INFO [main] org.apache.catalina.core.AprLifecycleListener.initializeSSL OpenSSL successfully initialized [OpenSSL 1.1.1k  25 Mar 2021]
21-Oct-2021 05:55:31.703 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["http-nio-8080"]
21-Oct-2021 05:55:31.748 INFO [main] org.apache.catalina.startup.Catalina.load Server initialization in [820] milliseconds
21-Oct-2021 05:55:31.856 INFO [main] org.apache.catalina.core.StandardService.startInternal Starting service [Catalina]
21-Oct-2021 05:55:31.856 INFO [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet engine: [Apache Tomcat/10.0.12]
21-Oct-2021 05:55:31.869 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"]
21-Oct-2021 05:55:31.893 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in [144] milliseconds
^C21-Oct-2021 05:56:06.417 INFO [Thread-2] org.apache.coyote.AbstractProtocol.pause Pausing ProtocolHandler ["http-nio-8080"]
21-Oct-2021 05:56:06.427 INFO [Thread-2] org.apache.catalina.core.StandardService.stopInternal Stopping service [Catalina]
21-Oct-2021 05:56:06.433 INFO [Thread-2] org.apache.coyote.AbstractProtocol.stop Stopping ProtocolHandler ["http-nio-8080"]
21-Oct-2021 05:56:06.478 INFO [Thread-2] org.apache.coyote.AbstractProtocol.destroy Destroying ProtocolHandler ["http-nio-8080"]
# 运行退出后再次查看运行过的容器发现已经找不到被默认删除了!!!
[root@VM-0-16-centos /]# docker ps -a
CONTAINER ID   IMAGE     COMMAND                  CREATED        STATUS                      PORTS     NAMES
61b6a6623f66   nginx     "/docker-entrypoint.…"   3 hours ago    Exited (0) 2 hours ago                nginx02
2ecd2bcdf97d   nginx     "/docker-entrypoint.…"   3 hours ago    Exited (0) 3 hours ago                nginx01
070a398fde37   centos    "/bin/bash"              21 hours ago   Exited (0) 4 hours ago                funny_pare
5d4a10e0ade3   centos    "/bin/bash"              21 hours ago   Exited (0) 21 hours ago               recursing_galois
8355654b5aa3   centos    "/bin/sh -c 'while t…"   22 hours ago   Exited (137) 22 hours ago             heuristic_dubinsky
96f52a2e1526   centos    "/bin/bash"              22 hours ago   Exited (0) 22 hours ago               suspicious_haslett
04b1f1566177   centos    "/bin/bash"              22 hours ago   Exited (0) 22 hours ago               sleepy_satoshi
# 5、正常启动tomcat
[root@VM-0-16-centos /]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
tomcat       9.0       e81ee1ac2b97   7 days ago    680MB
tomcat       latest    4ce9babdd885   7 days ago    680MB
nginx        latest    87a94228f133   9 days ago    133MB
centos       latest    5d0da3dc9764   5 weeks ago   231MB
[root@VM-0-16-centos /]# docker run -d -p 3344:8080 --name tomcat01 e81ee1ac2b97
f12370ece6fca76db2d3650fb7cc6df55d344dbc4639da6b3fb316d3240deba5
[root@VM-0-16-centos /]# docker ps
CONTAINER ID   IMAGE          COMMAND             CREATED         STATUS         PORTS                                       NAMES
f12370ece6fc   e81ee1ac2b97   "catalina.sh run"   8 seconds ago   Up 7 seconds   0.0.0.0:3344->8080/tcp, :::3344->8080/tcp   tomcat01

浏览器测试访问tomcat。访问提示404应为webapps里面资源是空,但是tomcat部署时成功了的!!!
在这里插入图片描述

# 6、进入tomcat发现很多基础命令都不可以使用webapps里面也是空的,所以报上图404
[root@VM-0-16-centos /]# docker exec -it tomcat01 /bin/bash
root@f12370ece6fc:/usr/local/tomcat# ls
BUILDING.txt  CONTRIBUTING.md  LICENSE	NOTICE	README.md  RELEASE-NOTES  RUNNING.txt  bin  conf  lib  logs  native-jni-lib  temp  webapps  webapps.dist  work
root@f12370ece6fc:/usr/local/tomcat# 
root@f12370ece6fc:/usr/local/tomcat# 
root@f12370ece6fc:/usr/local/tomcat# 
root@f12370ece6fc:/usr/local/tomcat# 
root@f12370ece6fc:/usr/local/tomcat# 
root@f12370ece6fc:/usr/local/tomcat# ll
bash: ll: command not found
root@f12370ece6fc:/usr/local/tomcat# 
root@f12370ece6fc:/usr/local/tomcat# 
root@f12370ece6fc:/usr/local/tomcat# 
root@f12370ece6fc:/usr/local/tomcat# ps -ef
UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  1 06:06 ?        00:00:03 /usr/local/openjdk-11/bin/java -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties -Djava.util.logging.manager=org.a
root        38     0  0 06:11 pts/0    00:00:00 /bin/bash
root        46    38  0 06:12 pts/0    00:00:00 ps -ef
root@f12370ece6fc:/usr/local/tomcat# ls
BUILDING.txt  CONTRIBUTING.md  LICENSE	NOTICE	README.md  RELEASE-NOTES  RUNNING.txt  bin  conf  lib  logs  native-jni-lib  temp  webapps  webapps.dist  work
root@f12370ece6fc:/usr/local/tomcat# cd webapps
root@f12370ece6fc:/usr/local/tomcat/webapps# ls
root@f12370ece6fc:/usr/local/tomcat/webapps# 

# 发现问题:1 linux命令少了 2 没有webapps。这是因为阿里云镜像的原因。默认是最小的镜像,所有不必要的都给剔除了,保证最小可运行环境。
# 解决问题:
# 在tomcat目录下有一个webapps.dist文件,将里面的内容复制到webapps里面刷新浏览器即可。
# 进入webapps.dist文件,查看文件内容
root@f12370ece6fc:/usr/local/tomcat# cd webapps.dist/
root@f12370ece6fc:/usr/local/tomcat/webapps.dist# ls
ROOT  docs  examples  host-manager  manager
root@f12370ece6fc:/usr/local/tomcat/webapps.dist# cd ..
# 复制webapps.dist全部文件到webapps下
root@f12370ece6fc:/usr/local/tomcat# cp ./webapps.dist/* ./webapps
cp: -r not specified; omitting directory './webapps.dist/ROOT'
cp: -r not specified; omitting directory './webapps.dist/docs'
cp: -r not specified; omitting directory './webapps.dist/examples'
cp: -r not specified; omitting directory './webapps.dist/host-manager'
cp: -r not specified; omitting directory './webapps.dist/manager'
root@f12370ece6fc:/usr/local/tomcat# cp -r ./webapps.dist/* ./webapps
root@f12370ece6fc:/usr/local/tomcat# ls
BUILDING.txt  CONTRIBUTING.md  LICENSE	NOTICE	README.md  RELEASE-NOTES  RUNNING.txt  bin  conf  lib  logs  native-jni-lib  temp  webapps  webapps.dist  work
root@f12370ece6fc:/usr/local/tomcat# cd webapps
root@f12370ece6fc:/usr/local/tomcat/webapps# ls
ROOT  docs  examples  host-manager  manager
# 刷新浏览器,部署成功

在这里插入图片描述

Docker部署es+kibana
# es 暴露的端口多
# es 十分耗用内存
# es 数据一般要放到安全的目录!挂载
# --net somenetwork ?网络配置后面再说
# 下载启动elasticsearch容器
[root@VM-0-16-centos /]# docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.6.2
Unable to find image 'elasticsearch:7.6.2' locally
7.6.2: Pulling from library/elasticsearch
ab5ef0e58194: Pull complete 
c4d1ca5c8a25: Pull complete 
941a3cc8e7b8: Pull complete 
43ec483d9618: Pull complete 
c486fd200684: Pull complete 
1b960df074b2: Pull complete 
1719d48d6823: Pull complete 
Digest: sha256:1b09dbd93085a1e7bca34830e77d2981521a7210e11f11eda997add1c12711fa
Status: Downloaded newer image for elasticsearch:7.6.2
0f184c3a9fc2457985eef984e14954f3d651ab9a7be5b211447c34ba2b6e4db1
[root@VM-0-16-centos /]# 
[root@VM-0-16-centos /]# docker ps
CONTAINER ID   IMAGE                 COMMAND                  CREATED          STATUS          PORTS                                                                                  NAMES
0f184c3a9fc2   elasticsearch:7.6.2   "/usr/local/bin/dock…"   14 seconds ago   Up 13 seconds   0.0.0.0:9200->9200/tcp, :::9200->9200/tcp, 0.0.0.0:9300->9300/tcp, :::9300->9300/tcp   elasticsearch

# 查看容器状态,一秒刷一次
[root@VM-0-16-centos /]# docker stats 0f184c3a9fc2

CONTAINER ID   NAME            CPU %     MEM USAGE / LIMIT     MEM %     NET I/O     BLOCK I/O    PIDS
0f184c3a9fc2   elasticsearch   0.19%     1.236GiB / 3.701GiB   33.41%    656B / 0B   0B / 696kB   43

CONTAINER ID   NAME            CPU %     MEM USAGE / LIMIT     MEM %     NET I/O     BLOCK I/O    PIDS
0f184c3a9fc2   elasticsearch   0.19%     1.236GiB / 3.701GiB   33.41%    656B / 0B   0B / 696kB   43

CONTAINER ID   NAME            CPU %     MEM USAGE / LIMIT     MEM %     NET I/O     BLOCK I/O    PIDS
0f184c3a9fc2   elasticsearch   1.80%     1.236GiB / 3.701GiB   33.41%    656B / 0B   0B / 696kB   43

CONTAINER ID   NAME            CPU %     MEM USAGE / LIMIT     MEM %     NET I/O     BLOCK I/O    PIDS
0f184c3a9fc2   elasticsearch   1.80%     1.236GiB / 3.701GiB   33.41%    656B / 0B   0B / 696kB   43

CONTAINER ID   NAME            CPU %     MEM USAGE / LIMIT     MEM %     NET I/O     BLOCK I/O    PIDS
0f184c3a9fc2   elasticsearch   0.53%     1.236GiB / 3.701GiB   33.41%    656B / 0B   0B / 696kB   43

# elasticsearch允许占用1.23G,如何增加内存限制,修改配置文件 -e 环境配置文件
# docker run -d --name elasticsearch01 -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms64m -Xms512m" elasticsearch:7.6.2

# 限制内存启动
[root@VM-0-16-centos /]# docker run -d --name elasticsearch01 -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms64m -Xms512m" elasticsearch:7.6.2
2769ed2f0e32c984384a461fb19b24c402055ec3c4ed23ada00921a3e68eabe7
[root@VM-0-16-centos /]# 
[root@VM-0-16-centos /]# 
[root@VM-0-16-centos /]# docker ps
CONTAINER ID   IMAGE                 COMMAND                  CREATED         STATUS         PORTS                                                                                  NAMES
2769ed2f0e32   elasticsearch:7.6.2   "/usr/local/bin/dock…"   7 seconds ago   Up 5 seconds   0.0.0.0:9200->9200/tcp, :::9200->9200/tcp, 0.0.0.0:9300->9300/tcp, :::9300->9300/tcp   elasticsearch01
# 查看内存发现小很多了744m
[root@VM-0-16-centos /]# docker stats

CONTAINER ID   NAME              CPU %     MEM USAGE / LIMIT     MEM %     NET I/O     BLOCK I/O    PIDS
2769ed2f0e32   elasticsearch01   0.19%     744.2MiB / 3.701GiB   19.64%    656B / 0B   0B / 696kB   43

CONTAINER ID   NAME              CPU %     MEM USAGE / LIMIT     MEM %     NET I/O     BLOCK I/O    PIDS
2769ed2f0e32   elasticsearch01   0.19%     744.2MiB / 3.701GiB   19.64%    656B / 0B   0B / 696kB   43
# 测试elasticsearch01是否启动成功
[root@VM-0-16-centos /]# curl localhost:9200
{
  "name" : "2769ed2f0e32",
  "cluster_name" : "docker-cluster",
  "cluster_uuid" : "af7HPF21SKiMVw8rT-tQvw",
  "version" : {
    "number" : "7.6.2",
    "build_flavor" : "default",
    "build_type" : "docker",
    "build_hash" : "ef48eb35cf30adf4db14086e8aabd07ef6fb113f",
    "build_date" : "2020-03-26T06:34:37.794943Z",
    "build_snapshot" : false,
    "lucene_version" : "8.4.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

思考:kibana连接es? 思考网络如何才能连接过去。
在这里插入图片描述

可视化

1、portainer (不是最好的先用这个)

docker run -d -p 8088:9000 --restart=always -v /var/run/docker.sock:/var/run/docker.sock --privileged=true portainer/portainer
# 下载启动运行portainer,注意开启云服务的安全组和端口限制
[root@VM-0-16-centos /]# docker run -d -p 8088:9000 --restart=always -v /var/run/docker.sock:/var/run/docker.sock --privileged=true portainer/portainer
Unable to find image 'portainer/portainer:latest' locally
latest: Pulling from portainer/portainer
94cfa856b2b1: Pull complete 
49d59ee0881a: Pull complete 
a2300fd28637: Pull complete 
Digest: sha256:fb45b43738646048a0a0cc74fcee2865b69efde857e710126084ee5de9be0f3f
Status: Downloaded newer image for portainer/portainer:latest
893253fca79797136411db2ea0b1401ba8b335885d4bb3fe013f8f0fdd046e7c
[root@VM-0-16-centos /]# docker ps
CONTAINER ID   IMAGE                 COMMAND        CREATED         STATUS         PORTS                                       NAMES
893253fca797   portainer/portainer   "/portainer"   5 seconds ago   Up 5 seconds   0.0.0.0:8088->9000/tcp, :::8088->9000/tcp   kind_jepsen

测试访问:http://公网IP:8088 ,设置用户名密码
在这里插入图片描述

选择本地,点击连接
在这里插入图片描述

登录进来的主界面

在这里插入图片描述

鸣谢

本文为狂神说Docker学习笔记
学习地址:https://www.bilibili.com/video/BV1og4y1q7M4

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值