Docker一般都在Linux系统上运行,实际在windows系统上安装时也是虚拟出一个Linux系统环境运行。安装只需要几行命令即可,可见官网文档。
需要注意的是windows家庭版安装docker会报错,需要升级到专业版,打开Hype-V功能。
docker run ubuntu:14.04 /bin/echo "Hello world"
以上命令表示使用ubuntu14.04的镜像创建一个容器,运行/bin/echo “hello world”的命令,当本地找不到该镜像时,会自动去Docker-Hub下载对应的镜像。
使用
docker image ls
docker ps -a
分别查看docker镜像和容器,不加-a可以查看正在运行的容器。
docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo hello world; sleep 1; done"
该行命令创建了一个容器运行后面的shell命令,-d表示在后台运行,此时该容器一只在每隔一秒打印hello world的信息。使用
docker logs <容器名或者容器id>
可以查看对应容器打印的信息。
docker start <容器名或者容器id>
docker stop <容器名或者容器id>
上面两条命令可以启动或者停止容器。
docker exec -it <容器名或者容器id> /bin/bash
使用上面的命令可以进入容器查看容器内的文件结构,可以把容器看成是一个单独的操作系统,cat /proc/version和ls分别查看当前系统的版本信息和当前目录下的文件列表.
除了exec进入容器还可以使用attach,但attach进入容器使用exit退出后会自动停止容器,所以建议使用exec进入容器。
docker pull <镜像>
我们可以使用该命令从远程下载一个镜像。
docker export <容器id或者容器名> > xxxx.tar
上面命令可以把容器导出到本地文件xxxx.tar
cat docker/ubuntu.tar | docker import - test/ubuntu:v1
该命令用于把本地文件导入到test/ubuntu:v1镜像中。
docker rm <容器id或者容器名>
该命令用于删除一个容器
docker rmi <镜像名>
该命令用于删除一个镜像,删除镜像前需要删除建立在该镜像下的所有容器。
在宿主机一个空文件夹下创建一个Dockerfile文件(非空目录会把目录下的所有文件一起打包到镜像,造成不必要的时间空间的浪费)
首先创建一个c语言程序,编译一个打印helloworld的可执行文件。
使用gcc编译后得到hello可执行文件,然后对Dockerfile进行编辑输入
FROM表示使用ubuntu:14.04的镜像,ADD表示将当前目录下的hello文件复制到容器内的/mydir/目录下,CMD则表示执行容器内该目录下的程序。
使用该Dockerfile创建镜像并运行如下:
上面的ADD可以替换成COPY,CMD可以替换成RUN,COPY表示复制文件但是不解压,而ADD会自动对压缩文件进行解压然后复制,CMD运行时机为Docker run,而RUN则为docker build。
此外,还有很多Dockerfile的命令,可见: