如果已安装 Docker Desktop,则已经安装了完整的 Docker,包括 Docker Compose。
在新主机上首次安装 Docker Engine 之前,您需要设置 Docker 版本库。之后,您可以从版本库安装和更新 Docker。
允许apt通过 HTTPS 使用存储库更新apt包索引并安装包:
- $ sudo apt-get update
-
- $ sudo apt-get install \
- ca-certificates \
- curl \
- gnupg \
- lsb-release
添加 Docker 的官方 GPG 密钥:
- $ sudo mkdir -p /etc/apt/keyrings
- $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
使用以下命令设置版本库:
- $ echo \
- "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
- $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
更新apt包索引,安装最新版本的 Docker Engine、containerd 和 Docker Compose,或者进入下一步安装特定版本:
- $ sudo apt-get update
- $ sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
运行
apt-get update时收到 GPG 错误?您的默认 umask 可能设置不正确,导致无法检测到 repo 的公钥文件。运行以下命令,然后再次尝试更新您的存储库:
sudo chmod a+r /etc/apt/keyrings/docker.gpg
要安装特定版本的 Docker Engine,请在 repo 中列出可用版本,然后选择并安装:
a. 列出您的版本库中可用的版本:
- $ apt-cache madison docker-ce
-
- docker-ce | 5:20.10.16~3-0~ubuntu-jammy | https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages
- docker-ce | 5:20.10.15~3-0~ubuntu-jammy | https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages
- docker-ce | 5:20.10.14~3-0~ubuntu-jammy | https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages
- docker-ce | 5:20.10.13~3-0~ubuntu-jammy | https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages
b. 使用第二列中的版本字符串安装特定版本,例如 5:20.10.16~3-0~ubuntu-jammy 。
$ sudo apt-get install docker-ce=<VERSION_STRING> docker-ce-cli=<VERSION_STRING> containerd.io docker-compose-plugin
通过运行 hello-world 镜像来验证 Docker Engine是否已正确安装。
- $ sudo service docker start
- $ sudo docker run hello-world
此命令下载测试镜像并在容器中运行它。当容器运行时,它会打印一条消息并退出。
Docker Engine已安装并正在运行。该docker组已创建,但未向其中添加任何用户。需要使用sudo来运行 Docker 命令。
Docker 守护进程绑定到 Unix 套接字而不是 TCP 端口。默认情况下,Unix 套接字归root用户所有,其他用户只能使用sudo。 Docker 守护程序始终以root用户身份运行。
如果您不想在docker命令前加上sudo,请创建一个名为 Unix 组docker并将用户添加到其中。当 Docker 守护进程启动时,它会创建一个可供docker组成员访问的 Unix 套接字。
要创建docker组并添加您的用户:
创建docker组。
$ sudo groupadd docker 将您的用户添加到docker组中。
$ sudo usermod -aG docker $USER 注销并重新登录,以便重新评估您的组成员身份。
如果在虚拟机上进行测试,可能需要重新启动虚拟机才能使更改生效。
在桌面Linux环境(如X Windows)上,完全注销会话,然后重新登录
在 Linux 上,您还可以运行以下命令来激活对组的更改:
$ newgrp docker 验证您可以在没有sudo的情况下运行docker命令。
$ docker run hello-world 此命令下载测试镜像并在容器中运行它。当容器运行时,它会打印一条消息并退出。
如果在将用户添加到Docker组之前使用sudo运行Docker CLI命令,您可能会看到以下错误,这表明您的~/.docker/目录是由于命令没有sudo权限导致的。
- WARNING: Error loading config file: /home/user/.docker/config.json -
- stat /home/user/.docker/config.json: permission denied
要解决此问题,请删除~/.docker/目录(它会自动重新创建,但会丢失任何自定义设置),或使用以下命令更改其所有权和权限:
- $ sudo chown "$USER":"$USER" /home/"$USER"/.docker -R
- $ sudo chmod g+rwx "$HOME/.docker" -R
大多数当前的 Linux 发行版(RHEL、CentOS、Fedora、Debian、Ubuntu 16.04 和更高版本)用于systemd管理系统启动时启动的服务。在 Debian 和 Ubuntu 上,Docker 服务默认配置为在启动时启动。要在启动时为 Docker 和 Containerd自动启动其他发行版,请使用以下命令:
- $ sudo systemctl enable docker.service
- $ sudo systemctl enable containerd.service
要禁用此行为,请改用disable。
- $ sudo systemctl disable docker.service
- $ sudo systemctl disable containerd.service
要安装 Compose:
1)使用存储库安装
注:这些说明假设您已经安装了 Docker Engine 和 Docker CLI,现在想要安装 Compose 插件。
对于 Compose Standalone,请参阅安装 Compose Standalone。
如果已经设置了 Docker 版本库,请跳至第 2 步。
设置版本库。在以下位置查找特定于发行版的说明:
更新包索引,并安装最新版本的 Docker Compose:
Ubuntu, Debian:
- $ sudo apt-get update
- $ sudo apt-get install docker-compose-plugin
基于 RPM 的发行版:
- $ sudo yum update
- $ sudo yum install docker-compose-plugin
通过检查版本来验证 Docker Compose 是否已正确安装。
- $ docker compose version
- Docker Compose version vN.N.N
其中vN.N.N是代表最新版本的占位符文本。
2)更新Compose
要更新 Compose,请运行以下命令:
Ubuntu, Debian:
- $ sudo apt-get update
- $ sudo apt-get install docker-compose-plugin
基于 RPM 的发行版:
- $ sudo yum update
- $ sudo yum install docker-compose-plugin
官方在国内的镜像加速地址:https://registry.docker-cn.com
在不同的操作系统下,配置加速器的方式略有不同,下文将介绍主要操作系统的配置方法:
第一种配置方法:
建议通过daemon config进行配置。使用配置文件/etc/docker/daemon.json(没有时新建该文件),添加以下内容(可添加多个镜像源),重新加载daemon.json文件并重启Docker。
- {
- "registry-mirrors": ["https://registry.docker-cn.com","http://hub-mirror.c.163.com"]
- }
- $sudo systemctl daemon-reload
- $sudo systemctl restart docker
- 或
- $sudo service docker restart
第二种配置方法:
打开Ubuntu的配置文件/etc/default/docker,只需要在这个配置文件中添加加速器的配置项,重启Docker即可。
方式1:打开/etc/default/docker文件(需要sudo权限),在文件的底部加上一行。
DOCKER_OPTS="--registry-mirror=https://registry.docker-cn.com"
- $ sudo service docker restart
- 或
- $sudo systemctl restart docker
方式二:使用命令行
- $echo "DOCKER_OPTS=\"\$DOCKER_OPTS --registry-mirror=https://registry.docker-cn.com\"" | sudo tee -a /etc/default/docker
- $sudo service docker restart
- 或
- $sudo systemctl restart docker
- # 安装包下载地址:
- https://studygolang.com/dl - go语言中文网
- https://go.dev/dl/ - go官网
1、环境变量(Go1.14及之后的版本不需要配置)
GOROOT和GOPATH都是环境变量,其中GOROOT是我们安装go开发包的路径,而从Go 1.8版本开始,Go开发包在安装完成后会为GOPATH设置一个默认目录,Go1.14版本之后,都推荐使用go mod模式来管理依赖环境了,也不再强制我们把代码必须写在GOPATH下面的src目录了,你可以在你电脑的任意位置编写go代码。所以也就不需要我们再自己配置GOPATH了,使用默认的即可。
如果想配,可以使用以下方法配
bashrc 与 profile 都用于保存用户的环境信息,bashrc用于非交互式non-loginshell,而profile用于交互式login shell。
~/.profile 可以设定本用户专有的路径,环境变量,等,它只能登入的时候执行一次
~/.bashrc 也是某用户专有设定文档,可以设定路径,命令别名,每次shell script的执行都会使用它一次
- # 1. 使用wget工具下载安装包
- $ wget https://dl.google.com/go/go1.19.1.linux-amd64.tar.gz
- # 2. 解压tar包到/usr/local
- $ sudo tar zxvf go1.19.1.linux-amd64.tar.gz -C /usr/local
- # 3. 用vi打开~./bashrc,配置环境变量
- $ vim ~/.bashrc
- # 4. 增加下面的环境变量,保存退出
- export GOROOT=/usr/local/go
- export GOPATH=$HOME/go #注: go1.8版本之后,默认生成GOPATH目录,即$HOME/go(/home/用户名/go)
- export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
- # 5. 使环境变量立即生效, 一些命令二选一
- $ source ~/.bashrc //~ 代表主目录
- $ . ~/.bashrc
- # 6. 检测go是否安装好
- $ go version
- #######################################################################################
- 1、下载二进制包:go1.19.1.linux-amd64.tar.gz。
- 2、将下载的二进制包解压至 /usr/local目录。
- tar -C /usr/local -xzf go1.19.1.linux-amd64.tar.gz
- 3、配置环境变量: Linux下有两个文件可以配置环境变量,其中/etc/profile是对所有用户生效的;
- $HOME/.profile是对当前用户生效的,根据自己的情况自行选择一个文件打开,添加如下两行代码,保存退出。
- export GOROOT=/usr/local/go
- export GOPATH=$HOME/go #注: go1.8版本之后,默认生成GOPATH目录,即$HOME/go(/home/用户名/go)
- export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
- 如果在终端执行以上两行命令,只能暂时添加 PATH,关闭终端下次再登录就没有了。
- 4、添加后需要执行以下命令生效:
- source ~/.profile
- 或
- source /etc/profile
go官方安装方法
- 将下载的存档解压缩到 /usr/local,在 /usr/local/go 中创建一个 Go 树。
重要提示:此步骤将在解压之前删除 /usr/local/go 上的先前安装(如果有)。请在继续之前备份所有数据
例如,以root或通过sudo运行以下命令:rm -rf /usr/local/go && tar -C /usr/local -xzf go1.19.3.linux-amd64.tar.gz- 将 /usr/local/go/bin 添加到
PATH环境变量中。可以通过将以下行添加到您的 $HOME/.profile 或 /etc/profile (用于系统范围的安装)中做到这一点:
export PATH=$PATH:/usr/local/go/bin注意:对配置文件所做的更改可能要等到您下次登录计算机时才会生效。要立即应用更改,只需直接运行 shell 命令或使用诸如
source $HOME/.profile.- 通过打开命令提示符并键入以下命令来验证您是否已安装 Go:
$ go version- 确认该命令打印已安装的 Go 版本。
2、GOPROXY
默认GoPROXY配置是:GOPROXY=https://proxy.golang.org,direct,由于国内访问不到https://proxy.golang.org,所以我们需要换一个PROXY,这里推荐使用https://goproxy.io或https://goproxy.cn。
可以执行下面的命令修改GOPROXY:
- //全局生效
- go env -w GO111MODULE=on
- go env -w GOPROXY=https://goproxy.cn,direct
- 或者
- //当前终端生效(优先级高,即当前终端设置完代理之后,在其他终端再次设置新的代理,只要当前终端不关闭,新设置的代理对当前终端不生效)
- export GO111MODULE=on
- export GOPROXY=https://goproxy.cn
首先确定自己当前linux版本(当前版本为x86_64)
- uname -a
- Linux localhost.localdomain 3.10.0-1127.el7.x86_64 #1 SMP Tue Mar 31 16:36:51 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
命令行安装:
注:请尽量采用包管理器方式进行安装,以确保安装的完整性。
- //Linux, using apt or apt-get, for example:
- apt install -y protobuf-compiler
- protoc --version // Ensure compiler version is 3+
安装包安装:
如果一定要自行下载zip包安装预编译的版本或自行编译安装,请参考zip包中readme.txt文件的说明进行操作,确保include下的所有东西(通常是google目录,里面是一系列.proto后缀的文件)都已经正确放置在您的include路径下,如/usr/local/include/目录中,以确保protoc在编译过程中能成功找到。
我们把protoc放在/usr/local/bin可执行程序目录中,这样全局都可以访问到,同时把include目录的内容也复制到/usr/local/include/中
注:解压protoc压缩包后,可以看到 readme.txt文件
大致意思是安装protoc,只需将bin目录下的二进制文件放在某个位置就行,如果打算用其中包含的其他类型,就需要将include目录下的内容也复制到某个地方,例如输入/usr/local/include/
第一种:直接解压到/usr/local/目录下,执行一下命令;
进入protoc页面,选择适合自己操作系统的压缩包文件,解压到目录中
unzip protoc-21.6-linux-x86_64.zip -d /usr/local/
此时,/usr/local/bin/下面就会出现protoc。
第二种:
1)进入protoc 页面,选择适合自己操作系统的压缩包文件
2)解压protoc-x.x.x-x86_64.zip并进入protoc-x.x.x-x86_64文件夹下的bin目录
cd protoc-x.x.x-x86_64/bin
3)将文件夹里的protoc二进制文件移动到path(被添加到环境变量的任意path)下。(如$GOPATH/bin,不建议直接将其和系统下的path放在一起。$GOPATH为你本机的实际文件夹地址)
mv protoc /usr/local/bin
注:如果不打算用其中的其他类型,则protoc的安装到此就结束了。如果打算用其中包含的其他类型,就需要将include目录下的内容也复制到其他地方,则需要继续按照以下步骤进行安装。
4)进入protoc-x.x.x-x86_64文件夹下的include目录
cd protoc-x.x.x-x86_64/include
5)把include目录的内容也复制到/usr/local/include/中
mv google /usr/local/include
6)查看安装结果
- protoc --version
- libprotoc x.x.x
第一种:执行以下命令即可
- //会自动安装到默认的GOPATH的bin(安装go时自动生成的)目录下
- go install google.golang.org/protobuf/cmd/protoc-gen-go@latest
- go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest
第二种:安装包 (建议解压安装到$GOPATH/bin中)
进入protoc-gen-go 以及protoc-gen-go-grpc页面,下载对应的安装包
直接解压到目录中或解压后移动到 /usr/local/bin (或$GOPATH/bin)目录中
tar zxvf protoc-gen-go.v1.28.1.linux.amd64.tar.gz -C /usr/local/bin
- //会自动安装到默认的GOPATH的bin(安装go时自动生成的)目录下
- go install google.golang.org/protobuf/cmd/protoc-gen-go@latest
- go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest
- go install github.com/go-kratos/kratos/cmd/protoc-gen-go-http/v2@latest
- go install github.com/google/gnostic/cmd/protoc-gen-openapi@latest
- // grpc (或者git clone https://github.com/grpc/grpc-go 然后复制到google.golang.org/grpc)
- go get -u google.golang.org/grpc
搜索 Google wire,在GitHub中找到wire的安装命令进行安装
go install github.com/google/wire/cmd/wire@latest
安装好wire之后,在wire.go的同级目录的终端执行wire命令即可生成wire_gen.go。若在使用wire命令的时候出现如下错误,说明有使用cgo调用c的库。

