Docker系列 配置Docker全局环境
本文最后更新于 12 天前,如有失效请评论区留言。

前言

一般来说,Docker是开箱即用的。不过,如果你是在国内用docker,并且你想用非root用户使用docker,就需要进行一些设置了。

这里把安装的代码也搞一份过来,以免大家不断地翻页。

安装Docker

首先看看自己的VPS有没有安装好Docker了:

which docker # /usr/bin/docker

国内VPS的Ubuntu用户可以根据菜鸟教程来安装。

我们可以先创建一个文件夹(可能没什么用,哈哈)

mkdir -p ~/docker/@install/ && cd ~/docker/@install/

如果你已经安装了docker,就不要运行下面的命令!如果你没有安装docker,可以运行:

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

国外VPS的用户也可以参考官方安装方法,就是用不同的镜像嘛。

等安装完后,看一下docker:

which docker # /usr/bin/docker

安装docker-compose

我们下面安装一下docker-compose,这个是一个布署docker服务的神器。你可以在这里查看docker-compose的最新发行版。选一个最新的版本下载即可。比如我写此博文的时候,是v2.4.1。运行以下命令

sudo curl -L "https://github.com/docker/compose/releases/download/v2.4.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

国内的VPS可以用:

sudo curl -L https://get.daocloud.io/docker/compose/releases/download/v2.4.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

然后进行一些设置:

sudo chmod +x /usr/local/bin/docker-compose
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

最后,看一下docker-compose的版本:

docker-compose --version # docker-compose version 1.28.6, build 5db8d86f

Docker全局设置

换镜像源

我参考了这个博文:docker 修改使用国内镜像源

如果你需要修改镜像源的话,可以按下面的方法修改。

修改/etc/docker/daemon.json文件,如果没有先建一个即可:

sudo vim /etc/docker/daemon.json

比如,改成:

{
  "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"],
  "log-driver":"json-file",
  "log-opts": {"max-size":"100m", "max-file":"3"}
}

registry-mirrors设置了一个国内的镜像;log-driverlog-opts主要是管理Docker日志保存的方式和大小限制。见下面的日志管理

然后,reload下docker:

sudo systemctl daemon-reload
sudo systemctl restart docker 

检查一下配置是否生效:

sudo docker info|less

检索一下应用:

sudo docker search nginx

可以正常、快速地检索说明生效了。

有不少镜像源可以选:

  • 阿里云:https://registry.cn-hangzhou.aliyuncs.com
  • docker中国:https://registry.docker-cn.com
  • 网易:http://hub-mirror.c.163.com
  • 腾讯云:https://mirror.ccs.tencentyun.com

自己也可以搜索一下哪些可以用。

日志管理

参考sleele的《限制Docker容器日志大小+清理日志脚本》。

首先,新建一个clean_docker_log.sh文件:

vim ~/clean_docker_log.sh

填入以下内容:

#!/bin/sh 

echo "======== start clean docker containers logs ========" 

logs=$(find /var/lib/docker/containers/ -name *-json.log)  

for log in $logs  
        do 
                echo "clean logs : $log" 
                cat /dev/null > $log  
        done 

echo "======== end clean docker containers logs ========" 

其实这个脚本的逻辑特别简单,就是清理/var/lib/docker/containers/-json.log格式的文件。我们给予其可执行权限:

sudo chmod +x ~/clean_docker_log.sh

然后平时运行:

~/clean_docker_log.sh

就可以即时清理docker容器的日志。当然,你也可以创建软链接到环境路径,或者是cron定时任务。自己试试看,我就不示范了!

添加非root用户

原理很简单,就是将某个用户添加到docker用户组里即可

比如,我有一个test_user用户。我可以这样:

sudo groupadd docker # 一般已经是内置的
sudo usermod -aG docker test_user

重启一下docker:

sudo systemctl restart docker

重新登陆当前用户:

su test_user

查看一下id:

id

输出类似于,用户组已经有docker:

... groups=... 998(docker)

就成功啦!

常用Docker命令

列出所有安装的镜像:

docker image list

删除镜像

docker rmi <IMAGE ID>

观察某个应用的日志:

docker logs <app> --tail=20 -f

小结

虽然我们添加了一个非root用户在docker的用户组,但是docker实际运行的时候,还是可能会用一些root权限。只不过这个root权限和宿主的root相比,权限是经过阉割的。所以应该还是安全的。

之后就开始玩Docker吧!

扩展阅读

版权声明:除特殊说明,博客文章均为Bensz原创,依据CC BY-SA 4.0许可证进行授权,转载请附上出处链接及本声明。 如有需要,请至学习地图系统学习本博客的教程。加Telegram群可获得更多帮助喔! | 博客订阅:RSS | 广告招租:留言板 | 博客VPS |
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