Docker学习(上)

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: Docker学习

我的docker环境

Ubuntu 20.04.6 LTS

替换apt软件包镜像源

修改/etc/apt/source.list中所有的

http://cn.archive.ubuntu.com/ubuntu

->

https://mirrors.tuna.tsinghua.edu.cn/ubuntu

cd /etc/apt
# 备份文件
cp source.list source.list.package
# 替换镜像源
sed -i 's/http:\/\/cn\.archive\.ubuntu\.com\/ubuntu\//https:\/\/mirrors\.tuna\.tsinghua\.edu\.cn\/ubuntu\//g' source.list

docker安装

apt包管理器安装docker

sudo apt install docker.io
卸载

如果要卸载

sudo apt-get purge docker.io
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd

docker官方存储库安装

  1. 更新 apt 包索引,并且安装一些软件使得apt可以通过HTTPS协议访问软件库。
sudo apt-get update
sudo apt-get install \
ca-certificates \
curl \
gnupg \
lsb-release
  1. 添加docker官方的GPG秘钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
  1. 设置一个标准的docker软件仓库。
# 会在/etc/apt/source.list.d/添加一个叫docker.list的文件
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/dockerarchive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
  1. 更新apt 包索引并查看docker 可用版本列表
sudo apt-get update
apt-cache madison docker-ce
  1. 安装docker
  1. 安装特定版本docker语法,例如:5:24.0.2-1~ubuntu.18.04~bionic
sudo apt-get install docker-ce=<VERSION_STRING> \
docker-ce-cli=<VERSION_STRING> \
containerd.io=<VERSION_STRING> \
docker-compose-plugin=<VERSION_STRING>
  1. 使用具体版本号代替
sudo apt-get install docker-ce=5:24.0.5-1~ubuntu.20.04~focal \
docker-ce-cli=5:24.0.5-1~ubuntu.20.04~focal \
containerd.io=1.6.21-1 \
docker-compose-plugin=2.20.2-1~ubuntu.20.04~focal
  1. 或者直接安装最新版docker-ce及相关软件
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
  1. 检查docker engine是否安装正确
sudo docker run hello-world
卸载
sudo apt-get purge docker-ce docker-ce-cli containerd.io docker-compose-plugin

删除相关目录

sudo rm -rf /var/lib/docker && sudo rm -rf /var/lib/containerd && sudo rm -rf /etc/docker/

添加某用户到docker

为了不让每次输入docker指令都输入sudo

我们讲用户添加到docker

// 将用户从docker用户组中移除 gpasswd -d <username> docker
// 将用户添加到docker 用户组
sudo addgroup -a <username> docker
sudo service docker restart
// 查看用户信息
id <username>

配置docker镜像

/etc/docker/daemon.json添加镜像源

{
 "registry-mirrors": [
  "https://hub-mirror.c.163.com",
  "https://docker.mirrors.ustc.edu.cn",
  "https://registry.docker-cn.com"
 ]
}

docker命令学习

操作守护进程相关命令

systemctl 操作 docker
systemctl enable docker # 开机启动docker

操作镜像相关命令

查看镜像

docker images
docker images -q  # 显示所有的镜像id
REPOSITORY TAG IMAGE ID CREATED SIZE
仓库(镜像名称) 版本 镜像id(删除时会用) 创建时间 大小

搜索镜像

docker search xxxx

在网络上搜索镜像包

拉取镜像

docker pull redis:7.0
  • 可以指定版本也可以不指定,不指定的话默认latest

删除镜像

docker rmi redis
  • 可以写名称:版本,也可以写image id

操作容器相关命令

查看容器

docker ps

显示出正在运行的容器列表

docker ps -a

显示出历史所有运行过的容器列表

docker ps -aq

显示出所有历史运行过的容器列表id

创建容器

docker run -it --name=c1 redis:latest /bin/bash
  • -i表示保持容器运行,如果不加的话容器默认状态就为exit
  • -t为容器重新分配一个伪输入终端,exit后容器关闭
  • --name=xx分配名字
  • redis:latest指定镜像
  • /bin/bash进入容器的初始化指令
