docker的安装及初次使用

docker的安装及初次使用

Ubuntu 安装 docker

# 提示,安装之前确保机器上没有旧的docker,可以使用下面命令移除
sudo apt-get remove docker docker-engine docker.io containerd runc
# 安装一些软件包,以允许 apt 通过 HTTPS 使用存储库:
$ sudo apt-get -y install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
# 这里使用阿里云提供的源,先添加相应的密钥:
$ curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
## 或着使用官方源
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
# 再添加阿里相应源的信息:
$ sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
## 或使用官方源信息,和上面的key对应
$ sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"
# 更新 apt 索引库
$ sudo apt-get update
$ sudo apt install docker-ce docker-ce-cli containerd.io
$ docker -v #查看版本
# 若不想以root用户运行,将当前用户添加进docker组
$ sudo gpasswd -a $USER docker #这里$USER需要改成你的当前用户,下面同理
# 这里需要重新打开一个shell才可以使用,但是使用Ctrl+Alt+T打开的终端一直不行(疑惑),ssh重新登陆可以,使用下面命令重新进入则正常。
$ sudo su $USER
#检验docker环境是否正常使用
$ docker container run hello-world

遇到的问题

问题1

Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)

解决方法一:

对于 Docker 的镜像仓库来说,国内访问速度较慢,我们添加一个阿里云提供的 Docker 镜像加速器。

首先,我们需要编辑 /etc/docker/daemon.json 文件:

$ sudo vi /etc/docker/daemon.json

然后加入如下内容:

{
  "registry-mirrors": ["https://n6syp70m.mirror.aliyuncs.com"]
}

修改之后,需要重启 docker 服务,让修改生效。使用如下命令:

$ sudo service docker restart

解决方法二(前提:该机器有使用代理)

若进行了方法一的操作后,该错误仍然存在,那么检测该机器是否使用代理,则可按下面操作进行

# Missing proxy configuration?

$ mkdir -p /etc/systemd/system/docker.service.d
$ vim /etc/systemd/system/docker.service.d/http-proxy.conf

[Service]
Environment="HTTP_PROXY=http://USER:PASSWD@SERVER:PORT/"
Environment="HTTPS_PROXY=http://USER:PASSWD@SERVER:PORT/"

$ systemctl daemon-reload
$ systemctl restart docker

问题2

如果想要以非root用户使用docker,那么应该将当前用户添加进docker组。

$ sudo usermod -aG docker $USER
# 或
$ sudo gpasswd -a $USER docker

添加完成后,可能遇到下面的问题,报有WARNING,但是能出正常结果

fhl@fhl-Z391:~$ docker container ls -a
WARNING: Error loading config file: /home/fhl/.docker/config.json: stat /home/fhl/.docker/config.json: permission denied
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                      PORTS               NAMES
2255fdfe9cf2        hello-world         "/hello"            10 minutes ago      Exited (0) 10 minutes ago                       unruffled_liskov

解决方法

sudo chown "$USER":"$USER" /home/"$USER"/.docker -R
sudo chmod g+rwx "/home/$USER/.docker" -R
# $USER is the username of the currently logged in user.
posted @ 2020-03-14 16:49  封fenghl  阅读(473)  评论(0编辑  收藏  举报