目录
基本信息:
查看版本:
docker version
查看容器信息:
docker info
容器帮助:
docker --help
查看IP:
docker-machine ip default
docker inspect <container id> | <container name>
根据容器ID或名称查看IP
查看日志:
docker logs --timestamps -f --tail 50 <container id> --查看容器实时50行日志
docker logs -t -f 容器ID|Name
docker-compose logs -f --tail 50 --timestamps <可选server名称> --docker-compose查看容器实时50行日志,server名称可选
重启docker:
systemctl restart docker
查看docker状态:
systemctl status docker
镜像:
查看本地所有镜像:
docker images
本地所有镜像ID:
docker images -q
所有镜像的完整信息:
docker images --no-trunc
Docker Hub 搜索镜像:
docker search (name) 镜像名
下载镜像:
docker pull name(镜像名)
单个镜像删除:
docker rmi name(镜像名)
镜像强制删除:
docker rmi -f name(镜像名)
多个镜像删除,不同镜像间以空格间隔(这里以redis和nginx镜像为例)
docker rmi -f redis nginx
删除本地全部镜像:
docker rmi -f $(docker images -q)
上传本地镜像Docker Hub
docker push imageName:tag
查看指定镜像的创建历史:
docker history <image ID>|<IMAGE Name>
工具 Dockerfile 文件创建镜像:注意:最后有个点号
docker build -t aspnetapp -f ./Docker.Sample/Dockerfile .
## -t 镜像名称
-f Dockerfile 路径
容器:
查看所有运行的容器完整信息:
docker ps --no-trunc
显示所有的容器,包括未运行的
docker ps -a -s
正在运行的容器ID:
docker ps -q
退出容器:(容器在docker run -i -t )模式下运行时,需要退出容器时
exit ##容器退出且停止运行
Ctrl + P + Q ##容器退出但不停止运行
查看本地正在运行容器:
docker ps -s
启动容器:
docker start name(镜像名)
重启容器:
docker restart name(镜像名)
停止容器:
docker stop name(镜像名)
强制停止容器
docker kill name|id
删除已停止的容器:
docker rm name(镜像名)
删除运行中的容器:
docker rm -f name(镜像名)
删除全部容器:
docker rm -f $(docker ps -a -q)
删除容器,并删除容器挂载的数据卷:
docker rm -v name(镜像名)
使用镜像创建一个新的容器但不启动:
docker create --name myrunoob nginx:latest
nginx:latest 镜像
--name 新的容器名
运行容器run:
docker run --help ##docker run 帮助命令
docker run --name mynginx -d nginx:latest ##使nginx:latest以后台模式启动一个容器,并将容器命名为mynginx,没有指定端口映射,容器将不会运行。
docker run -P -d nginx:latest ##镜像nginx:latest以后台模式启动一个容器,并将容器的80端口映射到主机随机端口,默认取随机容器名称。
docker run --name nginx-test -p 8080:80 -d nginx
##
--name nginx-test:容器名称
-p 8080:80: 端口进行映射,将本地 8080 端口映射到容器内部的 80 端口
-d nginx: 设置容器在在后台一直运行
docker run -p 80:80 -v /data:/data -d nginx:latest ##使用镜像 nginx:latest,以后台模式启动一个容器,将容器的 80 端口映射到主机的 80 端口,主机的目录 /data 映射到容器的 /data。
查看容器详情:
docker inspect <容器id>
查看容器内运行的进程:
docker top 容器ID|Name
查看容器内部细节:
docker inspect <container id> | <container name>
列出指定的容器的端口映射:
docker port <container id> | <container name>
从容器创建一个新的镜像:
docker commit -a "czjnoe" -m "docker commit test" docker inspect <container id> | <container name> myhelloworld
-a :提交的镜像作者;
-m :提交时的说明文字;
myhelloworld 新的镜像名
暂停/恢复容器中所有的进程
docker pause <container id> | <container name> 暂停容器中所有的进程
docker unpause <container id> | <container name> 恢复容器中所有的进程
检查容器里文件结构的更改:
docker diff <container id> | <container name>
在运行的容器中执行命令:
docker exec -it <container id> | <container name> /bin/bash
docker复制,主机和容器目录和文件复制
docker cp [OPTIONS] /home/plugins [容器id]:/plugins --复制/home/plugins目录到容器plugins
docker cp [OPTIONS] [容器id]:/plugins /home/plugins --复制容器plugins目录到/home/plugins
options可用参数
-a:将复制的文件或目录保留其原始属性,包括所有者、权限等。
-L:如果SRC_PATH是一个符号链接,则复制链接指向的文件或目录。
-p:保留源文件或目录的时间戳。
-R或-r:递归复制整个目录。
export import:
以redis为示例:
1.export:将容器的文件系统导出成tar包
docker export -o c:\myredis.tar <container id>
-o 导出路径
2.import:将导出的容器的文件系统包,创建镜像 myredis
docker import c:\myredis.tar myredis
3.运行新创建的镜像:
注意:运行导入的镜像的时候必须带command命令,不然报错=》docker: Error response from daemon: No command specified.
docker run -d --name myredis -p 6381:6379 myredis redis-server
command命令:redis-server
save load:
save:导出镜像压缩包
docker save -o c:\my_images.tar <镜像名> | <镜像ID>
可多个镜像,以空格间隔
load : 导入使用 docker save 命令导出的镜像
docker load --input c:\my_images.tar
数据卷Volume:
docker volume create 卷名 ##创建数据卷
docker volume ls ##查看所有数据卷
docker volume inspect 卷名 ##查看数据卷详细
Docker可视化
docker run -p 19000:9000 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v /www/portainer/data:/data -d portainer/portainer --英文
docker run -d --name=portainer-zh -p 19000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v /www/portainer-cn/data:/data --restart=always 6053537/portainer-ce --中文版