docker拉取镜像与容器管理

docker 安装

卸载旧版本的Docker,没安装的就跳过此步

sudo apt-get remove docker docker-engine docker.io

开始安装

sudo apt-get update

下载安装工具

sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    software-properties-common

添加官方密钥

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
//加入 apt 仓库中

sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"

添加阿里云的Docker镜像

sudo mkdir -p /etc/docker     
 
sudo vim /etc/docker/daemon.json 
将以下内容写入daemon.json

    {
     "registry-mirrors": ["https://obou6wyb.mirror.aliyuncs.com"]
    }
//接下来输入:

sudo systemctl daemon-reload 
 
sudo systemctl restart docker 

service docker restart
 
docker version

参考1

使用docker拉取镜像之命令

1:查看镜像列表

docker  image ls

sudo docker run hello-world # 验证测试

2.拉取镜像

通过命令可以从镜像仓库中拉取镜像,默认从Docker Hub获取。

//命令格式:

 docker image pull <repository>:<tag>
//拉取ubuntu仓库,标签为 latest 的镜像,如果省略标签,则docker 会拉取标签为latest的镜像。获取非官方镜像的命令类似,例如:

docker image pull microsoft/dotnet:latest  

docker image pull -a  nigelpoulton/tu-demo    //添加 -a 参数可以拉取仓库中所有镜像

3:docker image ls 详解

 docker image ls --filter [dangling|before|since|lable|reference]

 dangling: 值为true或false,true 仅返回悬虚镜像,false仅返回非悬虚镜像。悬虚镜像:指没有标签的镜像。

before:需要镜像名或镜像ID作为参数,返回之前创建的全部镜像。

since:需要镜像名或镜像ID作为参数,返回之后创建的全部镜像。

lable:根据标注的名称或值过滤。略

reference:根据repository和tag搜索,貌似只能搜一级空间的镜像

4:搜索镜像

 //按照官方或非官方过滤,使用 --filter "is-official=true|false"

 docker search ubuntu --filter "is-official=true"  //只显示官方镜像

 //显示是否为自动创建的镜像

 docker search ubuntu --filter "is-automated=true"  //只自动创建的仓库

5:查看镜像分层

输入命令:docker image inspect ubuntu:latest

    输出:

在json节点RootFS可以看出ubuntu镜像有四层

6:删除镜像

使用Docker之容器的创建、删除

拥有一下镜像

1:启动一个简单容器

docker container run        //用于启动一个容器

-it   //是容器具有交互性,并与终端进行连接

命令:docker container run --name percy -it ubuntu:latest /bin/bash   //启动一个容器,并命名为percy

2:退出容器并保持容器运行

运行终端命令ps -elf 可以查看容器中运行的进程,第一个进程是运行的Bash Shell,第二个进程是临时进程,由ps -elf 产生,命令执行完进程也会结束。

按下Ctrl-PQ :组合键会退出容器,但不会终止容器的运行。

注意:如果在Bash Shell输入exit会退出Bash Shell,这时由于容器中没有任何进程运行,容器本身也会被杀死。

3:查看容器列表

4:容器的生命周期

依次执行下列命令,然后按 Ctrl-PQ退出容器

使用 docker container stop percy 停止容器

重新启动容器并重连到bash

说明:在删除容器前,容器不会丢失其中的数据。如果将容器存储在卷中,就算容器被删除了,数据也会被保存下来。

5:停止容器

docker container rm <container> -f   //销毁运行中的容器**

6:容器重启策略

always:除非容器被明确停止,比如通过 docker container stop命令,否则会一直尝试重启处于停止状态的容器。

docker container run --name neve --restart always -it ubuntu:latest /bin/bash

可以看到容器创建于23s前,启动于7s前

还有unless-stopped和on-failure 重启策略,这里对此不作介绍了。

7:删除容器

快速清理所有容器可以用:docker container rm $(docker container ls -aq) -f                              //-f:表示强制执行清理命令

参考

posted @ 2023-05-23 23:11  Sunny_SunShine  阅读(154)  评论(0编辑  收藏  举报