![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-78dnnWt5-1647395949074)(图片/image-20211012113822642.png)]](https://file.cfanz.cn/uploads/png/2022/03/18/0/T6554SXc93.png)
docker run和start的区别:
1.docker run
dlcker run 后面指定的是一个镜像
2.docker start
docker run 后面指定的是一个容器
docker run是利用镜像生成容器,并启动容器,而docker start 是启动一个之前生成过的容1器
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CcDryhKV-1647395949076)(图片/image-20211012113829271.png)]](https://file.cfanz.cn/uploads/png/2022/03/18/0/E5c0230d4B.png)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-T0cQwqnC-1647395949077)(图片/image-20211012113833865.png)]](https://file.cfanz.cn/uploads/png/2022/03/18/0/T2N04397F0.png)
命令解析:
- -i+i用法,搭配使用,交互式
- -d:把容器扔到后台执行
- -p:端口转发,如果外部需要访问镜像,可以使用端口转发
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tFsaImV8-1647395949078)(图片/image-20211012113839322.png)]](https://file.cfanz.cn/uploads/png/2022/03/18/0/59535C66B0.png)
问题:
docker run -it hello-world:latest bash,会报错
docker run -it hello-world:latest ,没有报错
原因:
第一个,指定执行/bin/bash,因为容器没有安装/bin/bash,所以报错,要是换成echo “2”,就不会报错,所以我们是可以指定容器执行的命令的
第二个:因为默认会执行容器里面指定的命令
问题:
docker run -it nginx:latest,会释放不了光标
docker run -d nginx:latest, 扔到后台执行









