Docker的使用类似git命令模式。
- docker下载镜像
docker pull image node:6.11
6.11为tag, 官网查看镜像 - docker build 可以根据dockerfile的内容来自动构建镜像。dockerfile的规则有很多暂未整理。
- 列出所有镜像
docker images
- 使用镜像创建容器执行命令并销毁
docker run ubuntu echo "hello world"
会从本地ubuntu:latest镜像启动到一个容器,并执行打印命令后退出,默认有一个--rm=true参数,即完成操作后停止容器并从文件系统移除 - 使用image创建container并进入交互模式,
/bin/bashdocker run -i -t --name mytest centos:centos6 /bin/bash
--name 参数可以指定启动后的容器名字,如果不指定则docker会帮我们取一个名字。镜像centos:centos6也可以用IMAGE ID (68edf809afe7) 代替) -d不销毁 -i:表示以“交互模式”运行容器 -t:表示容器启动后会进入其命令行 -v:表示需要将本地哪个目录挂载到容器中,格式:-v <宿主机目录>:<容器目录> -p:表示宿主机与容器的端口映射,此时将容器内部的 8080 端口映射为宿主机的 58080 端口,这样就向外界暴露了 58080 端口,可通过 Docker 网桥来访问容器内部的 8080 端口了。docker run -i -t 镜像 /bin/bash ./home/start.sh
启动后执行shell命令
示例:启动容器加载node:6.11的镜像挂载本地目录并转发58011、58012端口
docker run -p 58011:8001 -p 58012:8002 -i -t -v /Users/chenws/Documents/weshare/anyproxy:/home/anyproxy/ node:6.11 /bin/bash - 获取正在运行的容器id
docker ps -q
-f 列出满足exited= 条件的容器
-a 列出所有容器(含沉睡镜像) -q 仅列出容器ID
-s 显示容器大小
示例: 删除已退出的容器docker rm $(docker ps -a -q -f exited=137)
获取容器IP地址
docker inspect containerid --format '{{ .NetworkSettings.IPAddress }}'
fb71d050cc0c 为容器id docker inspect fb71d050cc0c 查看容器相关信息docker ps | awk {'print $1'} | xargs docker inspect --format '{{ .NetworkSettings.IPAddress }}'
显示正在运行的容器IP容器修改并保存
在docker容器退出前 docker ps拿到containerid imageid 做docker commit containerid imageid 操作镜像保存为文件
docker save -o 文件名 镜像名
加载镜像文件
docker load --input 文件
容器与主机间copy文件
docker cp 文件路径 容器id:/容器目录
docker cp 容器id:/容器目录文件 host目录
选择容器执行命令
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
进入容器交互模式
docker exec -it containID /bin/bash