转自:https://juejin.cn/post/6944730766052065288
整理:地鼠文档 www.topgoer.cn
通过下面的命令就可以安装 SDK 了:
该部分会介绍如何使用 Golang + Docker API 进行管理本地的 Docker。
第一个例子将展示如何运行容器,相当于 docker run docker.io/library/alpine echo "hello world" :
还可以在后台运行容器,相当于docker run -d bfirsh/reticulate-splines :
列出正在运行的容器,就像使用docker ps 一样:
如果是docker ps -a ,我们可以通过修改 types.ContainerListOptions 中的 All 属性达到这个目的:
通过上面的例子,我们可以获取容器的列表,所以在这个案例中,我们可以去停止所有正在运行的容器。
通过指定容器的 ID,我们可以获取对应 ID 的容器的日志:
获取本地所有的镜像,相当于docker image ls 或 docker images :
拉取指定镜像,相当于docker pull alpine :
除了公开的镜像,我们平时还会用到一些私有镜像,可以是DockerHub 上私有镜像,也可以是自托管的镜像仓库,比如 harbor 。这个时候,我们需要提供对应的凭证才可以拉取镜像。
值得注意的是:在使用Docker API 的 Go SDK 时,凭证是以明文的方式进行传输的,所以如果是自建的镜像仓库,请务必使用 HTTPS !
我们可以将一个已有的容器通过commit 保存成一个镜像:
当然,除了可以管理本地的 Docker , 我们同样也可以通过使用 Golang + Docker API 管理远程的 Docker 。
默认Docker 是通过非网络的 Unix 套接字运行的,只能够进行本地通信( /var/run/docker.sock ),是不能够直接远程连接 Docker 的。
我们需要编辑配置文件 /etc/docker/daemon.json ,并修改以下内容(把 192.168.59.3 改成你自己的 IP 地址),然后重启 Docker :
创建client 的时候需要指定远程 Docker 的地址,这样就可以像管理本地 Docker 一样管理远程的 Docker 了:
现在已经有很多可以管理 Docker 的产品,它们便是这样进行实现的,比如: portainer 。
首选,如果之前使用过redis容器,我们需要先remove掉之前的容器
然后创建redis容器,并运行
进入redis容器中
接着我们通过 redis-cli 连接测试使用 redis 服务
setex指令 可以设置数据存在的时间, setex key second value
MSET 一次设置多个key-value
MGET一次获取多个key-value
HGET
HGETALL
Hlen和hexist
Lpush 和 Lrange
Lpop和Rpop 从链表取出并移走数据
删除链表所有数据 DEL
字符串无序 不能重复
从连接池中Get出一个conn连接
docker是一个用Go语言实现的开源项目,可以让我们方便的创建和使用容器,docker将程序以及程序所有的依赖都打包到docker container,这样你的程序可以在任何环境都会有一致的表现,这里程序运行的依赖也就是容器就好比集装箱,容器所处的操作系统环境就好比货船或港口,程序的表现只和集装箱有关系(容器),和集装箱放在哪个货船或者哪个港口(操作系统)没有关系。简而言之Docker 是一个开源的应用容器引擎,它可以将开发的应用生成镜像,然后发布到任何系统上运行。
因此我们可以看到docker可以屏蔽环境差异,也就是说,只要你的程序打包到了docker中,那么无论运行在什么环境下程序的行为都是一致的,程序员再也无法施展表演才华了,不会再有“在我的环境上可以运行”,真正实现“build once, run everywhere”。
二、安装步骤
1.卸载旧版本的docker
如果Ubuntu系统中有旧版本的Docker,需要卸载后重新安装,较早版本的docker被称为docker, docker.io,或docker-engine。代码如下:
sudo apt-get remove docker \
docker-engine \
docker.io
1
2
3
1
2
3
2.安装docker方法
您可以以不同的方式安装Docker引擎,具体取决于您的需要:
大多数用户建立码头仓库并从它们安装,以方便安装和升级任务。这是推荐的方法。
一些用户下载DEB软件包手动安装并完全手动管理升级。这是有用的情况下,如安装码头在空隙系统,没有访问互联网。
在测试和开发环境中,一些用户选择使用自动化。方便脚本安装码头。
(1)使用存储库安装
在首次在新主机上安装Docker引擎之前,需要设置Docker存储库。之后,您可以从存储库中安装和更新Docker。
设置存储库
1.更新apt包索引并安装包以允许apt若要在HTTPS上使用存储库,代码如下:
$ sudo apt-get update
$ sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common
1
2
3
4
5
6
7
1
2
3
4
5
6
7
2.添加Docker的官方GPG密钥:
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
1
1
验证您现在拥有带有指纹的密钥。9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88,通过搜索指纹的最后8个字符。
$ sudo apt-key fingerprint 0EBFCD88
pub rsa4096 2017-02-22 [SCEA]
9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88
uid [ unknown] Docker Release (CE deb) [email protected]>
sub rsa4096 2017-02-22 [S]
1
2
3
4
5
1
2
3
4
5
3.使用以下命令设置稳定储存库。若要添加夜间或试验存储库,添加单词nightly或test(或两者兼而有之)stable在下面的命令中。
$ sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
1
2
3
4
1
2
3
4
安装Docker Engine
1.更新apt包索引,并安装最新版本或转到下一步安装特定版本:
$ sudo apt-get update
$ sudo apt-get install docker-ce docker-ce-cli containerd.io
1
2
1
2
有多个docker仓库?
如果启用了多个Docker存储库,则在不指定版本的情况下安装或更新apt-get install或apt-get update命令总是安装尽可能高的版本,这可能不适合您的稳定性需求。
2.若要安装特定版本在Docker Engine中,列出回购中可用的版本,然后选择并安装:
A.列出回购中可用的版本:
$ apt-cache madison docker-ce
docker-ce | 5:18.09.1~3-0~ubuntu-xenial | https://download.docker.com/linux/ubuntu xenial/stable amd64 Packages
docker-ce | 5:18.09.0~3-0~ubuntu-xenial | https://download.docker.com/linux/ubuntu xenial/stable amd64 Packages
docker-ce | 18.06.1~ce~3-0~ubuntu | https://download.docker.com/linux/ubuntu xenial/stable amd64 Packages
docker-ce | 18.06.0~ce~3-0~ubuntu | https://download.docker.com/linux/ubuntu xenial/stable amd64 Packages
...
1
2
3
4
5
6
7
1
2
3
4
5
6
7
B.使用第二列中的版本字符串安装特定版本,例如,5:18.09.13-0ubuntu-xenial.
$ sudo apt-get install docker-ce=<VERSION_STRING>docker-ce-cli=<VERSION_STRING>containerd.io
1
1
3.通过运行hello-world或者查看安装docker的版本确定是否安装成功。
$ sudo docker run hello-world
$ docker -v
1
2
1
2
这是安装成功显示的
此命令下载测试映像并在容器中运行。当容器运行时,它会打印一条信息性消息并退出。
Docker Engine已安装并运行。这个docker组被创建,但没有向其添加任何用户。你需要用sudo运行Docker命令。继续Linux后安装允许非特权用户运行Docker命令和其他可选配置步骤。
要升级Docker Engine,首先运行sudo apt-get update,然后按照安装说明,选择要安装的新版本。
(2)从包中安装
如果无法使用Docker的存储库安装Docker引擎,则可以下载.deb为您的发行文件和手动安装它。每次升级Docker时,都需要下载一个新文件。
1.去https://download.docker.com/linux/ubuntu/dists/,选择您的Ubuntu版本,然后浏览到pool/stable/,选择amd64, armhf,或arm64,并下载.deb要安装的Docker引擎版本的文件。
注*安装nightly或test(预发行版)包,更改单词stable在上面的URL中nightly或test.
2安装Docker引擎,将下面的路径更改为下载Docker包的路径。
$ sudo dpkg -i /path/to/package.deb
1
1
Docker守护进程自动启动。
3.通过运行hello-world确认是否安装成功。
$ sudo docker run hello-world
1
1
此命令下载测试映像并在容器中运行。当容器运行时,它会打印一条信息性消息并退出。
Docker Engine已安装并运行。这个docker组被创建,但没有向其添加任何用户。你需要用sudo运行Docker命令。继续Linux的安装后步骤允许非特权用户运行Docker命令和其他可选配置步骤。
升级Docker Engine
若要升级Docker引擎,请下载较新的包文件并重复安装程序指向新文件。
3.安装Docker Compose
(1)Docker Compose是什么
Composed是一个用于定义和运行多容器码头应用程序的工具。通过撰写,您可以使用YAML文件配置应用程序的服务。然后,使用一个命令创建并启动配置中的所有服务。
compose可以在所有环境中撰写工作:生产、分期、开发、测试以及CI工作流。
使用compose基本上是一个三步的过程:
使用Dockerfile所以它可以在任何地方复制。
中定义构成应用程序的服务。docker-compose.yml所以它们可以在一个孤立的环境中一起运行。
跑docker-compose up然后编写、启动和运行整个应用程序。
(2)安装Docker Compose
先决条件:Docker组合依赖于Docker引擎进行任何有意义的工作,因此,请确保安装了本地或远程的Docker引擎,这取决于您的设置。
1.运行此命令可以下载DockerComposed当前的稳定版本:
sudo curl -L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
1
1
2.将可执行权限应用于二进制文件:
sudo chmod +x /usr/local/bin/docker-compose
1
1
注*如果命令docker-compose安装后失败,请检查您的路径。您还可以创建一个指向/usr/bin或者路径中的任何其他目录。
如
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
3.测试安装
输入下面代码,如果安装成功则会显示安装的版本号。
$ docker-compose --version
1
1