部署docker和docker-compose

docker安装

安装

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

方案一:修改目录地址

第一步:停止 Docker 容器

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
 
posted @ 2022-08-11 17:59  liwinallucky  阅读(174)  评论(0)    收藏  举报