部署docker和docker-compose
安装
1、卸载旧版本(如果安装过旧版本的话)
$ sudo yum remove docker docker-common docker-selinux docker-engine
2、安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
$ sudo yum install -y yum-utils device-mapper-persistent-data lvm2
3、设置yum源
# 阿里源,国内速度快 (本文设置这个源,安装成功)
$ yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 官方源,网速太慢yum断连,不建议
$ yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
4、可以查看所有仓库中所有docker版本,并选择特定版本安装
$ yum list docker-ce --showduplicates | sort -r
5、安装docker依赖
$ sudo yum install docker-ce #由于repo中默认只开启stable仓库,故这里安装的是最新稳定版17.12.0
or
$ sudo yum install docker-ce docker-ce-cli containerd.io
containerd.io : 守护进程 containerd。 它在 docker 包上独立工作,并且是 docker 包所必需的。
containerd 可用作 Linux 和 Windows 的守护程序。 它管理其主机系统的完整容器生命周期,从图像传输和存储到容器执行和监督,再到低级存储到网络附件等等。
docker-ce-cli : docker 引擎的命令行界面,社区版
docker-ce : docker 引擎,社区版。 需要 docker-ce-cli。
6、启动并加入开机启动
启动
$ sudo systemctl start docker
开机自启
$ sudo systemctl enable docker
7、验证安装是否成功(有client和service两部分表示docker安装启动都成功了)
$ docker version
docker info
查看镜像信息(在最后几行)
启停&状态
检查docker状态
systemctl status docker
systemctl status docker.service
启动docker服务
service docker start
systemctl start docker
既要现在启动也要开机启动
systemctl enable docker --now
重启docker服务
systemctl restart docker
systemctl restart docker.service
停止docker服务
systemctl stop docker
docker换镜像源
方式一
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://kffkj784.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
方式二
[root@Docker ~]# cat <<END > /etc/docker/daemon.json
{
"registry-mirrors": [
"https://1nj0zren.mirror.aliyuncs.com",
"https://docker.mirrors.ustc.edu.cn",
"http://f1361db2.m.daocloud.io",
"https://registry.docker-cn.com"
]
}
END
[root@Docker ~]# systemctl daemon-reload #重新加载systemd配置
[root@Docker ~]# systemctl restart docker #重启Docker
换docker容器存储目录
查看 Docker 目录信息
[root@apps /]# docker info | grep Dir
Docker Root Dir: /var/lib/docker
查看 Docker 所有信息
[root@apps /]# docker info
方案一:修改目录地址
systemctl stop docker
第二步:创建 Docker 容器预存储的目录
# 将 Docker 产生的资源保存到此处
mkdir -p /home/docker/lib
第三步:将现有的项目资源迁移到新的规划目录
mv /var/lib/docker/* /home/docker/lib
第四步:修改 Docker 存储目录配置
# 编辑 Docker 配置文件
vim /usr/lib/systemd/system/docker.service
# 有的系统是这个路径
vi /lib/systemd/system/docker.service
# 注释掉原有配置,再新增如下
#ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock (注释原先的)
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --graph=/home/docker/lib(新增的)
第五步:重新启动 Docker 容器
# 重新加载配置
systemctl daemon-reload
# 重启 Docker 引擎
systemctl restart docker
第六步:查看变更效果
[root@apps /]# systemctl daemon-reload
[root@apps /]# systemctl restart docker
[root@apps /]# docker info | grep Dir
Docker Root Dir: /opt/lib/docker
方案二:软链接
第一步:停止 Docker 容器
systemctl stop docker
第二步:创建 Docker 容器预存储的目录
# 将 Docker 产生的资源保存到此处
mkdir -p /home/docker/lib
第三步:将现有的项目资源迁移到新的规划目录
mv /var/lib/docker/* /home/docker/lib
第四步:为 Docker 默认路径创建软链接到预设保存路径
ln -s /home/docker/lib /var/lib/docker
第五步:重新启动 Docker 容器
# 重新加载配置
systemctl daemon-reload
# 重启 Docker 引擎
systemctl restart docker
第五步:查看变更效果
重启 Docker 以后发现存储目录依旧在 /var/lib/docker 但是实际上是存储在预设的数据盘了。
方案三:修改daemon.json配置
第一步:停止 Docker 容器
systemctl stop docker
第二步:创建 Docker 容器预存储的目录
# 将 Docker 产生的资源保存到此处
mkdir -p /home/docker/lib
第三步:将现有的项目资源迁移到新的规划目录
mv /var/lib/docker/* /home/docker/lib
第四步:修改 Docker 存储目录配置
# 编辑 Docker 配置文件
sudo vim /etc/docker/daemon.json
{
"registry-mirrors": ["https://kffkj784.mirror.aliyuncs.com"],
"data-root": "/home/docker/lib/docker"
}
第五步:重新启动 Docker 容器
# 重启 Docker 引擎
systemctl restart docker
第六步:查看变更效果
[root@apps /]# systemctl daemon-reload
[root@apps /]# systemctl restart docker
[root@apps /]# docker info | grep Dir
Docker Root Dir: /opt/lib/docker
将用户添加到docker用户组
目的:普通用户不能使用docker ps这样的docker命令,将普通用户加入到docker用户组就可以用了。
1. 创建docker用户组
sudo groupadd docker
2. 应用用户加入docker用户组
sudo usermod -aG docker ${USER}
3. 重启docker服务
sudo systemctl restart docker
4. 切换或者退出当前账户再从新登入
su root 切换到root用户
su ${USER} 再切换到原来的应用用户以上配置才生效
直接使用这一条命令即可
# 将登陆用户加入到docker用户组中
sudo usermod -aG docker $USER
将用户加入组后需要log out并重新登录,这个时候运行docker时不用在前面添加sudo,如可直接运行docker run hello-world。
usermod用法:runoob.com/linux/linux-comm-usermod.html
卸载
卸载docker
1.查询安装过的包
yum list installed | grep docker
本机安装过旧版本
docker.x86_64,docker-client.x86_64,docker-common.x86_64
2.删除安装的软件包
yum -y remove docker.x86_64
yum -y remove docker-client.x86_64
yum -y remove docker-common.x86_64
docker-compose安装
安装
方式一
$sudo curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
添加可执行权限
$ sudo chmod +x /usr/local/bin/docker-compose
测试安装结果
$ docker-compose --version
方式二
apt install docker-compose
卸载
直接删除/usr/local/bin/docker-compose即可
$ rm /usr/local/bin/docker-compose
附录一:排查问题
$ sudo dockerd --debug
附录二:给文件或文件夹修改用户组
sudo chown -R apr:user /var/lib/docker
其中,apr表示用户当前所在的用户组,user表示用户账户名称
可以使用groups user查看用户user所在的用户组
使用du命令查看文件夹大小:
sudo du -hd 1

浙公网安备 33010602011771号