Docker 镜像、容器、仓库的概念及应用详解

2020-06-17 06:40:32易采站长站整理


$ docker restart cet

9.进入容器

attach命令


$ docker attach nostalgic(nostalgic是docker的name)

缺点:所有窗口同步显示

exec命令


- docker exec -it 243... /bin/bash (243...为docker ID)

nsenter命令

1.找PID


$ PID=$(docker-pid 243..)

2.通过PID链接容器


$ nsenter --target $PID --mount --uts --ipc --net --pid

10.删除容器


$ docker rm [-f -l -v] cet

-f 强行终止并删除

-l 删除容器的链接,保留容器

-v 删除挂载的数据卷


$ docker export cet >test.tar

12.导入容器(将容器快照导入到本地镜像库)


$ cat test.tar | docker import - test/ubuntu:v1.0

重新指定标签为ubuntu的镜像名称,v1.0的版本号

docker load 也可以导入镜像存储文件到本地镜像库,他比import方式的好处是:import导入镜像快照文件将丢失所有的历史记录和元数据信息。

注:通过导出容器和导入容器可以实现容器迁移(拷贝文件)

仓库

仓库是集中存放镜像的地方,一个注册服务器上有很多仓库,一个仓库中有很多镜像。

1. 登录


$ docker login

2. 基本操作

查找、上传、下载

3. 自动创建

4. 查看镜像

http://www.dockerpool.com/downloads

5. 更新镜像标签


$ docker tag dl.dockerpool.com:5000/ubuntu:12.04 ubuntu:12.04

将前面的镜像更改为ubuntu:12.04

6. 创建私有仓库


$ docker run -d -p 5000:5000 -v /opt/data/registry:/tmp/registryregistry

自动下载并启动registry容器,创建本地的私有仓库服务,默认仓库船舰的容器在/tmp/registry,可以通过-v参数来存放到指定路径上

7.管理私有仓库镜像

假设私有仓库地址为10.0.2.2,端口为5000,


$ docker tag ubuntu:14.04 10.0.2.2:5000/test

更改标签名


$ docker push 10.0.2.2:5000/test

push镜像,会自动push到10.0.2.2地址的机器上


$ curl http://10.0.2.2:5000/v1/search

查看仓库10.0.2.2:5000中是否含有test镜像


docker pull 10.0.2.2:5000/test

在任何一台能访问到10.0.2.2地址的机器上下载镜像