学习Docker

2017-03-19  本文已影响0人  潇Shawn纹

学习Docker

@(存笔记)


[TOC]

For Win

官方建议使用 Docker Machines 的实现。

常用命令

docker images # 列出所有镜像
docker ps # 列出运行的容器
docker ps -a # 列出所有容器
docker run --name test ubuntu  # 将名为 ubuntu 的镜像启动生成容器,run命令的参数要在镜像名 ubuntu 之前
docker run -d ubuntu # 将名为 ubuntu 的镜像启动生成容器,并将改进程挂到后台运行
docker rm $(docker ps -q -a) # 一次性删除所有的已停止的容器,
docker rmi $(docker images -q) # 一次性删除所有的镜像
docker commit <CONTAINER ID> newimage # 将一个容器提交生成一个新的容器
docker images |grep none |awk '{print $3}'|xargs docker rmi # 删除所有None镜像
docker rmi $(docker images -q -f dangling=true) # 删除虚悬镜像<none>

Dockerfile语法

构建镜像时,是Docker的客户端(本机环境)给服务器端(Docker引擎,可以是在本机——通常开发时是在本机,也可以是远程主机)要指定一个上下文目录,可以理解为指定了一个本地的目录供服务器端操作。服务器端仅能操作该目录及其子目录。这就是为什么COPY ../path/code /var/codeCOPY /srv/path/code /srv/code会提示其路径无效。COPY ./code /var/code意为指定了上下文目录下的/code 目录夹映射到镜像的/var/code目录,而不能通过COPY ../code /var/code指定上级目录。因为上级目录已经不属于上下文目录的控制范围。

COPY

FROM python:3.5 # 使用python:3.5作为基础镜像
COPY ./code /var/code   # 将上级目录映射到镜像内路径
WORKDIR /var # 之前默认的工作目录是 /,在这命令之后是 /var
ENV ["python", "./code/foo.py"] # 容器启动后默认执行的命令

构建镜像

基本的构建命令

docker build -t account/easyctp:tag .

Dockerfile就在当前目录时,直接指定Dockerfile所在路径.
在调试时,如果构建镜像有问题,尝试使用--no-cache无缓存模式调试。

交互模式

注意参数的顺序

docker run --rm -it ubuntu /bin/bash

采用交互模式-it进入ubuntu之后,启动/bin/bash作为交互工具。

启动参数

映射卷时,通常需要指定当前目录。不能直接使用.,而是要使用$PWD。并且注意要使用大写

docker run -v $PWD:/var/code ubuntu

Save 和 Export 的区别

原文

上一篇下一篇

猜你喜欢

热点阅读