docker安装配置及基本使用

本文详细介绍了在Ubuntu系统上离线安装Docker的步骤,包括下载所需包,安装,配置国内镜像加速,并提供在线安装与卸载的方法。此外,还讲述了如何验证安装,配置非root用户使用Docker以及Docker的基本操作,如删除容器和镜像。
摘要由CSDN通过智能技术生成

docker,大数据,Linux,python

docker安装配置及基本使用

一、下载和安装

(一)Ubuntu系统

法1. 离线安装

1)下载

官网:https://download.docker.com/linux/ubuntu/dists/focal/pool/stable/amd64/
下载相关Docker和相关包。
系统Ubuntu20.04,可以下载如下三个:

containerd.io_1.4.12-1_amd64.deb
docker-ce-cli_20.10.12~3-0~ubuntu-focal_amd64.deb
docker-ce_20.10.12~3-0~ubuntu-focal_amd64.deb
2)安装

先卸载旧版本(如果有)

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

再依次安装上面下载的包

sudo dpkg -i containerd.io_1.4.12-1_amd64.deb
sudo dpkg -i docker-ce-cli_20.10.12~3-0~ubuntu-focal_amd64.deb
sudo dpkg -i docker-ce_20.10.12~3-0~ubuntu-focal_amd64.deb
3)配置国内镜像加速
(1)对于使用systemd的系统:Ubuntu16.04+、Debian8+、CentOS7

/etc/docker/daemon.json 中写入如下内容(如果文件不存在请新建该文件):

{"registry-mirrors":["https://docker.mirrors.ustc.edu.cn/"]}

之后重新启动服务:

sudo systemctl daemon-reload
sudo systemctl restart docker

上面文件添加的是科大镜像,docker的阿里云镜像加速需要注册。
阿里云docker:
https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors 用个人账户登陆后,点击左侧栏的“镜像中文”-> “镜像加速器”,之后在右侧兰就可以看到生成的个人加速器地址了。
可以配置多个国内镜像加速地址,当某个地址不稳定时会自动切换,如下,是我的配置:

{
        "registry-mirrors":[
                "https://zlwmp571.mirror.aliyuncs.com",
                "https://docker.mirrors.ustc.edu.cn/",
                "https://reg-mirror.qiniu.com/",
                "https://hub-mirror.c.163.com/"
        ]
}
(2)对于使用 upstart 的系统:Ubuntu14.04、Debian7Wheezy

编辑 /etc/default/docker 文件,在其中的 DOCKER_OPTS 中配置加速器地址:

DOCKER_OPTS="--registry-mirror=https://registry.docker-cn.com"

重新启动服务:

sudo service docker restart
附:卸载docker
# 卸载Docker
sudo apt-get purge docker-ce docker-ce-cli containerd.io

# 删除所有的镜像、容器和数据卷(数据卷的挂载位置依据实际情况而定)
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd

法2. 使用官方脚本(阿里云)快速在线安装

安装命令如下:

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

也可以使用国内 daocloud 一键安装命令:

curl -sSL https://get.daocloud.io/docker | sh

法3. 通过apt-get在线安装

# 更新apt
sudo apt-get update

# 先卸载旧版本(如果有)
sudo apt-get remove docker docker-engine docker.io

# 再次更新apt
sudo apt-get update

# 由于apt源使用HTTPS以确保软件下载过程中不被篡改。因此,我们首先需要添加使用 HTTPS 传输的软件包以及 CA 证书。
sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ software-properties-common

# 更换国内源。为了确认所下载软件包的合法性,需要添加软件源的 GPG 密钥。
curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
 sudo add-apt-repository \   "deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu \   $(lsb_release -cs) \   stable"
 
 # 或者更换阿里源:
# curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

# 向 sources.list 中添加 Docker 软件源
 echo \
  "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# 再次更新apt
sudo apt-get update

# 安装高版本的docker好像都会挂,所以我们安装到18.06.1的
sudo apt-get install docker-ce=18.06.1~ce~3-0~ubuntu

