docker命令
查看cocker版本信息
docker -v
查看docker 信息
docker info
查看docker容器
docker images
启动一台虚拟机
docker run -itd centos
查看虚拟机状态
docker ps
查看centos ip
ip a
退出
exit
进入docker centos执行命令 :bash编码 (连接)
docker exec -it docker容器id bash
进入docker centos执行命令 :sh编码
docker exec -it docker容器id sh
查看centos版本
cat /etc/redhat-release
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ElSc0QDh-1669966505342)(/Users/name/Documents/Typora/image/截屏2022-11-05 22.14.21.png)]
关闭docker容器
sudo docker stop 2e9ca171361f(就是容器id)
Docker 镜像管理
配置国内的镜像源
【docker支持的容器列表 https://hub.docker.com/explore】
vi /etc/docker/daemon.json
{
"registry-mirrors":[" https://registry.docker-cn.com"]
}
(下载的都是纯净的镜像)
拉去centos7镜像
docker pull centos:7
@192 ~ % docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest 46331d942d63 7 months ago 9.14kB
centos 7 c9a1fdca3387 8 months ago 301MB
centos latest e6a0117ec169 13 months ago 272MB
删除centos7镜像
docker rmi centos:7
docker rmi centos:7
Untagged: centos:7
Untagged: centos@sha256:c73f515d06b0fa07bb18d8202035e739a494ce760aa73129f60f4bf2bd22b407
Deleted: sha256:c9a1fdca3387618f8634949de4533419327736e2f5c618e3bfebe877aa331352
Deleted: sha256:65f23ff12f4df9625427d229db82655bdadd805108d34
@192 ~ % docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest 46331d942d63 7 months ago 9.14kB
centos latest e6a0117ec169 13 months ago 272MB
拉取nginx镜像(同理)
docker pull nginx:1.12
##扩展:查看仓库所有匹配镜像
查看mysql的:docker search -f mysql
查看centos的: docker search centos76
查看docker分层信息
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WI96QXG0-1669966505342)(/Users/name/Documents/Typora/image/截屏2022-11-07 23.34.51.png)]
镜像不是单一的文件,而是有多层构成
docker镜像默认存储在/var/lib/docker/overlay2中。
容器其实是在镜像上面加了一层读写层,在运行容器里做任何文件改动,都会写到这个读写层,如果容器删除了,最上面的读写层也就删除了,改动也就丢失了。
docker使用存储驱动管理镜像每层内容及可读写层的容器
docker history nginx:1.12
解析:niginx1.12 指定查看的镜像加具体的版本信息(只能查看本地以缓存的镜像文件)
镜像管理命令
增删改查
拉取镜像(增)
docker pull nginx:1.12
查看现有镜像
docker images
删除镜像
docker mage rm 镜像:标签
docker rmi 镜像:标签
打tag标签(改)
docker tag nginx:1.11 nginx:a1
@192 ~ % docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest 46331d942d63 7 months ago 9.14kB
centos latest e6a0117ec169 13 months ago 272MB
@192 ~ % docker tag hello-world:latest htllo-world:A1
@192 ~ % docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
htllo-world A1 46331d942d63 7 months ago 9.14kB
hello-world latest 46331d942d63 7 months ago 9.14kB
centos latest e6a0117ec169 13 months ago 272MB
@192 ~ %
(打过tag之后打容器id是完全一样的)
导出镜像(会导出到当前目录)
docker save htllo-world:A1 >htllo-world:A1.tar
@192 ~ % docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
htllo-world A1 46331d942d63 7 months ago 9.14kB
hello-world latest 46331d942d63 7 months ago 9.14kB
centos latest e6a0117ec169 13 months ago 272MB
@192 ~ % cd dockertest
@192 dockertest % docker save htllo-world:A1 >htllo-world:A1.tar
@192 dockertest % ls
htllo-world:A1.tar
导入镜像
docker load < hello-world:A2.tar
@192 dockertest % mv htllo-world:A1.tar hello-world:A2.tar
@192 dockertest % ls
hello-world:A2.tar
@192 dockertest % docker load < hello-world:A2.tar
Loaded image: htllo-world:A1
@192 dockertest % docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest 46331d942d63 7 months ago 9.14kB
htllo-world A1 46331d942d63 7 months ago 9.14kB
centos latest e6a0117ec169 13 months ago 272MB
@192 dockertest % docker rmi htllo-world:A1
Untagged: htllo-world:A1
@192 dockertest % docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest 46331d942d63 7 months ago 9.14kB
centos latest e6a0117ec169 13 months ago 272MB
@192 dockertest % docker load < hello-world:A2.tar
Loaded image: htllo-world:A1
@192 dockertest % docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
htllo-world A1 46331d942d63 7 months ago 9.14kB
hello-world latest 46331d942d63 7 months ago 9.14kB
centos latest e6a0117ec169 13 months ago 272MB
运行容器
@192 dockertest % docker run -itd htllo-world:A1
f473a6b109071a07c73fe68539ed431d1cd5443fafa23ab108b8a55fea27e9c0
导出容器
docker export 容器id > centos.tar
解释:查看容器id docker ps
导入容器(保存为镜像仓库)
docker import centos.tar centos1:12
解释:centos:12 是创建一个镜像标签(如果没有则镜像名称为none)
容器管理
Docker容器默认存放位置
docker容器抹人存放于/var/lib/dockercontainers/
创建一个容器
docker run -itd --name a1 centos
解析:
–name 定义容器名称(可以理解为容器的标签)
centos 创建容器使用的镜像(通常通过pull命令拉取)
可使用快捷键ctrl+P+Q来退出容器时不自动停止