Docker安裝過很多次了,不過每次安裝配置一堆東西,略微麻煩,記錄一下。
安裝docker
直接根據(jù)官網(wǎng)操作即可:Install Docker Engine on Ubuntu
安裝后基本配置
一般需要配置兩個東西:
- 國內(nèi)docker鏡像源
- docker數(shù)據(jù)目錄
新建并編輯/etc/docker/daemon.json文件
$ sudo vim /etc/docker/daemon.json
{
"registry-mirrors": [
"http://hub-mirror.c.163.com"
],
"data-root": "/opt/data/docker"
}
其中,
registry-mirrors中的內(nèi)容修改為國內(nèi)的鏡像地址,這里使用的是網(wǎng)易的鏡像,我一般使用阿里云的個人免費進行,比較快,不過需要去創(chuàng)建鏡像倉庫才能用, https://cr.console.aliyun.com/cn-hongkong/instancesdata-root便是docker的數(shù)據(jù)目錄,此處是/opt/data/docker, 如果不配置默認為/var/lib/docker, 經(jīng)歷過很多次根目錄被docker數(shù)據(jù)占滿的痛,所以每次都配置它...
免sudo執(zhí)行docker命令
docker命令默認需要使用sudo執(zhí)行,如果直接執(zhí)行會報錯:
[mi]? ~ docker ps
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/containers/json": dial unix /var/run/docker.sock: connect: permission denied
[mi]? ~
從報錯中可以看出,沒有權(quán)限連接unix:///var/run/docker.sock文件,該文件就是/var/run/docker.sock,在終端中查看該文件:
[mi]? ~ sudo ls -l /var/run/docker.sock
srw-rw---- 1 root docker 0 7月 7 03:21 /var/run/docker.sock
從輸出可知,該文件屬主用戶為root, 屬組為docker, 而權(quán)限srw-rw----表示屬主root有讀寫權(quán)限,而同組(docker)的用戶也有讀寫權(quán)限。
所以可以知道,如果某個用戶想免sudo執(zhí)行docker命令,只需要加入到docker組即可。
- 創(chuàng)建docker組(已存在會報錯,可忽略):
$ sudo groupadd docker
groupadd:“docker”組已存在
- 將當(dāng)前用戶加入到
docker組
$ sudo gpasswd -a ${USER} docker
正在將用戶“staneyffer”加入到“docker”組中
- 重啟docker
$ sudo systemctl restart docker
- 退出并重新登錄當(dāng)前用戶即可