共计 2105 个字符,预计需要花费 6 分钟才能阅读完成。
Linux 版本:CentOS 7
注意: 非 root 用户必须要有 sudo 权限
一、安装前的准备
1. 查看当前主机是否有 docker 组
若没有输出结果则新建
再次查看, 发现已经有了 docker 组
2. 新增拥有 sudo 权限的用户 (若知道 root 和 其他拥有 sudo 权限的 系统用户密码, 跳到 3; 若都没有, 必做)
修改该用户的密码
为新增的用户添加 sudo 权限
sudo vi /etc/sudoers
在 92 行下一行添加
test ALL=(ALL) ALL
3. 把当前用户加入到 docker 组(此时用户并没有加入进 docker 组)
切换至 sudo 权限用户,然后再切换回当前用户(此时可以看到用户已经加入 docker 组)
3. 删除新增的用户和它的 sudo 权限(第 2 步没做请忽略此步)
sudo vi /etc/sudoers
在 92 行下一行添加
test ALL=(ALL) ALL
两次退出,不然删除用户时会报错
二、安装 docker
1. 下载 docker 源码包并上传至虚拟机
https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/static/stable/x86_64/docker-18.09.0.tgz
2. 解压源码包至指定目录下
3. 将解压出来的 docker 目录下的指令复制到 /usr/bin/ 目录下
sudo cp docker/* /usr/bin/
4./usr/bin/ 目录下 docker 有关指令的所属用户和所属组(必做, 不然非 root 用户使用 docker 指令报错: 权限不够)
sudo chown root:docker /usr/bin/docker*
sudo chown root:docker /usr/bin/containerd*
sudo chown root:docker /usr/bin/runc
sudo chown root:docker /usr/bin/ctr
5. 查看一下是否改变所属用户和所属组(得到和解压出来的 docker 目录下的一样的 8 个指令)
6. 将 docker 注册为 service 服务
新建该文件
sudo vi /etc/systemd/system/docker.service
加入以下内容:
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target
[Service]
Type=notify
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
TimeoutStartSec=0
Delegate=yes
KillMode=process
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
[Install]
WantedBy=multi-user.target
7. 添加执行权限并重新加载配置文件
sudo chmod a+x /etc/systemd/system/docker.service
sudo systemctl daemon-reloa
8.docker 镜像加速(可以不做, 但是 docker pull 会很慢, 由于 docker 官网在海外)
新建该文件
sudo vi /etc/docker/daemon.json
加入以下内容
{"registry-mirrors": ["http://hub-mirror.c.163.com"]
}
9. 启动 docker
sudo systemctl start docker
三、docker 基础命令
docker 启 / 停 / 重启 / 查看状态
sudo systemctl start/stop/restart/status
查看 docker 已有镜像
docker images
在 docker 官网搜寻指定镜像
docker search 镜像
下载镜像 (不加标签默认下载最新版本的镜像)
docker pull 镜像名字:tag(即标签)
启动容器 (以 xxx 名字运行基于镜像的容器,并映射容器端口到本机端口,容器目录文件储存在本机目录)
docker run -d -name xxx -p 本机端口: 容器端口 -v 本机目录: 容器目录 镜像 name:tag(或 ID)
进入正在运行的容器内部
docker exec -it 容器 name(或 ID) /bin/bash
容器的启 / 停 / 重启 / 信息 / 删除
docker start/stop/restart/inspect/rm 容器 name(或 ID)
查看正在运行的容器
docker ps
查看所有容器 (包括正在运行的、停止的, 不包括删除的)
docker ps -a
镜像的删除 (删除镜像前请删除所有与该镜像有关的容器)
docker rmi 镜像 name:tag(或 ID)
查看当前安装的 docker 有关信息
docker info
dd