使用docker run命令来创建并启动容器时,Docker在后台的操作流程如下:
-
检查本地是否存在指定镜像,如果没有就从公有仓库下载
-
利用镜像创建一个容器并启动
-
分配一个文件系统个容器,并在只读的镜像层外挂载一层可写层
-
从宿主机配置的网桥接口中桥接一个虚拟接口到容器中
-
从网桥的地址池中分配一个ip地址给容器
-
执行用户指定的应用程序
-
执行完毕后容器终止
有时执行docker run命令会无法正常执行容器会报错直接退出,常见的错误代码如下:
-
125:Docker daemon执行出错,例如指定了不支持的Docker命令参数
-
126:所指定命令无法执行,例如权限出错
-
127:容器内命令无法找到
create命令与容器运行模式/环境和配置常用选项:
| 选项 | 说明 |
| — | — |
| -d | 是否在后台运行容器,默认为否 |
| - -group-add=[] | 运行容器的用户组 |
| -i | 保持标准输入打开 |
| -P | 随机端口映射 |
| -p | 指定端口映射到本地端口,例 80:80 |
| - -restart=“always” | 容器的重启策略,包括no,always等 |
| - -rm=true/false | 容器退出后是否自动删除,不能与-d同时使用 |
| -t | 分配一个伪终端 |
| -v | 挂在主机上的文件卷到容器内 |
| -w | 容器内的默认工作目录 |
| - -device=[] | 映射物理机上设备到容器 |
| -e | 指定容器内环境变量 |
| -h | 指定容器内主机名 |
| - -ip=“” | 指定容器的ip地址 |
| - -link=[:aklias] | 链接到其他容器 |
| - -name | 指定容器的别名 |
暂停容器:docker pause
例:启动一个容器并将它暂停
docker run -d -p 80:80 --name web nginx:latest
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1b52669a4ce3 nginx:latest “nginx -g 'daemon of…” 3 minutes ago Up 3 minutes 0.0.0.0:80->80/tcp web
docker pause web
web
可通过docker unpause命令进行恢复。
停止容器:docker stop
将一个正在运行的容器停止。
可用docker container prune命令将停止的容器清除。
可用docker start命令将停止的容器启动。
可用docker ps查看正在运行的容器。
可用docker ps -qa查看所有容器的ID。
可用docker restart命令重启运行的容器。
例:将一个运行的容器停止。
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1b52669a4ce3 nginx:latest “nginx -g 'daemon of…” 6 minutes ago Up 6 minutes 0.0.0.0:80->80/tcp web
docker stop web
web
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
直接讲一个常用的命令:exec
命令格式:docker exec [参数] [容器]
常用参数:
-
-e:指定环境变量列表
-
-i:打开标准输入
-
-t:分配一个伪终端
-
-u:指定命令的用户名或ID
例:开启另一个终端
docker exec -ti web bash
root@1b52669a4ce3:/#
最后
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,不论你是刚入门Java开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
Java开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!**
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!