Centos7安装使用docker和docker-compose

一.安装 docker

查看 yum 是否能够使用, 如果报错:

Cannot find a valid baseurl for repo: base/7/x86_64

则替换 yum 源

vim /etc/yum.repos.d/CentOS-Base.repo

替换为:

[base]
name=CentOS-$releasever - Base
baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

[updates]
name=CentOS-$releasever - Updates
baseurl=http://mirrors.aliyun.com/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

[extras]
name=CentOS-$releasever - Extras
baseurl=http://mirrors.aliyun.com/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

[centosplus]
name=CentOS-$releasever - Plus
baseurl=http://mirrors.aliyun.com/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

1. 安装系统所依赖的工具需要

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

2.yum的配置管理,添加docker的软件源地址

sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

或者

从阿里云的镜像源下载 Docker 的 CentOS 仓库文件,并将其保存到 /etc/yum.repos.d/ 目录下。将 Docker 的软件源添加到你的 CentOS 系统中,确保能够从该源安装 Docker。

wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo

以上两种方式二选一即可

3.更新 yum 缓存

sudo yum makecache fast

4.可以查看所有仓库中所有docker版本,并选择特定版本安装

yum list docker-ce --showduplicates | sort -r

5. 安装 docker

此命令默认安装最新版本

sudo yum install docker-ce

我这里安装 24.0.7 版本

我们可以使用 以下命令查看yum 中 docker 的版本

yum list docker-ce --showduplicates | sort -r

在这里插入图片描述

注:注意指定版本的拼接方式, 同时指定 docker-ce-cli 命令行工具的版本, 不然也会安装为最新版本

sudo yum install docker-ce-24.0.7 docker-ce-cli-24.0.7 containerd.io

6. 启动并设置 Docker 开机自启

sudo systemctl enable docker && systemctl start docker

7.修改 docker 镜像源

vim /etc/docker/daemon.json

添加:

{
    "registry-mirrors": [
        "https://do.nark.eu.org",
        "https://dc.j8.work",
        "https://docker.m.daocloud.io",
        "https://dockerproxy.com",
        "https://docker.mirrors.ustc.edu.cn",
        "https://docker.nju.edu.cn",
	    "https://b9pmyelo.mirror.aliyuncs.com",
	    "https://alzgoonw.mirror.aliyuncs.com"
    ]
}

执行:

sudo systemctl daemon-reload 
sudo systemctl restart docker

8.将docker文件设置为自定义位置(可选)

docker 文件默认在 /var/lib/docker
我们降之放入自定义的位置, 以防止文件磁盘不够用

停止 docker

sudo systemctl stop docker

移动原数据到新位置

