一、docker入门命令
- docker基本命令:
安装:
apt-get update && apt-get install docker.io
将当前用户增加到docker分组,不用每次都输sudo
sudo usermod -a -G docker $USER 重登该用户后生效
拉取和管理离线镜像
docker search imagename # 查找镜像
docker pull imagename # 下载最新版
docker pull imagename:5.6 # 下载指定版本
docker images # 查看本地镜像
docker run imagename # 运行镜像
docker run -t -i ubuntu:15.10 /bin/bash # 使用版本为15.10的ubuntu系统镜像来运行容器
docker run -d --name mynginx nginx #启动nginx镜像,没有会自动pull
docker attach d20f3dc6cd92 #进入一个正在运行的容器
docker exec -t -i $1 /bin/bash #进入正在运行的容器内部,同时运行bash(比attach更好用)
docker stop bfd094233f96 #停止一个容器
docker stop $(docker ps -a -q) # 停止所有的container,这样才能够删除其中的images:
docker rm bfd094233f96 #删除一个容器,默认并不会删除运行中的容器。所以删除容器前,必须先停止容器
docker rmi training/sinatra # 删除本地镜像
docker rmi# 删除镜像 删除前必须先停止所有的容器。image id可以通过docker images查看
docker rmi $(docker images -q) # 删除全部image
docker rm $(docker ps -a -q) # 如果想要删除所有container的话再加一个指令:
docker rmi $(docker images -q -f “dangling=true”) # 清理所有未打过标签的本地镜像,其中 -q 和 -f 是 quiet,–filter 的缩写
docker rmi $(docker images | grep “^” | awk “{print $3}”) # 删除所有id为的镜像
docker logs [container ID or NAMES] # 获取容器的输出信息
docker cp container:path hostpath # 从容器内复制文件到指定的路径上
-t 选项让Docker分配一个伪终端(pseudo-tty)并绑定到容器的标准输入上,
-i 则让容器的标准输入保持打开。
–name 使用一个自定义的名字 - 创建镜像方式(1. 从已经创建的容器中更新镜像,并提交镜像 2. 使用Dockerfile指令来创建一个新的镜像)
- 运行容器
docker run参数:
-a stdin: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项,登录容器(必须是以docker run -d启动的容器);
–add-host=[] Add a custom host-to-IP mapping (host:ip)
–blkio-weight=0 Block IO (relative weight), between 10 and 1000
–cpu-shares=0 CPU shares (relative weight)
–cap-add