docker run --id --name=c2 redis:latest

返回容器id

  • -d以守护模式运行容器。创建一个容器在后台运行,使用exit退出后容器不会关闭

-it创建一个交互式容器,-id创建一个守护式容器

进入容器

docker exec -it c2 /bin/bash
  • 以交互的终端方式进入c2

启动容器

docker start c2
  • 启动exit状态的容器

停止容器

docker stop c2
  • 关闭已经启动的容器

删除容器

docker rm c1
  • 从容器列表中删除容器
docker rm `docker ps -aq`
  • 删除所有容器

查看容器信息

docker inspect c2

容器的数据卷

数据卷的概念以及作用

概念

宿主机上有数据卷目录,容器内部也有数据卷目录,容器内部的数据卷目录挂载的是宿主机上的数据卷目录。所以可以回答下面三个问题

  • docker容器删除后,在容器中产生的数据也会随之销毁吗
  • 相当于不挂载了,只要宿主数据卷还在就行
  • docker容器和外部机器可以直接交换文件吗
  • 外部机器与宿主的数据卷进行交互间接修改docker容器数据
  • 容器之间想要进行数据交互
  • 不同容器间挂载可以挂载同一个宿主数据卷

一个数据卷可以被多个容器挂载

一个容器可以挂载多个数据卷

Docker学习(下)+https://developer.aliyun.com/article/1416644

相关文章
|
运维 虚拟化 开发者
Docker-全面详解(学习总结---从入门到深化)
Docker-全面详解(学习总结---从入门到深化)
321 1
|
分布式计算 Java Linux
【深入浅出Docker原理及实战】「原理实战体系」零基础+全方位带你学习探索Docker容器开发实战指南(Dockerfile使用手册)
Docker 是一套构建在 Linux 内核之上的高级工具,旨在帮助开发人员和运维人员更轻松地交付应用程序和依赖关系,实现跨系统和跨主机的部署。使用安全且轻量级的容器环境来实现这一目标。容器可以手动创建,也可以通过编写 Dockerfile 自动创建。开发人员和运维人员可以将应用程序及其依赖打包到容器中,实现应用程序的可移植性和环境一致性。
474 5
【深入浅出Docker原理及实战】「原理实战体系」零基础+全方位带你学习探索Docker容器开发实战指南(Dockerfile使用手册)
|
2月前
|
NoSQL 算法 Redis
【Docker】(3)学习Docker中 镜像与容器数据卷、映射关系!手把手带你安装 MySql主从同步 和 Redis三主三从集群!并且进行主从切换与扩容操作,还有分析 哈希分区 等知识点!
Union文件系统(UnionFS)是一种**分层、轻量级并且高性能的文件系统**,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem) Union 文件系统是 Docker 镜像的基础。 镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。
363 5
|
NoSQL Linux Redis
Docker学习二(Centos):Docker安装并运行redis(成功运行)
这篇文章介绍了在CentOS系统上使用Docker安装并运行Redis数据库的详细步骤,包括拉取Redis镜像、创建挂载目录、下载配置文件、修改配置以及使用Docker命令运行Redis容器,并检查运行状态和使用Navicat连接Redis。
1398 3
|
存储 Ubuntu Linux
学习docker
学习docker
177 1
|
运维 Kubernetes 开发者
Docker Swarm学习
【10月更文挑战第5天】
185 3
|
Kubernetes Linux 持续交付
docker容器学习
【10月更文挑战第1天】
183 1
|
存储 Ubuntu Docker
Docker学习
Docker学习
183 4
|
网络协议 Shell Docker
docker 学习之路
docker 学习之路
159 1
|
Linux 应用服务中间件 Shell
docker学习--docker容器镜像常用命令大全(简)
本文档详细介绍了Docker中的镜像命令与容器管理命令。镜像命令部分涵盖了镜像搜索、下载、上传等操作;容器管理命令则包括了容器的创建、启动、停止、删除及日志查看等功能。通过具体示例,帮助用户更好地理解和使用Docker相关命令。
836 0

热门文章

最新文章