docker在Linux上安装

一、centos

1)Uninstall old versions

yum remove docker docker-client docker-client-latest \
    docker-common docker-latest docker-latest-logrotate \
    docker-logrotate docker-engine

2)SET UP THE REPOSITORY

2.1)Install required packages

yum install -y yum-utils device-mapper-persistent-data lvm2

2.2)set up the stable repository.

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo 

3)INSTALL DOCKER ENGINE - COMMUNITY

yum install docker-ce docker-ce-cli containerd.io

4)Start Docker

systemctl start docker
systemctl enable docker

二、Ubuntu 20.04

下面是使用默认存储库在Ubuntu上安装Docker,从官方存储库安装 Docker见参考[2]

sudo apt-get update
# 卸载任何旧的Docker软件。
sudo apt-get remove docker docker-engine docker.io
# 安装docker
sudo apt install docker.io
# 启动和自动化 Docker
sudo systemctl start docker
sudo systemctl enable docker
#  检查 Docker 版本
docker --version

# 如果在wsl下使用这种方式安装,会出现docker unrecognized service错误
# wsl下使用如下命令进行docker安装
curl https://get.docker.com | sh
service docker {start|stop|restart|status}

# 使用sudo 获取root权限执行,但是这样很麻烦,并且起来以后也可能有很多问题,
#守护进程启动的时候,会默认赋予名字为docker的用户组读写unix socket的权限,
# 因此只要创建docker用户组(也有可能docker用户组已经存在,通过`cat /etc/group`查看是否有docker组),
# 并且将当前用户加入到docker用户组中,就有了执行docker命令的权限
sudo groupadd docker #添加docker用户组
sudo gpasswd -a $USER docker  #将登陆用户加入到docker用户组中
newgrp docker #更新用户组
docker images    #测试docker命令是否可以使用sudo正常使用

三、WSL常用命令

# 更新
wsl --update
# 显示已安装的分发
wsl --list 
# 安装分发
wsl --install -d Ubuntu-18.04
# 显示有哪些可用的分发
wsl --list --online
# 显示分发和版本及状态
wsl -l -v
# 变更分发的wsl版本
wsl --set-version Ubuntu-20.04 2
# 设置默认的wsl版本
wsl --set-default-version 2
# 删除分发
wsl --unregister Ubuntu-18.04

四、docker变更镜像存放地址

# 查看docker默认的安装目录,未修改的情况下一般为/var/lib/docker
docker info | grep "Docker Root Dir"

# 关闭所有运行的docker容器
docker ps | awk '{print $1}' |xargs docker stop

# 在新新增的磁盘挂载点上新建目录,并将原有的docker容器和镜像全部拷贝过来,比如这里新增磁盘的挂载点为 /mnt/e/data/
mkdir -p /mnt/e/data/var/lib/docker/
cd /mnt/e/data/var/lib/docker/
cp -r /var/lib/docker/* /mnt/e/data/var/lib/docker/

# 设置docker的配置文件,并指定存储路径,如果文件不存在则直接创建一个
sudo vi /etc/docker/daemon.json
# 添加如下内容
{
	"data-root": "/mnt/e/data/var/lib/docker",
	"registry-mirrors": ["https://ooe7wn09.mirror.aliyuncs.com"]
}
或
{
    "registry-mirrors": [
        "https://<changme>.mirror.aliyuncs.com",
        "https://dockerproxy.com",
        "https://mirror.baidubce.com",
        "https://docker.m.daocloud.io",
        "https://docker.nju.edu.cn",
        "https://docker.mirrors.sjtug.sjtu.edu.cn"
    ]
}

# 然后重启docker服务
sudo systemctl daemon-reload
sudo systemctl restart docker

sudo docker info

#可以看到新加入的镜像
#Registry Mirrors:
#  https://docker-cf.registry.cyou/
#  https://mirrors.ustc.edu.cn/
#  http://mirrors.tuna.tsinghua.edu.cn/

十、参考

[1] 官方文档:https://docs.docker.com/install/linux/docker-ce/centos/
[2] 官方存储库安装 Docker https://www.jb51.net/server/288241gi1.htm
[3] docker: permission denied while trying to connect to the Docker daemon socket at https://blog.csdn.net/sinat_41053216/article/details/132353228
[4] 更改docker镜像的存储路径 https://blog.csdn.net/redrose2100/article/details/130073174

posted @ 2019-12-03 21:00  理舞  阅读(142)  评论(0编辑  收藏  举报