container(容器)
更新时间:2023-12-13阅读整篇大约5分钟
新建容器并运行(docker run | docker container run )
sh
如果没有镜像,则需要`docker pull`拉取一个镜像 (详见image.md)
docker run [...options] [id | imageName]
# options:
-name="Name" # 容器名字
-d # 后台方式运行
-it # 使用交互方式运行,进入容器 查看内容
-p # 指定容器的端口 8080(主机端口):8080(容器端口)
-P #随机映射端口
-rm # 用完就删除,配合-it使用
-v # 容器卷:持久化和同步技术 主机目录:容器目录
--link # 容器互联 通过容器名来访问另一个容器,不能反向访问
--net # 网络模式
docker run hello-world
docker run -it hello-world /bin/bash #/bin/bash 是希望在容器内部运行的命令。在这种情况下,我们是在请求启动一个bash shell。这样,当容器启动后,会直接进入容器的bash命令行界面,可以在其中执行命令,就像在一个常规的Linux环境中一样。如果不指定 /bin/bash 或其他命令,Docker会尝试运行镜像中定义的默认命令(通常在Dockerfile的CMD指令中定义)。但是,如果想要一个交互式的shell,需要明确地指定 /bin/bash 或其他相应的shell命令。
docker container run
命令会从 image 文件,生成一个正在运行的容器实例。
docker container run
命令具有自动抓取 image 文件的功能。如果发现本地没有指定的 image 文件,就会从仓库自动抓取。因此,前面的docker image pull
命令并不是必需的步骤。
查看所有容器
sh
docker ps [...options]
#options:
-a # 列出正在运行 + 历史运行过的容器
-n=? # 显示最近创建的n个容器
-q # 只显示编号
退出容器
sh
exit # 停止容器并退出
ctrl + P + Q #容器不停止只退出
删除容器
sh
docker rm [id] # 删除指定容器
docker rm -f $(docker ps -aq) # 删除所有容器
停止容器
有些image会在执行完之后停止运行,容器自动终止,有些容器不会自动终止,因为提供的是服务,比如node或者安装运行 Ubuntu 的 image,就可以在命令行体验 Ubuntu 系统。
sh
docker container kill [containID] # 强制停止
docker stop [containID] # 停止当前正在运行的容器
启动容器
docker run
是用来创建并启动新的容器,而docker start
是用来启动已经存在但被停止的容器。
sh
docker start [id] # 启动容器
docker restart [id] # 重启容器
进入当前正在运行的容器
sh
docker exec -it [id] /bin/bash # exec进入容器后开启一个新的终端,可以在里面操作
docker attach [id] # attach进入容器正在执行的终端
将容器内的文件拷贝到主机
sh
docker cp [id]:[容器内文件路径] [需要拷贝到主机的路径]
# docker cp [id]:/home/harver/text.js /home
设置环境
sh
docker -e ENV_NODE=12
显示日志
sh
docker logs -tf --tail [number] [id] # -tf 显示日志 , --tail [number] 显示日志条数
查看容器中进程的信息
sh
docker top [id]
查看元数据
sh
docker inspect [id]
查看CPU占用
sh
docker stats