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
使用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:表示强制执行清理命令
人必有所执,方能有所成。