Docker,安装

初识 Docker

准备

查看 Ubuntu 是32位的还是64位的

1
getconf LONG_BIT

系统信息

1
lsb_release -a

查看操作系统架构

1
uname -a

安装

添加 Docker 官方 GPG KEY

1
2
3
4
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

# 国内阿里云版
sudo curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | apt-key add -

验证 KEY 的指纹

1
2
3
4
5
6
7
sudo apt-key fingerprint 0EBFCD88

# 输出为:
pub rsa4096 2017-02-22 [SCEA]
9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88
uid [ 未知 ] Docker Release (CE deb) <[email protected]>
sub rsa4096 2017-02-22 [S]

添加稳定版 repository

1
2
3
4
5
6
7
8
9
10
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"

# 国内阿里云版
sudo add-apt-repository \
"deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu \
$(lsb_release -cs) \
stable"

更新

1
sudo apt-get update

安装最新版本的 Docker ce 和 Containerd

1
sudo apt-get install docker-ce docker-ce-cli containerd.io

安装指定版本的 Docker ce 和 Containerd,先查看可获取的版本

1
apt-cache madison docker-ce

安装指定版本

1
sudo apt-get install docker-ce=<VERSION_STRING> docker-ce-cli=<VERSION_STRING> containerd.io

验证安装版本

1
docker --version

用户授权

将非root用户加入docker组,以允许免sudo执行docker

1
sudo gpasswd -a 用户名 docker

重启服务并刷新 docker组成员

1
2
3
sudo service docker restart

newgrp - docker

设置开机启动 Docker-ce

安装成功后默认已设置并启动,可忽略

1
2
sudo systemctl enable docker
sudo systemctl start docker

升级版本

安装上述流程,安装新版本即可

卸载

方案1

1
sudo apt-get remove docker docker-engine docker.io containerd runc

/var/lib/docker 的内容,包括镜像、容器、卷和网络,可以保留也可以删除。

但仍能看到docker版本

1
docker --version

方案2

1
2
3
sudo apt-get purge docker
sudo apt-get purge docker-ce
sudo apt-get remove -y docker-*

慎重,不要误删!!!包括镜像、容器、卷和网络

1
sudo rm -rf /var/lib/docker

会删除软件包而保留软件的配置文件

1
apt-get remove 

会同时清除软件包和软件的配置文件

1
apt-get purge

Docker 镜像加速

修改配置文件 /etc/docker/daemon.json 即可

1
sudo vim /etc/docker/daemon.json

加载重启docker

1
2
sudo systemctl daemon-reload
sudo systemctl restart docker

查看是否成功

1
docker info

查看镜像列表

1
docker images

删除镜像

1
2
3
4
docker rmi xxxx

# 强制删除
docker rmi -f xxxxx

容器列表

1
docker ps -a 

进入容器 bash

1
2
3
4
5
6
7


# attach 进入 容器
docker attach xxxx

# exec 进入一个已经在运行的容器
docker exec -i -t xxxx /bin/bash

删除容器

1
2
3
4
5
6
docker container rm -f xxx

# -f, --force 是够强制终止并删除一个运行中的容器;
# --help 帮助信息;
# -l, --link 删除容器的链接,但是保留容器;
# -v, --volumes 删除容器挂载的数据卷。