其他版本的docker安装可参考官方文档:https://docs.docker.com/engine/install/,其中:

二、安装验证和配置

1. 安装验证

可通过输入docker version 可查看docker版本来验证。

2. 配置(赋予非root用户使用docker命令的sudo权限)

带有docker关键字的命令会大量使用,而非root用户每次输入 docker 命令都要输入sudo,很麻烦!如何配置呢?

1)背景

如下两图,docker需要 sudo 权限。
在这里插入图片描述在这里插入图片描述
默认情况下,docker 命令会使用 Unix socket 与 Docker 引擎通讯。而只有 root 用户和 docker 组的用户才可以访问 Docker 引擎的 Unix socket。出于安全考虑,一般 Linux 系统上不会直接使用 root 用户。因此,更好地做法是将需要使用 docker 的用户(如名为hadoop的用户)加入 docker 用户组。这样,我们当前的非root用户每次使用docker xxx 命令就不要再输入sudo 了。

2)赋予非root用户使用docker命令的sudo权限

假设我们有一个非root用户:用户名为hadoop。配置如下:

# 切换到hadoop用户登录
su hadoop

# 建立docker组(有时会提示已存在)
sudo groupadd docker

# 将当前的hadoop用户加入到docker用户组中
sudo gpasswd -a hadoop docker

# 更新用户组(重要!!!)
newgrp docker

# 更改/var/run/docker.sock权限(重要!!!)。如果少了这一步,不会永久生效。
sudo chmod a+rw /var/run/docker.sock

注:如果docker处于启动状态输入sudo service docker restart 来重启下docker。
接下来就可以直接输入docker不用sudo了,如下:
在这里插入图片描述
:/var/run/docker.sock权限修改前和修改后(sudo chmod a+rw /var/run/docker.sock)
在这里插入图片描述
另外,有的方法是用 sudo usermod -aG docker hadoop 命令来将当前用户hadoop加入docker 组,好像不太好用,具体可参考网上资料。

三、启动

ubuntu16.04系统输入

sudo service docker start

有的系统还可支持输入systemctl enable docker 来启动。
附:Win10的Linux子系统,安装好docker了,但执行docker命令时会提示:cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running,那你只需要通过以管理员身份运行Linux子系统即可。
以管理员方式打开Linux子系统程序 C:\Windows\System32\wsl.exe,再输入 sudo service docker start 这样server部分也完美启动了,可以愉快的使用docker了。
也可使用PowerShell,输入指令bash即可进入wsl子系统。
在这里插入图片描述
以管理员启动wsl控制台,开启docker

sudo cgroupfs-mount
sudo service docker start

四、使用

1. 删除(docker删除容器、镜像)

删除所有容器

docker rm `docker ps -a -q`

删除所有镜像

docker rmi `docker images -q`

2. 命令

# 查找系统镜像
docker search centos
docker search ubuntu

# 拉取(下载)镜像
docker pull ubuntu:16.04
docker pull ubuntu 	 # 不加版本号默认下载最新版
# 附:查看docker支持的镜像网站:
## 1. centos: https://hub.docker.com/_/centos?tab=tags&page=1
## 2. Ubuntu: https://hub.docker.com/_/ubuntu?tab=tags

# 查看本地所有镜像信息
docker images

其他更多常用命令可参考我的另一篇博文:https://blog.csdn.net/Acegem/article/details/123250271

五、docker拉取下来的镜像存储位置

docker pull 下来的镜像存在 /var/lib/docker/overlay2/ 目录下。

举例说明

目前有3个镜像:
在这里插入图片描述/var/lib/docker/overlay2/ 目录下可看到3个加密的目录,就是这3个镜像的位置:
在这里插入图片描述随便进入其中一个镜像,比如进入到3c38d495d294f89b1ecae4fadf475eaf2309f71f4184259daa9f8843b450aa76/ 目录,再进入到其下的diff目录:
在这里插入图片描述由此可以发现在 3c38d495d294f89b1ecae4fadf475eaf2309f71f4184259daa9f8843b450aa76/diff/ 下即是镜像系统文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值