欢迎大家来到IT世界,在知识的湖畔探索吧!
目录
- Docker重启策略
- 配置容器环境变量
- 容器资源限制
- 查看容器的日志
- 进入容器内部
1. Docker重启策略
# 将Docker服务添加到开机启动项 sudo systemctl enable docker.service # 查看Docker服务的状态 systemctl status docker.service # 设置Docker容器的重启策略 # 重启策略有以下几种: # no:不重启 # on-failure:在容器退出时重启 # always:总是重启 # unless-stopped:除非手动停止,否则总是重启 # 示例: #运行时指定重启策略 docker run --restart=always ubuntu:latest #更新容器的重启策略 docker update --restart=no container_id docker update --restart=on-failure container_id docker update --restart=always container_id docker update --restart=unless-stopped container_id # 查看容器重启策略 docker@docker:~$ docker inspect tomcat01 [ { "Id": "ea2c5b7adbf3a96b39ecdb26bbdbd68fad5aa81859d7abedad1", "Created": "2025-05-08T06:00:07.Z", "Path": "catalina.sh", "Args": [ "run" ], "State": { "Status": "exited", "Running": false, "Paused": false, "Restarting": false, "OOMKilled": false, "Dead": false, "Pid": 0, "ExitCode": 143, "Error": "", "StartedAt": "2025-05-08T06:00:07.Z", "FinishedAt": "2025-05-08T14:59:30.Z" }, "Image": "sha256:167f3775cd314d238ceba478aefacb19456bff4b71c568e70bc069c92", "ResolvConfPath": "/var/lib/docker/containers/ea2c5b7adbf3a96b39ecdb26bbdbd68fad5aa81859d7abedad1/resolv.conf", "HostnamePath": "/var/lib/docker/containers/ea2c5b7adbf3a96b39ecdb26bbdbd68fad5aa81859d7abedad1/hostname", "HostsPath": "/var/lib/docker/containers/ea2c5b7adbf3a96b39ecdb26bbdbd68fad5aa81859d7abedad1/hosts", "LogPath": "/var/lib/docker/containers/ea2c5b7adbf3a96b39ecdb26bbdbd68fad5aa81859d7abedad1/ea2c5b7adbf3a96b39ecdb26bbdbd68fad5aa81859d7abedad1-json.log", "Name": "/tomcat01", "RestartCount": 0, "Driver": "overlay2", "Platform": "linux", "MountLabel": "", "ProcessLabel": "", "AppArmorProfile": "docker-default", "ExecIDs": null, "HostConfig": { "Binds": null, "ContainerIDFile": "", "LogConfig": { "Type": "json-file", "Config": {} }, "NetworkMode": "bridge", "PortBindings": {}, "RestartPolicy": { "Name": "no",# 重启策略为no,即不自动重启 "MaximumRetryCount": 0 }, # 执行更新重启策略后 docker@docker:~$ docker update --restart=always tomcat01 tomcat01 docker@docker:~$ docker inspect tomcat01 [ { "Id": "ea2c5b7adbf3a96b39ecdb26bbdbd68fad5aa81859d7abedad1", "Created": "2025-05-08T06:00:07.Z", "Path": "catalina.sh", "Args": [ "run" ], "State": { "Status": "exited", "Running": false, "Paused": false, "Restarting": false, "OOMKilled": false, "Dead": false, "Pid": 0, "ExitCode": 143, "Error": "", "StartedAt": "2025-05-08T06:00:07.Z", "FinishedAt": "2025-05-08T14:59:30.Z" }, "Image": "sha256:167f3775cd314d238ceba478aefacb19456bff4b71c568e70bc069c92", "ResolvConfPath": "/var/lib/docker/containers/ea2c5b7adbf3a96b39ecdb26bbdbd68fad5aa81859d7abedad1/resolv.conf", "HostnamePath": "/var/lib/docker/containers/ea2c5b7adbf3a96b39ecdb26bbdbd68fad5aa81859d7abedad1/hostname", "HostsPath": "/var/lib/docker/containers/ea2c5b7adbf3a96b39ecdb26bbdbd68fad5aa81859d7abedad1/hosts", "LogPath": "/var/lib/docker/containers/ea2c5b7adbf3a96b39ecdb26bbdbd68fad5aa81859d7abedad1/ea2c5b7adbf3a96b39ecdb26bbdbd68fad5aa81859d7abedad1-json.log", "Name": "/tomcat01", "RestartCount": 0, "Driver": "overlay2", "Platform": "linux", "MountLabel": "", "ProcessLabel": "", "AppArmorProfile": "docker-default", "ExecIDs": null, "HostConfig": { "Binds": null, "ContainerIDFile": "", "LogConfig": { "Type": "json-file", "Config": {} }, "NetworkMode": "bridge", "PortBindings": {}, "RestartPolicy": { "Name": "always", # 重启策略更新为always,即容器退出后自动重启 "MaximumRetryCount": 0 },
欢迎大家来到IT世界,在知识的湖畔探索吧!
2. 容器的环境变量
欢迎大家来到IT世界,在知识的湖畔探索吧!# 设置环境变量 docker run -e key=value ubuntu:latest docker run -d -P --name tomcat_env -e JAVA_ENV=dev -e JAVA_VM=java01 tomcat # 查看环境变量 docker exec -it tomcat_env env # 以下是测试输出 docker@docker:~$ docker exec -it tomcat_env env PATH=/usr/local/tomcat/bin:/opt/java/openjdk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin HOSTNAME=d2dcd5e5e969 TERM=xterm JAVA_ENV=dev JAVA_VM=java01 JAVA_HOME=/opt/java/openjdk LANG=en_US.UTF-8 LANGUAGE=en_US:en LC_ALL=en_US.UTF-8 JAVA_VERSION=jdk-21.0.7+6 CATALINA_HOME=/usr/local/tomcat TOMCAT_NATIVE_LIBDIR=/usr/local/tomcat/native-jni-lib LD_LIBRARY_PATH=/usr/local/tomcat/native-jni-lib TOMCAT_MAJOR=11 TOMCAT_VERSION=11.0.6 TOMCAT_SHA512=ecff1b6a3128cb8ddeef6e3554c3bf694c50e70065abe71bc209fcb859c84b626d87212d6b62fa3e1e9a3e1d1447b62aa657e62461c2260 HOME=/root
# 可以使用inspect命令查看容器配置信息,其中包括环境变量 docker inspect tomcat_env "Env": [ "JAVA_ENV=dev", "JAVA_VM=java01", "PATH=/usr/local/tomcat/bin:/opt/java/openjdk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin", "JAVA_HOME=/opt/java/openjdk", "LANG=en_US.UTF-8", "LANGUAGE=en_US:en", "LC_ALL=en_US.UTF-8", "JAVA_VERSION=jdk-21.0.7+6", "CATALINA_HOME=/usr/local/tomcat", "TOMCAT_NATIVE_LIBDIR=/usr/local/tomcat/native-jni-lib", "LD_LIBRARY_PATH=/usr/local/tomcat/native-jni-lib", "TOMCAT_MAJOR=11", "TOMCAT_VERSION=11.0.6", "TOMCAT_SHA512=ecff1b6a3128cb8ddeef6e3554c3bf694c50e70065abe71bc209fcb859c84b626d87212d6b62fa3e1e9a3e1d1447b62aa657e62461c2260" ],
欢迎大家来到IT世界,在知识的湖畔探索吧!# 通过执行命令的方式输出环境变量 docker exec -it tomcat_env env # 以下是测试输出 docker@docker:~$ docker exec -it tomcat_env env PATH=/usr/local/tomcat/bin:/opt/java/openjdk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin HOSTNAME=d2dcd5e5e969 TERM=xterm JAVA_ENV=dev JAVA_VM=java01 JAVA_HOME=/opt/java/openjdk LANG=en_US.UTF-8 LANGUAGE=en_US:en LC_ALL=en_US.UTF-8 JAVA_VERSION=jdk-21.0.7+6 CATALINA_HOME=/usr/local/tomcat TOMCAT_NATIVE_LIBDIR=/usr/local/tomcat/native-jni-lib LD_LIBRARY_PATH=/usr/local/tomcat/native-jni-lib TOMCAT_MAJOR=11 TOMCAT_VERSION=11.0.6 TOMCAT_SHA512=ecff1b6a3128cb8ddeef6e3554c3bf694c50e70065abe71bc209fcb859c84b626d87212d6b62fa3e1e9a3e1d1447b62aa657e62461c2260 HOME=/root
3. 容器资源限制
# 限制容器的CPU和内存 # 例如,限制CPU使用率为0.5个核心,内存为512MB,内存的单位可以是m(兆字节)或g(吉字节)。 docker run -d --name tomcat_cpu_mem --cpus=0.5 --memory=512m tomcat # 查看容器配置信息,确认资源限制设置 docker stats tomcat_cpu_mem
欢迎大家来到IT世界,在知识的湖畔探索吧!
欢迎大家来到IT世界,在知识的湖畔探索吧!
4. 查看容器的日志
# 查看容器的日志 docker logs container_id docker logs container_name # 查看容器日志并实时显示日志 docker logs -f container_id docker logs -f container_name # 查看容器的日志并显示时间戳 docker logs -t container_id docker logs -t container_name # 查看容器的日志并显示时间戳并显示最后10行 docker logs -t --tail=10 container_id docker logs -t --tail=10 container_name # 以下是测试输出 docker@docker:~$ docker logs tomcat_cpu_mem 09-May-2025 15:06:15.737 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version name: Apache Tomcat/11.0.6 09-May-2025 15:06:15.741 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server built: Apr 1 2025 14:40:40 UTC 09-May-2025 15:06:15.742 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version number: 11.0.6.0 docker@docker:~$ docker logs -f -t --tail=10 tomcat_cpu_mem 2025-05-09T15:06:15.Z 09-May-2025 15:06:15.831 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.home=/usr/local/tomcat 2025-05-09T15:06:15.Z 09-May-2025 15:06:15.831 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.io.tmpdir=/usr/local/tomcat/temp 2025-05-09T15:06:15.Z 09-May-2025 15:06:15.833 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent Loaded Apache Tomcat Native library [2.0.8] using APR version [1.7.2]. 2025-05-09T15:06:15.Z 09-May-2025 15:06:15.835 INFO [main] org.apache.catalina.core.AprLifecycleListener.initializeSSL OpenSSL successfully initialized [OpenSSL 3.0.13 30 Jan 2024] 2025-05-09T15:06:16.Z 09-May-2025 15:06:16.842 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["http-nio-8080"] 2025-05-09T15:06:16.Z 09-May-2025 15:06:16.932 INFO [main] org.apache.catalina.startup.Catalina.load Server initialization in [1702] milliseconds 2025-05-09T15:06:17.Z 09-May-2025 15:06:17.131 INFO [main] org.apache.catalina.core.StandardService.startInternal Starting service [Catalina] 2025-05-09T15:06:17.Z 09-May-2025 15:06:17.132 INFO [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet engine: [Apache Tomcat/11.0.6] 2025-05-09T15:06:17.Z 09-May-2025 15:06:17.153 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"] 2025-05-09T15:06:17.Z 09-May-2025 15:06:17.239 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in [305] milliseconds
5. 进入容器内部
欢迎大家来到IT世界,在知识的湖畔探索吧!# 进入容器内部 docker exec -it container_id /bin/bash docker exec -it container_name /bin/bash # 以下是测试输出 docker@docker:~$ docker exec -it tomcat_cpu_mem /bin/bash root@e5e71caec71b:/usr/local/tomcat# ls # 查看容器内部的文件和目录结构 bin CONTRIBUTING.md LICENSE NOTICE RUNNING.txt webapps BUILDING.txt filtered-KEYS logs README.md temp webapps.dist conf lib native-jni-lib RELEASE-NOTES upstream-KEYS work root@e5e71caec71b:/usr/local/tomcat# cd / root@e5e71caec71b:/# ls bin __cacert_entrypoint.sh etc lib media opt root sbin sys usr boot dev home lib64 mnt proc run srv tmp var root@e5e71caec71b:/# cd root root@e5e71caec71b:~# ls root@e5e71caec71b:~# touch test.txt root@e5e71caec71b:~# ls test.txt root@e5e71caec71b:~# exit # 退出容器内部 exit docker@docker:~$ # 回到宿主机终端,注意观察@后面的内容,已经回到宿主机了
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/126541.html