Ubuntu当中的Docker安装和镜像管理

目录

1.更新apt软件包索引

2.有旧版本的就删除旧版本的

3.安装Docker

4.查看是否安装成功

5.启动Docker服务

6.配置用户组

[7.Hello World](#7.Hello World)

[8.Docker search](#8.Docker search)

9.Docker镜像管理

列出本地的镜像

删除镜像

查看镜像

10.构建镜像

[(1)使用docker commit命令](#(1)使用docker commit命令)

[(2)使用Dockerfile和docker build命令(暂时跳过)](#(2)使用Dockerfile和docker build命令(暂时跳过))

11.镜像标签管理


1.更新apt软件包索引

复制代码
sudo apt update

2.有旧版本的就删除旧版本的

复制代码
sudo apt-get remove docker docker.io containerd runc

3.安装Docker

复制代码
sudo apt install docker.io

4.查看是否安装成功

复制代码
docker -v

5.启动Docker服务

复制代码
sudo systemctl start docker
sudo systemctl status docker

systemctl命令用来控制Ubuntu系统中的各项服务,start命令用于启动某项具体的服务,而status命令则可以查看某项服务的状态

6.配置用户组

添加当前用户进入用户组

复制代码
sudo usermod -G docker ${USER}

使配置生效(不用重启docker)

复制代码
newgrp docker

7.Hello World

复制代码
sudo docker run hello-world

如果出现了网络问题,就跟着下面的步骤修改配置

修改配置文件,写的时候记得把注释去掉

复制代码
sudo tee /etc/docker/daemon.json <<-'EOF'
{

  "registry-mirrors": ["https://registry.docker-cn.com"]

}
EOF

重新加载配置并重启 Docker

复制代码
sudo systemctl daemon-reload
sudo systemctl restart docker

验证配置是否生效

复制代码
sudo docker info | grep -A 1 "Registry Mirrors"

如果看到了配置的镜像地址,就说明加速器配置成功了 。

如果还是不行的话就翻一下墙试试

看到Hello from Docker即可

复制代码
docker search keyword

keyword表示的是要查找的镜像所包含的关键词,以mysql为例:

9.Docker镜像管理

使用docker pull可以从docker hub下载镜像,name是镜像名称,tag是镜像版本

如果不写tag会默认为latest,表示下载最新的镜像

复制代码
docker pull name:tag

列出本地的镜像

复制代码
docker images

删除镜像

image为镜像名称,该操作可以同时删除多个镜像,多个镜像之间名字用空格分开

复制代码
docker rmi image ....

查看镜像

对于下载到本地的镜像文件,我们可以使用docker inspect命令来查询相关信息。

10.构建镜像

一般镜像的构建都是基于一个已有的基础镜像(Ubuntu或者CentOS等)来构建新的镜像。

从零开始的话会特别麻烦

(1)使用docker commit命令

先pull一个Ubuntu镜像

然后以交互方式启动Ubuntu容器

复制代码
docker run -i -t ubuntu /bin/bash

docker run 表示启动一个docker容器, -i表示采用交互的方式, -t表示为当前用户分配一个虚拟终端。

ubuntu为镜像名称, /bin/bash为要执行的命令

启动完成后如图

使用apt-get更新系统

接下来我们可以在容器里面安装Apache2.该容器可以作为一个Web服务器来运行,我们可以把它的状态保存下来然后就不需要每次都安装Apache2了。

安装完成后exit退出容器,返回Docker管理界面。找到刚才使用的容器,执行:

复制代码
docker ps -a

container ID是容器的id

Image是容器使用的镜像

Command是运行的命令

created是创建时间

status是状态

ports是挂载的端口

使用该容器id作为参数来构建新的镜像

复制代码
docker commit 384604e2d528 demo/webserver

(2)使用Dockerfile和docker build命令(暂时跳过)

11.镜像标签管理

镜像标签可以用来识别不同的版本,设置标签命令

复制代码
docker tag source_image [:tag] target_image [:tag]
相关推荐
小江的记录本41 分钟前
【Spring全家桶】Spring Cloud 2023.0.x:微服务核心理论、CAP/BASE定理(附《思维导图》+《面试高频考点清单》)
java·spring boot·后端·spring·spring cloud·微服务·面试
开开心心就好1 小时前
无弹窗不更新的PC本地播放工具
运维·科技·macos·docker·计算机外设·ocr·powerpoint
面向对象World1 小时前
Z8350 Broadcom SDIO网卡调试Ubuntu 22.04 Server版
linux·运维·ubuntu
小王师傅662 小时前
深入解析:Docker在Mac上的运行本质与Linux进程管理机制
linux·macos·docker
wu8587734572 小时前
OpenResty 源站被扫描的排查与防御实战:Cloudflare + DOCKER-USER + Fail2Ban 最全方案解析
docker·容器·openresty
杨某不才2 小时前
内网离线方式Docker安装Elasticsearch
elasticsearch·docker·jenkins
微步_ym2 小时前
Docker:在Mac的docker.desktop中安装mongo
macos·docker·容器
tianyuanwo3 小时前
深入解析 Docker Registry 源配置:原理、登录、查看、拉取、更新、删除与最佳实践
docker·registry
huipeng9263 小时前
企业级微服务开发实战(二):微服务基础设施搭建与中间件部署
java·redis·mysql·spring cloud·微服务·nacos·rabbitmq
爱吃龙利鱼3 小时前
docker-compose一键部署ELK+Filbeat
elk·docker