docker常用操作命令
从仓库上下载镜像资源到本地
docker pull xxx/yyy
docker根据dockerfile构建镜像:
docker build -t [镜像名称] .
dockerfile基本语法
docker采用镜像分层,dockerfile每一行相当于都是一个RO可读层,只有在使用docker run创建容器之后会创建一个可读写RW的layer容器层,这样可以增加文件复用节省空间。
docker查看本地镜像(默认情况下,过滤掉中间映像层):
docker images
docker删除所有的镜像:
docker rmi $(docker images -q)
docker标记本地镜像:
docker tag centos:centos7 mycentos:centosv7
将根据本地镜像新创建一个镜像
docker镜像导出tar文件转为镜像,用于持久化镜像:
docker save 镜像名 > save.tar
docker load < save.tar
docker根据容器导出tar文件,tar文件转为镜像,用于持久化容器
docker export 容器ID > export.tar
docker import [OPTIONS] file|URL|- [REPOSITORY[:TAG]]
docker import export.tar newimagesname:tag
save-load与export-import的不同:
docker save 保存的是镜像(image),docker export 保存的是容器(container);
docker load 用来载入镜像包,docker import 用来载入容器包,但两者都会恢复为镜像;
export-import的镜像会丢失所有的历史,而save-load的镜像没有丢失历史和层(layer),
使用save-load方式持久化整个镜像,就可以做到层回滚(可以执行docker tag 来回滚之前的层);
docker load 不能对载入的镜像重命名,而 docker import可以为镜像指定新名称
docker创建容器:
docker run -itd --name 容器名 镜像名称
docker创建容器但不启动它:
创建一个数据容器
docker create -v $PWD/data:/var/mydata --name data_container centos:centos7
其他容器创建时都可以挂载这个数据容器实现文件数据共享
docker run -it --volumes-from data_container centos:centos7 /bin/bash
docker查看所有的容器(含未运行的):
docker ps -a
docker启动所有的容器:
docker start $(docker ps -a -q)
docker关闭所有的容器:
docker stop $(docker ps -a -q)
docker删除所有的容器:
docker stop $(docker ps -a -q) | xargs docker rm
docker查看容器状态:
docker top 容器名
docker查看容器的端口映射:
docker port 容器名
docker获取容器/镜像的元数据:
查看lrnp网络容器nginx的ip:docker inspect -f {{.NetworkSettings.Networks.lrnp.IPAddress}} nginx
docker获取容器/镜像事件:
docker events -f "image"="nginx" --since="1467302400"
docker events -f "container"="nginx" --since="2018-12-06" --until="2018-12-07"
docker获取容器日志:
docker logs --since="2018-12-06" --tail=10 mynginx
docker将容器创建一个新的镜像(-p :在commit时,将容器暂停):
docker commit -a "xiaoguo" -m "nginx_web ok" nginx_web nginx_web:v1
docker容器与主机之间的数据拷贝:
将主机/www/html目录拷贝到容器nginx的/www目录下
docker cp /www/html nginx:/www/
docker-compose启动 停止 删除
docker-compose [start || stop || rm]
docker-compose 重新构建镜像
docker-compose build
docker-compose运行
docker-compose up -d
docker-compose stop 是只停掉容器不删除
docker-compose down 是停掉容器然后删除掉
当你改变本地代码之后,先执行docker-compose build构建新的镜像,然后执行docker-compose up -d取代运行中的容器
注意:每次修改网络配置后,需要将docker network重启下