docker常用命令说明
PS:docker仓库的配置信息在 /etc/docker/daemon.json文件中配置
1.仓库管理
// 登录docker仓库
sudo docker login
// 退出docker仓库
sudo docker logout
// 查找镜像,keyword替换为要查找的镜像关键词
// PS:出现了查找不到自己仓库里的镜像的问题,只使用自己的用户名可以查出所有的镜像
sudo docker search keyword
// 下载镜像
sudo docker pull ImageName
// 上传镜像
sudo docker tag LocalImageName:Tag UserName/NewImageName:NewTag
sudo docker push UserName/NewImageName:NewTag
2.镜像管理
// 查找你要下载的镜像,建议下载官方镜像
sudo docker search keyword
// 下载镜像
sudo docker pull ImageName
// 查看镜像列表
sudo docker images
// 删除一个镜像,可以在ImageName后面加:tag精确删除
sudo docker rmi ImageName
// 更新提交镜像
// 如:sudo docker commit -m="has update" -a="crazy4go" e218edb10161 crazy4go/ubuntu:v2
sudo docker commit -m="comments" -a="author" ContainerID author/NewImageName:NewTag
// 给镜像加标签
sudo docker tag ImageIdOrName:Tag NewImageName:NewTag
3.容器管理
// 查看容器列表
sudo docker ps -a
// 启动一个镜像容器
sudo docker run -it imangename /bin/bash
PS1: 使用-d参数可以让容器后台运行,i表示交互式操作,t表示终端交互,/bin/bash 在镜像名后面表示交互shell,执行exit退出后镜像也会终止执行
PS2: 可以使用--name参数指定容器的名称,可以使用-P参数让内部端口映射到随机宿主机端口,可以使用-p ContainerPort:HostPort来把内部端口映射到指定的宿主机端口
// 停止一个容器
sudo docker stop ContainerID
// 重启一个容器
sudo docker restart ContainerID
// 进入容器
sudo docker attach ContainerID //终端退出之后容器会终止执行,强制关闭不使用exit命令除外
sudo docker exec -it ContainerID //终端退出之后容器继续运行
// 删除一个容器
sudo docker rm -f ContainerID // -f表示强制删除
// 导出一个容器
sudo docker export ContainerID > FileName.tar
// 导入本地镜像
sudo docker import FileName.tar UserName/ImageName:NewTag
// 查看端口映射,容器端口到宿主机端口的映射
sudo docker port ContainerID
// 查看容器内部标准输出
sudo docker logs ContainerID
// 查看容器内部的程序进程
sudo docker top ContainerID
// 查看容器的配置和状态信息
sudo docker inspect ContainerID
4.链接管理,让容器与容器之间可以互通
// 查看docker的网络配置情况
sudo docker network ps
// 新建网络
sudo docker network create -d bridge NetName
PS: -d 参数有 bridge 和 overlay 两种类型,其中overlay类型的网络用于Swarm mode
// 新建镜像链接到已有的网络
sudo docker run -it --name MyHost01 --network NetName ImageName /bin/bash
sudo docker run -it --name MyHost02 --network NetName ImageName /bin/bash
PS:这样MyHost01和MyHost02就可以通过主机名进行互访了,可以通过 sudo docker exec -it MyHost01 ping MyHost02 和 sudo docker exec -it MyHost02 ping MyHost01 来测试,如果没有ping命令可以通过 apt-get update 和 apt-get install iputils-ping 命令来安装ping
// 已有镜像链接到已有的网络
sudo docker network connect NetName ContainereName
// 配置DNS进行互访,这种情况下很少会碰到,暂时不做实验
评论