乐趣区

docker常用指令详解

指令详解

从远程仓库拉取镜像

//docker image pull library/hello-world 默认从 library 拉取可以省略
docker image pull hello-world

查看镜像列表

docker image ls

运行一个 docker 的镜像,产生一个容器实例

// 运行
docker run hello-world
//echo 会在 shell 打印一段文字,起提示作用
Hello world
  • 检查本地是否存在指定的镜像,不存在就从公有仓库下载
  • 利用镜像创建并启动一个容器
  • 分配一个文件系统,并在只读的镜像层外面挂载一层可读写层
  • 从宿主主机配置的网桥接口中桥接一个虚拟接口到容器中去
  • 从地址池配置一个 ip 地址给容器
  • 执行用户指定的应用程序
  • 执行完毕后容器被终止

查看容器

// 列出本机正在运行的容器
docker container ls
// 列出本机所有容器,包括终止运行的容器
docker container ls --all

启动一个可交互的容器

docker run -t -i ubuntu:14.04 /bin/bash
  • docker run 命令,并启动名称为 ubuntu:14.04 的容器。
  • -t 表示在新容器内指定一个伪终端或终端
  • - i 表示允许我们对容器内的 (STDIN) 进行交互。
  • 可以将 -t - i 缩减为 -it 好记
  • 我们在容器内还指定了一个新的命令:/bin/bash。这将在容器内启动 bash shell, 这是一个交互程序
  • 注意 ”:” 后面为 TAG,如果没有指定默认就为 latest

所以当容器(container)启动之后,我们会获取到一个命令提示符:

root@af8bae53bdd3:/#

这代表我们已经进入了容器内部

启动守护进程, 后台一直运行容器

docker run -d ubuntu:14.04
// 注意 - d 和 -it 同时使用,-it 会无效,- d 需要返回一个容器 id

端口映射,挂载数据卷,命名容器

docker run -d --name=ant_web_pro -v / 宿主机绝对路径:/ 容器内目录 -p docker 外部端口:docker 内部端口 nginx
  • -P: 随机端口映射,容器内部端口随机映射到主机的高端口
  • -p: 指定端口映射,格式为:主机 (宿主) 端口: 容器端口
  • –name=”nginx-lb”: 为容器指定一个名称;
  • –volume , -v: 绑定一个卷
  • 如果是容器里的目录不存在,两者都会自动创建
  • -v $PWD/ 目录:/ 容器内目录 $PWD 表示当前文件夹
  • 当你在容器容器内部改变数据卷是其实软连接到了外部,数据直接在宿主机改变

查看数据卷

docker volume ls

启动已终止的容器

容器可以通过 run 新建一个来运行,也可以重新 start 已经停止的 container,但 start 不能够再指定容器启动时运行的指令,因为 docker 只能有一个前台进程。
容器 stop(或 Ctrl+D)时,会在保存当前容器的状态之后退出,下次 start 时保有上次关闭时更改。而且每次进入 attach 进去的界面是一样的,与第一次 run 启动或 commit 提交的时刻相同。

docker start $CONTAINER_ID
docker stop $CONTAINER_ID
docker restart $CONTAINER_ID

退出容器

exit

进入容器

docker exec -it ant-design-pro_web /bin/bash
//docker exec -it 64b9ded82141 bash (可以是 id) 

删除一个或多个 container、image(rm、rmi)

// 删除容器
docker rm <container_id/contaner_name>

// 删除所有停止的容器
docker rm $(docker ps -a -q)

// 删除镜像
docker rmi <image_id/image_name ...>

commit 容器,创建新镜像

我们期望能定制自己的镜像,在里面安装一些基础环境(比如上文中的 node),然后制作出自己要的基础镜像。

 docker commit -a "runoob.com" -m "my apache" a404c6c174a2  mymysql:v1 
  • -a : 提交的镜像作者;
  • -c : 使用 Dockerfile 指令来创建镜像;
  • -m : 提交时的说明文字;
  • -p : 在 commit 时,将容器暂停。
退出移动版