docker---基本操作
摘要:今天就简单记录一下 docker 的基本命令,因为刚学习 docker ,平时用的时候可能记不清楚,还需要去查找,这次就记录一下常见的 docker 使用命令,以后会逐渐增加。
启动容器
启动容器有两种方式,一种是基于镜像新建一个容器并启动,另外一个是将在终止状态(stopped)的容器重新启动。因为 Docker 的容器实在是太轻量级了,很多时候用户都是随时删除和新建容器。
1,新建并启动:docker run
# 新建并启动容器 $ docker run ubuntu:18.04 /bin/echo 'Hello world' # 启动一个 bash 终端,允许用户进行交互 # -i 让容器的标准输入保持打开 # -t 让 Docker 分配一个伪终端(pseudo-tty),并绑定到容器的标准输入上 $ docker run -i -t ubuntu:18.04 /bin/bash
2,启动已终止容器:docker container start
# 启动已终止容器 $ docker container start ubuntu:18.04
3,后台运行: 使用 -d 参数
# 未使用 -d 参数 # 会把输出的结果(STDOUT)输出到宿主机上面 $ docker run ubuntu:18.04 /bin/sh -c "while true;do echo hello world; sleep 1s; done" # -d 参数实现后台运行 # 返回一个唯一的 id,可通过该 id 进行查看后台输出内容 $ docker run -d ubuntu:18.04 /bin/sh -c "while true;do echo hello world; sleep 1s; done" # 查看后台输出内容 $ docker container logs [container ID or NAMES]
终止容器
终止容器可以用 docker container stop 来终止一个运行中的容器,此外,当 Docker 容器指定的应用终结时,容器也自动终止
# 终止一个运行中的容器 $ docker container stop ubuntu:18.04 # 查看所有终止的容器 $ docker container ls -a # 重新启动容器 $ docker container restart ubuntu:18.04
进入容器
在使用 -d 参数时,容器启动后会进入后台运行,某些时候我们需要进入容器操作,包括使用 docker attach 命令或 docker exec 命令,推荐使用 docker exec 命令。
1,attach 方式进入容器:
# 后台启动一个容器 $ docker run -dit ubuntu # 进入这个容器 # attach 进入容器,一旦从 stdin 中 exit,会导致容器的停止 $ docker attach container_ID
2,exec 方式进入容器:
# 进入这个容器 # exec 后面可以跟多个参数,这里主要用 -i -t # 更多参数可以使用 docker exec --help 进行查看 # 如果从这个 stdin 中 exit,不会导致容器的停止(推荐使用这个方式的原因)
$ docker exec -it container_ID bash
导出和导入容器
1,导出容器:
# 导出容器快照到本地 $ docker export container_ID > ubuntu.tar
2,导入容器为镜像:
# 导出容器快照为镜像 $ cat ubuntu.tar | docker import - ubuntu:v1.0
删除容器
1,清理某一个容器
# 清理某一个容器 $ docker container rm container_ID
2,清理所有处于终止状态的容器
# 查看所有容器,包括处于终止状态的容器 $ docker container ls -a # 清理所有处于终止状态的容器 $ docker container prune
所有博文均为原著,如若转载,请注明出处!
分类:
Virtualization
标签:
Docker
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