1. 卸载旧版本

Docker 的旧版本被称为 docker,docker.io 或 docker-engine 。如果已安装,请卸载它们:

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

当前称为 Docker Engine-Community 软件包 docker-ce 。

2. 添加GPG密钥并添加更新源

将清华镜像的GPG密钥下载下来并且将该镜像加入到系统配置的镜像中去。

1
curl -fsSL https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/debian/gpg | sudo apt-key add -

把清华的镜像添加进系统配置。

1
echo 'deb https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/debian/ buster stable' | sudo tee /etc/apt/sources.list.d/docker.list

3. 系统更新以及安装docker

系统更新,必须的

1
apt-get update

安装dokcer

1
apt-get install docker-ce

4. 启动docker服务器

1
service docker start

5. 安装compose

1
apt-get install docker-compose

6. Docker安装测试(hello-world)

1
docker run hello-world

成功运行第一个docker项目。

7. 卸载 docker

删除安装包:

1
sudo apt-get purge docker-ce

删除镜像、容器、配置文件等内容:

1
sudo rm -rf /var/lib/docker

8. docker容器的操作

运行时的容器无法删除,只能停止后删除,或者加上-f参数强制删除

启动容器

1
2
//docker run 容器的名字
docker run -d resis

启动守护式容器

1
2
3
4
docker run -i -t 容器名 /bin/bash
//-i交互模式,-t指定一个伪终端或者终端
例如:
docker run -i -t centos /bin/bash

退出守护容器

1
exit

查看运行中的容器

1
2
3
格式 docker ps [-a] [-l]
// -a 表示列举所有容器
// -l 表示列举最近创建的容器

查看所有的容器

1
docker ps -a

查看所有容器的id

1
docker ps -aq

停止容器

1
docker stop 容器id或容器名称

重启容器

1
docker start 容器id或容器名称

删除容器

1
docker rm 容器id或容器名称

停用全部运行中的容器

1
docker stop $(docker ps -q)

删除全部容器

1
docker rm $(docker ps -aq)

停用并删除容器

1
docker stop $(docker ps -q) & docker rm -f $(docker ps -aq)

9. 镜像的操作

下载镜像

1
docker pull redis:latest

获取镜像有两种方式:

  1. 从官方镜像仓库下载

  2. 通过Dockerfile文件构建

    通过docker-compose.yml文件构建并运行镜像

    1
    docker-compose up

列出已下载的镜像

1
2
3
docker images
或者
docker images redis

运行镜像

1
docker run -d redis

查看redis进程

1
ps -ef | grep redis

查看容器镜像状态

1
docker ps

进入容器

1
2
docker exec -it 镜像ID bash
docker exec -it 镜像N bash

删除镜像

1
docker rmi redis:latest

10. 遇到的问题

解决报错Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: TLS handshaketimeout

通过dig @114.114.114.114 registry-1.docker.io找到可用IP地址

修改/etc/hosts强制docker.io相关的域名解析到其它可用IP