官方脚本安装docker
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
docker安装步骤
如使用官方脚本安装, 则可跳过该步骤
- 安装通过HTTPS添加新存储库所需的软件包
sudo apt update
sudo apt install curl apt-transport-https ca-certificates gnupg2 software-properties-common
- 使用以下curl命令导入存储库的GPG密钥
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
- 查看系统版本信息
lsb_release -cs
- 将稳定的Docker APT存储库添加到系统的软件存储库列表中
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable"
这里我本地是buster,故我这边的指令等价为:
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian buster stable"
- 安装最新版本的Docker CE
sudo apt install docker-ce
- 安装完成后,Docker服务将自动启动。
sudo systemctl status docker
- 查看docker版本
docker-compose安装
访问docker官网, 获取下载连接
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
设置权限
sudo chmod +x /usr/local/bin/docker-compose
查看docker-compose版本
docker-compose --version
其他
免sudo执行docker指令
默认情况下,只有root 用户和具有sudo权限的用户才能执行Docker命令。
如果要在不预先添加的情况下执行Docker命令,则sudo需要将用户添加到在安装Docker CE软件包期间创建的docker组。
sudo usermod -aG docker $USER
$USER是一个保存用户名的环境变量。
注销并重新登录,再次执行docker ps
,可免sudo执行。
启动docker-compose服务报错
报错内容如下:
ERROR: for [containerName] Cannot start service mysql3307: driver failed programming external connectivity on endpoint [containerName] (13195d71b124ac60cb955ab65d708c45e81b68b3c72639b9ef1b9a871523030b): Bind for 0.0.0.0:3307 failed: port is already allocated
ERROR: for [serviceName] Cannot start service [serviceName]: driver failed programming external connectivity on endpoint [containerName] (13195d71b124ac60cb955ab65d708c45e81b68b3c72639b9ef1b9a871523030b): Bind for 0.0.0.0:3307 failed: port is already allocated
ERROR: Encountered errors while bringing up the project.
解决:
重启docker服务后再启动容器
systemctl restart docker