mkdir -p /hdata/docker_data
mv /var/lib/docker/* /hdata/docker_data/

修改 Docker 配置文件

vim /etc/docker/daemon.json

加入配置:

"data-root": "/hdata/docker_data"

启动 docker

sudo systemctl start docker

查看 docker 文件的地址

docker info | grep "Docker Root Dir"

如果输出的还是老地址, 可以再执行以下命令

sudo systemctl daemon-reload 
sudo systemctl restart docker

9. 验证 Docker

docker run hello-world

如果失败, 可以查看一下防火墙

二. 安装 docker-compose

1.下载docker-compose 并放入指定文件夹

我们这里使用 1.18.0 版本

sudo curl -L "https://github.com/docker/compose/releases/download/1.18.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

参数说明:

  • 1.18.0 : 1.18.0 版本
  • uname -s : 自动根据本地的系统(Linux)
  • uname -m : 自动根据本地的 CPU 架构(x86_64)

注: docker-compose v1 和 v2 的区别

  • v1 是独立程序 docker-compose
  • 从 v2 开始,docker-compose 集成到了 docker 本身,可以通过 docker compose 命令使用

2.赋予可执行权限

sudo chmod +x /usr/local/bin/docker-compose

3.查看版本

docker-compose -v

三.docker 常用操作

1. docker 操作

1.启动 docker

systemctl start docker

2.重启 docker

systemctl restart docker

3.停止docker

systemctl stop docker

4.查看 docker 状态

systemctl status docker

或者

docker info

5.卸载docker

sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-selinux \
                  docker-engine-selinux \
                  docker-engine

6.查看 docker 版本

docker version

docker -v

2.镜像操作

1. 拉取镜像

docker pull nginx

2. 列出机器上的镜像(images)

docker images

docker image ls

docker image list

3. 删除镜像

docker rmi nginx

4.强制删除镜像

docker rmi -f nginx

3.容器操作

1.默认显示当前正在运行中的容器

docker ps

2.查看包括已经停止的所有容器

docker ps -a

3.显示最新启动的一个容器(包括已停止的)

docker ps -l

4.启动容器

docker start nginx(镜像名称或id)

5.停止容器

docker stop nginx(镜像名称或id)

6.删除容器

docker rm nginx(镜像名称或id)

4.系统互操作

1.向docker中传文件

docker cp /mnt/zhujianbu.bak ffc094709e6c:/mnt/zhujianbu.bak

2.从docker中拷贝出文件

docker cp 796bc1b17289:/etc/nginx/nginx.conf ./  

3.与容器进行交互

docker run -i -t ubuntu:15.10 /bin/bash

参数说明:

  • -t : 在新容器内指定一个伪终端或终端。
  • -i : 允许你对容器内的标准输入 (STDIN) 进行交互。

输入 exit 退出

5.docker 简单应用

docker 创建并启动一个容器

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

参数说明:

  • -d :后台运行容器,返回容器ID。
  • -it :以交互模式运行容器,常用于调试或进入容器内部。
  • –name :为容器指定一个名称。
  • -p :映射容器端口到宿主机端口,例如-p 8080:80。

1. 使用 docker run 命令来在容器内运行一个应用程序

docker run ubuntu:15.10 /bin/echo "Hello world"

参数说明:

  • docker : Docker 的二进制执行文件。
  • run :与前面的 docker 组合来运行一个容器。
  • ubuntu:15.10 : 指定要运行的镜像,Docker首先从本地主机上查找镜像是否存在,如果不存在,Docker 就会从镜像仓库 Docker Hub 下载公共镜像。
  • /bin/echo “Hello world” : 在启动的容器里执行的命令

2.后台运行容器

docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo hello world; sleep 1; done"

参数说明:

  • docker run : 启动一个新的容器。
  • -d : Detached 模式运行,也就是后台运行容器(不是在当前终端里直接输出)。
  • ubuntu:15.10 : 使用 ubuntu:15.10 这个镜像
  • /bin/sh -c “…” : 在容器里启动 /bin/sh(一个很基础的Shell),并通过 -c 参数让它执行引号内的整段命令。
  • “while true; do echo hello world; sleep 1; done” : 一个死循环,每秒输出一次 hello world。

会返回容器的id:

863a5a7805ba5f22686306ed53f51a0dc12944f861a71911dca8b203021c9160

四.docker 安装 nginx

1.安装nginx

拉取 nginx 最高版本镜像

docker pull nginx:latest

安装完成后,我们可以使用以下命令来运行 nginx 容器:

docker run --name nginx-test -p 8080:80 -d nginx

参数说明:

  • –name nginx-test :容器名称。
  • -p 8080:80 : 端口进行映射,将本地 8080 端口映射到容器内部的 80 端口。
  • -d nginx : 设置容器在在后台一直运行。

2.修改 nginx 配置文件

共两种方式:

2.1 进入容器内部修改

docker exec -it 796bc1b17289 /bin/bash

参数说明:

  • exec : 命令代表附着到运行着的容器内部
  • -it : 是 -i 与 -t两个参数合并写法,-i -t 标志着为我们指定的容器创建了TTY并捕捉了STDIN
  • 796bc1b17289 : 是我们要进入的容器Id
  • /bin/bash : 指定了执行命令的shell

2.2 将nginx容器内部配置文件挂载到主机

2.2.1 在主机目录 /mnt 下建立相关文件夹
mkdir -p ./nginx/{conf,html,logs}
2.2.2 将容器内的nginx.conf与default.conf文件分别拷贝到主机/mnt/nginx和/mnt/nginx/conf下,分别执行
docker cp 796bc1b17289:/etc/nginx/nginx.conf ./        
docker cp 796bc1b17289:/etc/nginx/conf.d/default.conf ./conf/

参数说明:

  • cp : 命令代表复制
  • 796bc1b17289 : 是我们nginx容器的ID,/etc/nginx/nginx.conf 是容器内部nginx.conf 路径

3.停止 nginx 容器并移除

docker stop 796bc1b17289
docker rm 796bc1b17289

4.启动 Nginx

docker run -d --name mynginx -p 8080:80 -v /mnt/nginx/nginx.conf:/etc/nginx/nginx.conf -v /mnt/nginx/logs:/var/log/nginx -v /mnt/nginx/html:/usr/share/nginx/html -v /mnt/nginx/conf:/etc/nginx/conf.d --privileged=true nginx

参数说明:

  • -v : 挂载目录,格式 -v: 表示将主机目录与容器目录之间进行共享
  • –privileged=true : 容器内部对挂载的目录拥有读写等特权

五.docker安装mysql

1.查找 mysql 版本

docker search mysql

或者在网站

https://hub.docker.com/_/mysql?tab=tags

2.拉取 Docker Hub上的 mysql 镜像

以拉取5.6版本为例

docker pull mysql:5.6

3.建立需要映射的mysql相关文件夹

mkdir -p ./mysql_data/{conf,data,logs}

conf下建立 my.cnf 文件

vim my.cnf

4.启动容器

docker run -d -p 3308:3306 --name mymysql -v /mnt/mysql_data/conf/my.cnf:/etc/mysql/my.cnf -v /mnt/mysql_data/logs:/var/log/mysql -v /mnt/mysql_data/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123zxcv --privileged=true mysql:5.6

参数说明:

  • -p 3308:3306 :将容器的3306端口映射到主机的3308端口
  • -v /mnt/mysql_data/conf/my.cnf:/etc/mysql/my.cnf :将主机目录下的conf/my.cnf挂载到容器的/etc/mysql/my.cnf
  • -v /mnt/mysql_data/logs:/var/log/mysql :将主机下的logs目录挂载到容器的/var/log/mysql
  • -v /mnt/mysql_data/data:/var/lib/mysql :将主机下的data目录挂载到容器的/var/lib/mysql
  • -e MYSQL_ROOT_PASSWORD=123zxcv :初始化root用户的密码
  • mysql:5.6 : 需要运行的容器名称以及版本号
CentOS 7安装docker-compose可以按照以下步骤进行: 1. 下载docker-compose二进制文件: 可以使用以下命令下载docker-compose二进制文件: ``` sudo curl -L https://github.com/docker/compose/releases/download/1.25.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose ``` 如果GitHub下载速度较慢,你也可以使用daoCloud的镜像下载: ``` 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 ``` 2. 添加执行权限: 使用以下命令为docker-compose添加执行权限: ``` sudo chmod +x /usr/local/bin/docker-compose ``` 3. 创建软链接: 使用以下命令创建一个docker-compose的软链接: ``` sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose ``` 4. 测试安装结果: 使用以下命令验证docker-compose是否成功安装: ``` docker-compose --version ``` 这样,你就成功在CentOS 7安装docker-compose。你可以在包含docker-compose.yaml文件的目录下使用docker-compose命令来进行容器编排操作。例如,启动容器可以使用以下命令: ``` docker-compose up -d ``` 参考资料: Docker官方文档: https://docs.docker.com/compose/install/ CSDN博客: https://blog.csdn.net/shenliangliang_/article/details/106767729<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Centos7安装docker-compose](https://blog.csdn.net/qq_42761569/article/details/127979532)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [CentOS7安装Docker-Compose](https://blog.csdn.net/qq_41402200/article/details/101628965)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

纯洁的小魔鬼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值