1)下载mingw64,并安装
2)将安装目录下的bin文件夹目录添加到Path环境变量中
3) 测试是否安装成功
打开cmd命令行,输入:
gcc -v
如果出现版本信息,则表示安装成功。
MinGW64说明:
可在mingw64(即下图所在链接)下载对应的安装包,或者在线安装(对应的选项解释如下)

x86_64 是64位,i686 是32位的意思
posix 是跨平台的意思,win32 仅限Windows
尾缀是指生成的可执行程序和dll所运行的位数,sjlj可以运行在32位也可以运行在64位,seh仅限运行在64位,drawf仅限32位
最新版最新版
或Summary 最新版
1. 安装GCC
- sudo apt-get update //如果下载特别慢,可以先进行升级
- //以下选择其中一个进行安装即可
- sudo apt-get build-dep gcc
- sudo apt-get install gcc
- sudo apt-get install build-essential //包含 GCC 和其他各种编译器,如 g++ 和 make
2. 查看是否安装成功
gcc --version
注:查看该软件包的依赖关系(此步骤不影响安装,仅仅是查看依赖关系等):
apt-cache depends build-essential
安装好gcc之后,再次执行wire,有可能会出现以下错误

执行 sudo apt-get install build-essential 可能出现以下错误(遇到类似的问题都可以用方法1去找对应的包进行解决):

