查看
docker version
sudo docker info
镜像命令
搜索镜像
docker search 镜像名
docker search --filter STARS=9000 mysql
查看本地镜像
docker images
拉取镜像
docker pull 镜像:tag tag不填就是latest
删除镜像
docker rmi -f 镜像名/镜像ID 删除一个镜像
sudo docker rmi -f $(sudo docker images -aq) 删除全部镜像(a显示全部镜像,q只显示id)
保存镜像
docker save tomcat > /nginx.tar
加载镜像
docker load -i nginx.tar
创建新的镜像
docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
DockerFile创建镜像
docker build -t 镜像名称/次名称:版本号
容器命令
查看正在运行的容器
docker ps
查看所有容器
docker ps -a
运行容器
docker run -it --name cq_api -p 9514:9514 -v D:\folder\code\go:/go -d golang /bin/sh
p:端口映射
v:挂载镜像
删除容器
docker rm -f 容器名/容器ID
docker rm -f $(docker ps -aq) #删除全部容器
进入容器
docker exec -it 容器名/容器ID /bin/bash
docker attach 容器名/容器ID(退出后容器停止)
容器开启
docker start 容器名
docker stop 容器名
docker restart 容器名
容器拷贝文件
docker cp 容器ID/名称: 容器内路径 容器外路径
docker cp 容器外路径 容器ID/名称: 容器内路径
容器日志
docker logs -f 容器名称
容器自启动
docker update --restart=always 容器Id/容器名
容器重命名
docker rename 容器ID/容器名 新容器名
容器提交成镜像
docker commit -m=“提交信息” -a=“作者信息” 容器名/容器ID 提交后的镜像名:Tag
Docker运维
查看docker工作目录
sudo docker info | grep “Docker Root Dir”
查看docker磁盘占用情况
du -hs docker工作目录
查看docker磁盘使用具体
docker system df
docker删除停止的容器
docker rm docker ps -a | grep Exited | awk '{print $1}'
删除名称或标签为none的镜像
docker rmi -f docker images | grep '<none>' | awk '{print $3}'
问题
- Docker出现exited(127)的解决方法
原因:把name的参数放到镜像后面
解决:docker run -it -d -p 80:80 --name kk nginx:latest
- Got permission denied while trying to connect to the Docker daemon socket
原因:docker进程使用Unix Socket而不是TCP端口。而默认情况下,Unix socket属于root用户,需要root权限才能访问。
解决:
方法一:使用sudo获取管理员权限,运行docker命令。 sudo docker ps
方法二:测试不成功
sudo groupadd docker #添加docker用户组
sudo gpasswd -a $USER docker #将登陆用户加入到docker用户组中
newgrp docker #更新用户组
- docker save出错 open ./.docker_temp_xxx: permission denied问题
解决:
sudo docker save 镜像id > 压缩文件名字.tar