Skip to content

Docker安装

Linux系统安装Docker

设置Docker的仓库

shell
# 添加官方GPG密钥
sudo apt update # 更新软件源
sudo apt install ca-certificates curl # 安装证书和curl工具
sudo install -m 0755 -d /etc/apt/keyrings # 创建密钥目录
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc # 下载密钥
sudo chmod a+r /etc/apt/keyrings/docker.asc # 设置密钥权限

# 将docker的仓库添加到apt软件源中
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update

安装 docker-ce

shell
sudo apt install docker-ce

设置国内镜像源

shell
# 创建或修改/etc/docker/daemon.json文件
sudo vim /etc/docker/daemon.json

# 添加如下内容
{
  "registry-mirrors": [
    "https://docker.mirrors.ustc.edu.cn",
    "https://hub-mirror.c.163.com",
    "https://mirror.baidubce.com",
    "https://ccr.ccs.tencentyun.com"
  ]
}

重启docker

shell
# 重启docker,注意由于走的是守护程序daemon,所以daemon进程也需要重启。
sudo systemctl daemon-reload  #重启daemon进程
sudo systemctl restart docker  #重启docker

验证国内镜像源是否生效

shell
sudo docker info

如果Registry Mirrors中有你设置的镜像源地址,则说明设置成功。

设置开机自启

shell
sudo systemctl enable docker

检查docker是否安装成功

shell
sudo docker ps

查看docker版本信息

shell
sudo docker -v

Docker常用命令

服务相关命令


启动服务

shell
sudo systemctl start docker

停止服务

shell
sudo systemctl stop docker

重启服务

shell
sudo systemctl restart docker

查看服务状态

shell
sudo systemctl status docker

设置服务开机自启

shell
sudo systemctl enable docker

镜像相关命令


shell
sudo docker search [image-name]

拉取镜像

shell
sudo docker pull [image-name]

TIP

sudo docker pull命令默认拉取最新版本的镜像,如果需要拉取指定版本的镜像,可以使用sudo docker pull [image-name]:[tag]命令。
如果不知道版本号有哪些,可以去Docker Hub查看。

查看本地镜像

shell
sudo docker images

删除本地镜像

shell
sudo docker rmi [image-id]
#or
sudo docker rmi [image-name]:[tag]

TIP

为了准确删除你的目标镜像, 建议删除有多个版本存在的镜像时, 使用sudo docker rmi [image-name]:[tag]命令。 如果二者镜像ID不同也可以使用镜像ID进行删除, 防止误删。
删除镜像时,如果该镜像正在被容器使用,需要先停止容器,然后再删除镜像。
如果要删除多个镜像,可以使用docker rmi [image-id1] [image-id2] ...命令。

容器相关命令


创建容器

shell
# 以onlyoffice/documentserver为例
sudo docker run -i -t -d -p 8000:80 \
  --restart=always \
  -v /docker/onlyOffice/DocumentServer/logs:/var/log/onlyoffice \
  -v /docker/onlyOffice/DocumentServer/data:/var/www/onlyoffice/Data \
  -v /docker/onlyOffice/DocumentServer/lib:/var/lib/onlyoffice \
  -v /docker/onlyOffice/DocumentServer/db:/var/lib/postgresql \
  -e JWT_ENABLED=false \
  onlyoffice/documentserver

以下是一些常用的参数:

  • docker run:创建并启动一个新容器
  • -i:以交互模式运行容器,通常与-t同时使用
  • -t:为容器分配一个伪终端,通常与-i同时使用
  • -d:后台运行容器,并返回容器ID
  • -p:指定端口映射,格式为主机端口:容器端口
  • --restart=always:容器退出时,总是重启容器
  • -v:挂载宿主机目录到容器目录,格式为宿主机目录:容器目录
  • -e:设置环境变量

查看容器列表

shell
# 查看正在运行的容器列表
sudo docker ps

# 查看最近一次创建的容器
sudo docker ps -l

# 查看正在运行的容器ID列表
sudo docker ps -q

# 查看全部容器(包括已经停止的容器)
sudo docker ps -a

# 查看全部容器ID列表
sudo docker ps -aq

停止运行的容器

shell
# 使用容器名停止
sudo docker stop [container-name]

# 使用容器ID停止
sudo docker stop [container-id]

# 使用容器ID停止多个正在运行的容器
sudo docker stop [container-id1] [container-id2] ...

启动已停止的容器

shell
# 使用容器名启动
sudo docker start [container-name]

# 使用容器ID启动
sudo docker start [container-id]

# 使用容器ID启动多个已停止的容器
sudo docker start [container-id1] [container-id2] ...

删除容器

shell
# 使用容器名删除
sudo docker rm [container-name]

# 使用容器ID删除
sudo docker rm [container-id]

# 使用容器ID删除多个容器
sudo docker rm [container-id1] [container-id2] ...

TIP

删除容器时,如果容器正在运行,需要先停止容器,然后再删除容器。

重启容器

shell
# 使用容器名重启
sudo docker restart [container-name]

# 使用容器ID重启
sudo docker restart [container-id]

# 使用容器ID重启多个容器
sudo docker restart [container-id1] [container-id2] ...

进入容器

shell
# 使用容器名进入
sudo docker exec -it [container-name] /bin/bash

# 使用容器ID进入
sudo docker exec -it [container-id] /bin/bash