镜像仓库
docker search centos #搜索镜像
docker pull centos #拉取镜像(不指定版本,默认新版)
docker tag image_name tag_name #将镜像打标签
docker push image_name repository_name/image_name #repository_name为dockerhub自己创建的名
docker login repository_name #登录镜像仓库
docker logout repository_name #退出镜像仓库
信息
docker version #查看docker版本
docker info #查看docker详情(包括容器数量。运行的数量,镜像数量,宿主机信息等等)
docker logs container_name #查看容器历史运行日志(容器必须运行起来)
docker stats --no-stream #查看容器的资源占比(CPU,内存)
docker inspect [OPTIONS] container_name|id #查看容器或者镜像的元数据信息
查看镜像容器
docker images #查看存在的镜像
docker ps #查看运行的容器
docker ps -a #查看所有容器
转化(容器、镜像、文件包)
- 将容器提交成镜像
sh docker commit container_name image_name #commit+容器名+想要打成的镜像名
- 将镜像打包成tar包保存到本地
sh docker image_name save -o image_name.tar.gz image_name docker image_name save > image_name.tar.gz image_name
- 将tar包解压成镜像
sh docker load --input image_name.tar.gz docker load -i image_name.tar.gz docker load < image_name.tar.gz
运行容器(以镜像为基础)
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
- 相关参数
-i #以交互模式运行容器,输入命令返回结果,exit退出交互模式
-t #启动容器,并进入命令行
-d #创建守护容器后台运行,不会进入容器,和i/t命令一起也不会进入容器
-it #直接进入容器的终端,执行命令exit退出容器,或者ctrl+p+q
-v #目录的映射关系(宿主机目录:容器目录),比如挂载磁盘参数如: -v /sys/fs/cgroup:/sys/fs/cgroup
--name #为创建的容器命名
-p #表示端口映射关系(宿主机端口:容器端口),比如: -p 2000:3000
-P #随机端口端口,容器内部端口随机映射到主机的端口
--cpus= #表示提供给容器cpu大数
-m,--memory #指定分配给容器的内存,(单位b,k,m,g)小为 4M,不指定默认使用宿主机的所有资源
--memory-swap #分配的内存+交换分区大小。要大于-m
--network=host #容器和宿主机ip一致
-h #指定容器的hostname;
-e username=xx: #设置环境变量;
进入退出容器
docker attach container_name #进入容器
docker exec -it container_name /bin/bash #进入容器
#两者区别是,docker attach退出容器,容器就退出了,exec进入的容器,退出后容器还运行
exit/ctrl+D/ctrl+P+Q #退出容器
停止,启动,删除
docker stop container_name/container_id #停止容器
docker start container_name #启动容器
docker rm container_name #删除容器(先停止容器之后再删除)
docker container_name prune #删除停止的容器
docker rmi image_name #删除镜像(删除相关容器和子镜像)
Docker文件操作命令
docker cp 宿主机文件 container_name:容器内目录 #将宿主机文件复制到容器内
docker cp container_name:容器内目录/内文件 宿主目录 #将容器内文件复制到宿主机目录下
Docker数据卷命令
docker volume create volume_name #创建容器卷
docker volume ls #列出容器卷
docker volume rm volume_name #删除容器卷