1. 镜像相关
从docker hub(https://hub-stage.docker.com/)查找需要的镜像,然后根据需要拉取镜像。
查看镜像: docker images
搜索镜像: docker search 镜像名称
拉取镜像: docker pull 镜像名称
删除镜像: docker rmi 镜像id
删除所有镜像: docker rmi $(docker images -aq)
查看镜像元数据: docker image inspect 镜像id
提交容器成为一个新的镜像:docker commit -m="镜像描述信息" -a="作者信息" 容器id 目标镜像名:tag标签
查看镜像的变更历史: docker history 镜像id
给镜像打tag:docker tag 镜像id 镜像名:tag
将镜像打包成tar包:docker save -o mycentos_v1.tar mycentos:v1
将镜像tar包加载成镜像:docker load -i mycentos_v1.tar
2. 容器相关
- 查看容器
查看正在运行的容器:docker ps
查看所有容器:docker ps –a
查看所有容器ID:docker ps -aq
查看最后一次运行的容器:docker ps –l
查看停止的容器:docker ps -f status=exited
- 创建并启动
创建容器:docker run
交互式启动并进入容器:docker run -it centos /bin/bash
后台启动容器(有坑:后台启动后,docker ps 找不到该容器,是因为没有前台进程使用这个容器,docker自动停止该容器):docker run -d 容器id
docker run 后面跟参数
-i:表示运行容器
-t:表示容器启动后会进入其命令行。加入这两个参数后,容器创建就能登录进去。即分配一个伪终端。
--name :为创建的容器命名。
-v:表示目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录),可以使用多个-v做多个目录或文件映射。注意:最好做目录映射,在宿主机上做修改,然后共享到容器上。
-d:在run后面加上-d参数,则会创建一个守护式容器在后台运行(这样创建容器后不会自动登录容器,如果只加-i -t两个参数,创建后就会自动进去容器)。
-p:表示端口映射,前者是宿主机端口,后者是容器内的映射端口,比如 -p 主机端口:容器端口。可以使用多个-p做多个端口映射。
-P:随机指定端口。
- 进入当前正在运行的容器
进入当前容器后开启一个新的终端,可以在容器里操作:docker exec -it 正在运行的容器id /bin/bash
- 退出容器
容器停止并退出:exit
容器不停止退出:Ctrl + P + Q
- 删除容器
删除指定容器(不能删除正在运行的容器):docker rm 容器id
删除正在运行的指定容器:docker rm -f 容器id
删除全部容器:docker rm -f $(docker ps -aq)
或者docker ps -aq | xargs docker rm
- 启动和停止容器
启动容器:docker start 容器id
重启容器:docker restart 容器id
停止当前正在运行的容器:docker stop 容器id
如果停止报错,强制停止:docker kill 容器id
- 容器日志信息
查看最近100行日志:docker logs -tf --tail 100 容器id
- 容器中进程信息
查看容器内部的进程信息:docker top 容器id
- 容器元数据
查看容器元数据:docker inspect 容器id
- copy文件
从容器内copy文件到主机上:docker cp 容器id:容器内文件路径 目标主机路径
- 查看资源消耗信息
查看内存、cpu、磁盘等情况:docker stats
- 创建容器并修改环境配置
比如在创建容器时要对ES的内存进行限制,需要修改配置文件,-e 修改环境配置:
docker run -d --name elasticsearch01 -p 9200:9200 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms64m -Xmx512m" elasticsearch:7.6.2