注意:非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-reload
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基础命令
1、其他指令
docker启/停/重启/查看状态
sudo systemctl start/stop/restart/status
查看当前安装的docker有关信息
docker info
2、镜像相关指令
查看已有镜像
docker images
在docker官网搜寻指定镜像
docker search 镜像
下载镜像(不加标签默认下载最新版本的镜像)
docker pull 镜像名字:tag(即标签)
保存已有镜像
docker save -o path/name 镜像ID(或name:tag)
加载镜像
docker load -i 压缩的镜像包
镜像的删除(删除镜像前请删除所有与该镜像有关的容器)
docker rmi 镜像ID(或name:tag)
修改镜像name和tag
docker tag 镜像ID(或name) 新镜像name:新tag
3、容器相关指令
启动容器(-d:后台运行;--name:指定容器名字;-p:映射容器端口到本机端口;-v:容器目录文件挂载至本机目录)
docker run -d --name 自定义容器name -p 本机端口:容器端口 -v 本机目录:容器目录 镜像ID(或name:tag)
进入正在运行的容器内部(-i:以交互模式运行容器;-t:为容器重新分配一个伪输入终端.通常it一起使用)
docker exec -it 容器name(或ID) /bin/bash
容器的启/停/重启/删除
docker start/stop/restart/rm 容器name(或ID)
查看容器端口映射
docker port 容器name(或ID)
查看容器信息
docker inspect 容器name(或ID)
查看正在运行的容器
docker ps
查看所有容器(包括正在运行的、停止的,不包括删除的)
docker ps -a
查看容器内的进程
docker top 容器name(或ID)
监控并显示最新100行的容器日志(可以直接使用docker logs容器name(或ID),但是日志容量大的最好加上条件)
docker logs -f --tail=100 容器name(或ID)