1)去https://pkgs.org搜索libc6,找到libc6 (= 2.35-0ubuntu3)的deb包,并下载。

点击进去,选择如下二进制链接进行下载包
2)按照下列命令安装即可:
sudo apt install ./libc6_2.35-0ubuntu3_amd64.deb
需要查看自己系统相关的信息可以参考以下命令
- //查看内核版本
- cat /proc/version
- uname -a
- uname -r
-
- //查看linux版本信息
- lsb_release -a
- cat /etc/issue
- cat /etc/os-release
-
- //查看linux是64位还是32位
- getconf LONG_BIT
- file /bin/ls
-
- //直接查看系统的架构
- dpkg --print-architecture
- arch
- file /lib/systemd/systemd
可以通过 查看自己系统上的版本号,根据自己的系统版本换对应版本的源
lsb_release -a

部分Ubuntu系统LTS版本代号
Ubuntu 16.04 代号为:xenial
Ubuntu 17.04 代号为:zesty
Ubuntu 18.04 代号为:bionic
Ubuntu 19.04 代号为:disco
Ubuntu 20.04 代号为:focal
Ubuntu 22.04 代号为:jammy
1、通过界面换源


在“下载自(或from)”里选择“其他(other)”,选择阿里源, 最后点击“关闭”,等重新载入完成即可
换阿里源,编辑这个文件。
sudo gedit /etc/apt/sources.list
- #阿里源 Ubuntu22.04
- deb http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
- deb-src http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
- deb http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
- deb-src http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
- deb http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
- deb-src http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
- deb http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
- deb-src http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
- deb http://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse
- deb-src http://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse
换源之后,执行命令进行更新
- sudo apt-get update
- sudo apt-get upgrade
再执行安装命令,就会安装成功,会发现执行wire时出现的问题也就解决了
sudo apt-get install build-essential