尚未学习k8s,认为docker依旧不太适合搭建运维集群
查看概要信息 docker info
查看docker帮助文档 docker --help
查看docker命令帮助文档 docker 命令 --help
镜像命令
docker images:列出本机所有镜像
docker search 镜像名:在仓库源里获得镜像
--limit 列出有限个镜像(docker serch --limit 5 redis)
docker pull 镜像名:下载镜像
[:TAG] 指定版本下载 (docker pull redis:6.0.8)
docker system df:查看镜像/容器/数据卷所占的空间
docker rmi 镜像ID:删除镜像
-f 强制删除
-f $(docker images -qa)删除全部镜像
容器命令
docker run [OPTIONS] IMAGE:启动镜像
--name 容器新名字
-d 后台运行容器并返回容器ID
-i:以交互模式运行容器
-t:为容器重新分配一个伪输入终端
-P:随机端口映射
-p:指定端口映射 主机端口:docker端口
-it 启动交互式容器(docker run -it ubuntu /bin/bash)
docker ps [options]:列出所有正在运行的容器
-a 列出当前正在运行+历史运行过的
-l 最近创建的容器
-n 最近n个创建的容器
两种退出方式:
exit --run进去 exit退出 容器停止
ctrl+p+q --run进去 ctrl+q+p退出 容器不停止
启动已经停止运行的容器
docker start 容器ID
重启容器
docker restart 容器ID
停止容器
docker stop 容器ID
强制停止容器
docker kill 容器ID
删除已停止的容器
docker rm 容器ID
docker rm -f $(docker ps -a -q)删除所有容器
应用:
对于常规容器的启动方法:比如希望去修改内容
docker run -d --name centos7 -p 22:22 --privileged=true a79520/centos7.9 /usr/sbin/init
docker exec -it 容器名 /bin/bash
对于后台容器如何停止后删除(为了重新指定端口映射)
*第一步时,在容器做的修改就会消失*
docker stop 容器
docker rm 容器
*如何启动停止的容器*
docker start 容器
通过容器创建镜像:
docker commit 容器ID 新镜像名
重要
启动后台运行:docker run -d 容器名
如果没有程序使用,会自动退出
启动前台运行:docker run -it
查看docker容器日志:docker logs 容器ID
查看docker内运行的进程:docker top 容器ID
查看容器内部细节:docker inspect 容器ID
进入正在运行的容器并以命令交互
docker exec -it 容器ID /bin/bash
docker attach 容器ID
区别:
attach 不会启动新的进程 用exit退出 会导致容器的停止
exec 可以启动新的进程 用exit退出 不会导致容器的停止
从容器拷贝文件到主机
docker cp 容器ID:容器文件 目的主机路径
导入导出容器:
export导出容器的内容留作为一个tar归档文件
import从tar包中的内容创建一个新的文件系统再导入为镜像
docker export 容器id>文件名.tar
cat 文件名.tar | docker import - 镜像用户/镜像名:镜像版本号
docker镜像
提交容器副本使之成为一个新的镜像
docker commit -m="描述信息" -a="作者'' 容器ID 要创建的目标镜像名:[标签名]
本地镜像发布到hub
1.docker login
2.docker push
本地镜像发布到本地仓库
1.下载镜像Docker Registry
2.运行私有库Registry
3.上传私有仓库
参考文章:解决docker:denied: requested access to the resource is denied_docker login denied_花花世界-fpf的博客-CSDN博客
参考文章:如何将自己的镜像上传到Docker hub上-CSDN博客