什么是容器
image是镜像,通过copy镜像,形成一个container。
hyperf通过容器基本命令进行启动
1 | docker run -d --name hyperf -v /usr/local/var/WWWW:/data/project -p 9401:9401 -p 9501:9501 -it --privileged -u root --entrypoint /bin/bash hyperf/hyperf:7.4-alpine-v3.11-swoole |
-d 后台运行
--name 别名
-v 映射共享目录,{本地路径}:{容器内路径}
-p 开放端口
-it 交互方式
--entrypoint 进入容器后需要执行的命令 /bin/bash 代表需要打开交互
-u 指定执行命令时,所使用的用户,不指定时,默认以root用户执行
-e 指定环境变量, 格式 -e XXX_XXX='xxxxx'
这些统称为参数,执行文件是:hyperf/hyperf:7.4-alpine-v3.11-swoole
此时,下载了hyperf/hyperf:7.4-alpine-v3.11-swoole,并且在后台执行了这个image,生成了一个新的容器,run就是生成一个新的容器。
docker ps 查看正在运行的容器
进入容器内部 docker exec -it {containerId} /bin/bash 进入 /data/project 发现并未和宿主机的项目对应起来,检查发现路径错误,导致路径没有被检索到。
停掉容器
docker stop {containerId}
docker rm {containerId}
然后执行:
docker run -d --name hyperf -v /usr/local/var/www:/data/project -p 9401:9401 -p 9501:9501 -it --privileged -u root --entrypoint /bin/bash hyperf/hyperf:7.4-alpine-v3.11-swoole
docker ps 查看正在运行中的容器,找到容器对应的containerId,docker exec -it {containerId} /bin/bash
进入容器后,exit退出来。
docker stop {containerId} 关闭容器。
docker ps -a 查看所有执行过得容器,找到我们的容器(可以设置别名)
docker start {containerId}
docker exec -it {containerId} /bin/bash
.....