Docker安装&简单配置|Docker Installation & Simple Configuration

主要来源于官网教程1 , 记录一下怕以后忘记了.

以Debian为例, 采用包管理器的方式安装.

需要的材料:

  1. 一台Linux主机, 如装着debian的
  2. docker的软件源.

官方源https://download.docker.com/linux/debian 清华源https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/debian

Step 1. 删除老旧版本

新机器直接忽略即可

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

Step 2. 安装辅助工具及软件源

辅助工具主要是为了支持https

sudo apt update
sudo apt install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg2 \
    software-properties-common

添加gpg key

curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -

添加源

for bash + amd64

# deb [arch=amd64/armhf] [mirror site url] [codename] [component...]
sudo add-apt-repository \
   "deb [arch=amd64] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/debian \
   $(lsb_release -cs) stable"

for fish + armhf(raspberry pi)

# deb [arch=amd64/armhf] [mirror site url] [codename] [component...]
sudo add-apt-repository \
  deb [arch=armhf] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/debian \
    (lsb_release -cs) stable

Debian 各个版本(Releases)和代号(Code name)对照表2

版本(Releases) 代号(Code name)
11 Bullseye
10 Buster
9 Stretch
8 Jessie
7 Wheezy
6 Squeeze

Docker 各种版本(update channels):

  • Stable gives you latest releases for general availability.
  • Test gives pre-releases that are ready for testing before general availability.
  • Nightly gives you latest builds of work in progress for the next major release.

Step 3. 安装Docker本身

更新源

sudo apt update

安装 !

sudo apt install docker-ce

Step 4. 验证版本

docker version

得到输出:

root@aio:~# docker version
Client:[^Debian Release]: https://wiki.debian.org/DebianReleases
 Version:           18.09.4
 API version:       1.39
 Go version:        go1.10.8
 Git commit:        d14af54
 Built:             Wed Mar 27 18:36:06 2019
 OS/Arch:           linux/amd64
 Experimental:      false

Server: Docker Engine - Community
 Engine:
  Version:          18.09.4
  API version:      1.39 (minimum version 1.12)
  Go version:       go1.10.8
  Git commit:       d14af54
  Built:            Wed Mar 27 18:01:48 2019
  OS/Arch:          linux/amd64
  Experimental:     false

至此已经安装完成了.

以下是服务器的配置.

Step 5. 配置远程登录

本机的docker server 默认只监听本地文件套接字

远程登录可以采用如下两种方式

修改systemd脚本启动参数

对于systemd的机器可以简单的修改systemd脚本即可.

打开docker的service脚本

vim /etc/systemd/system/multi-user.target.wants/docker.service

找到这行

ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

在后面添加-H tcp://ip:port即可开启tcp连接, 如

ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock -H tcp://127.0.0.1:2375

然后重载并重启服务

sudo systemctl daemon-reload
sudo systemctl restart docker

最后检验连接

docker -H 127.0.0.1 version

修改daemon.json

修改/etc/docker/daemon.json

vim /etc/docker/daemon.json

在hosts 的值中添加主机即可

{
"hosts": ["unix:///var/run/docker.sock", "tcp://127.0.0.1:2375"]
}

然后重启docker

sudo systemctl restart docker

如果遇到类似错误3

unable to configure the Docker daemon with file /etc/docker/daemon.json:
the following directives are specified both as a flag and in the configuration file: hosts: (from flag: [unix:///var/run/docker.sock], from file: [tcp://127.0.0.1:2376])

那是因为docker 的命令行和json配置文件有冲突的参数, 请确保启动docker时没有加冲突的参数.

如果是systemd的请把/etc/systemd/system/multi-user.target.wants/docker.service里的

ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

修改为

ExecStart=/usr/bin/dockerd

然后重载&重启服务(参见上一条).

最后验证:

docker -H 127.0.0.1 version

另外, docker连接的主机可以通过DOCKER_HOST环境变量指定4

DOCKER_HOST=127.0.0.1 docker version

所以如果有时候连不上了可以试试unset DOCKER_HOST

补充一点:

Docker Compose安装

Docker Compose是用来定义并运行多容器应用的工具. Docker Compose具体通过一个yaml格式的配置文件docker-compose.yml定义多容器应用. 就像Dockerfile定义单个容器一样样.

Docker Compose可以通过pip安装

pip install docker-compose
docker-compose

Last modified on 2019-04-04