Docker+Docker-compose的安装
参考文档:飞书链接:https://b11et3un53m.feishu.cn/wiki/MWQIw4Zvhil0I5ktPHwcoqZdnec?from=from_copylink
密码:j.N?-+4[
环境:
Linux Centos 7 (系统环境) |
---|
Docker 26.1.3 (截止24/5/19最新版本) |
Docker Compose v2.27.0 (截止24/5/19最新版本) |
介绍
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux或Windows操作系统的机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。
本文基于centos系统介绍了docker容器引擎和docker-compose的安装流程
1.安装Docker
1.1.配置Docker的yum源
1.1.1.安装yum-utils
yum install -y yum-utils
1.1.2.配置Docker的yum源
两个源根据实际情况二选一使用
# 阿里源 国内优先使用
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 官方源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
1.2.安装Docker
yum命令安装Docker
yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
1.3.启动和验证
启动Docker
systemctl start docker
设置开机自启
systemctl enable docker
查看运行状态
systemctl status docker
查看版本号
docker -v
1.4.配置镜像加速
(可配可不配)
这里以阿里云镜像加速为例。
1.4.1.注册阿里云账号
首先访问阿里云网站:
https://www.aliyun.com/
注册一个账号。
1.4.2.开通镜像服务
在首页的产品中,找到阿里云的容器镜像服务:
点击后进入控制台:
首次可能需要选择立刻开通,然后进入控制台。
1.4.3.配置镜像加速
找到镜像工具下的镜像****加速器:
页面向下滚动,即可找到配置的文档说明:
具体命令如下:
# 创建目录
mkdir -p /etc/docker
# 复制内容,注意把其中的镜像加速地址改成你自己的
tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["加速器url"]
}
EOF
# 重新加载配置
systemctl daemon-reload
# 重启Docker
systemctl restart docker
1.5.Docker的基本操作命令
命令 | 说明 |
---|---|
docker pull | 拉取镜像 |
docker push | 推送镜像到DockerRegistry |
docker images | 查看本地镜像 |
docker rmi | 删除本地镜像 |
docker run | 创建并运行容器(不能重复创建) |
docker stop | 停止指定容器 |
docker start | 启动指定容器 |
docker restart | 重新启动容器 |
docker rm | 删除指定容器 |
docker ps | 查看容器 |
docker logs | 查看容器运行日志 |
docker exec | 进入容器 |
docker save | 保存镜像到本地压缩文件 |
docker load | 加载本地压缩文件到镜像 |
docker inspect | 查看容器详细信息 |
1.6.卸载Docker的方法
执行以下命令:
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
1.7.安装Docker-compose(容器编排工具)
官方github仓库:https://github.com/docker/compose
1.7.1.下载并安装docker-compose
curl -L http://lurenjiapd.cloud:82/docker-compose/v2.27.0/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
添加权限:
chmod +x /usr/local/bin/docker-compose
验证
[root@lurenjia ~]# docker-compose -v
Docker Compose version v2.27.0
[root@lurenjia ~]#
1.7.2.Docker-compose.yml文件配置常用字段及说明
字段 | 说明 |
---|---|
build | 指定Dockerfile文件名(要指定的Dockerfile文件需要在build标签的子级标签中用dockefile标签指定) |
dockerfile | 构建镜像上下文路径 |
context | 可以是dockerfile路径,或者时执行git仓库的url地址 |
images | 指定镜像(已存在) |
command | 执行命令,会覆盖容器启动后默认执行的命令(会覆盖dockefile中的CMD指令) |
container_name | 指定容器名称,由于容器名称是唯一的,如果指定自定义名称,则无法scale指定容器数量。 |
deploy | 指定部署和运行服务相关配置,只能在swarm模式使用 |
environment | 添加环境变量 |
networks | 加入网络,引用顶级networks下条目 |
network-mode | 设置容器的网络模式 |
ports | 暴露容器端口,与-p相同,但是端口不能低于60 |
volumes | 挂载一个宿主机目录或命令卷到容器,命令卷要在顶级volumes定义卷名称 |
volumes_from | 从另一个服务或容器挂载卷,可选参数:ro和rw(仅版本‘2’支持) |
hostname | 在容器内设置内核参数 |
links | 连接诶到另一个容器,- 服务名称[ : ] |
privileged | 用来给容器root权限,注意是不安全的,true |
restart | 重启策略,定义是否重启容器1、no,默认策略,在容器退出时不重启容器2、on-failure,在容器非正常退出时(退出状态非0),才会重启容器3、on-failure:3 在容器非正常退出时,重启容器,最多重启3次4、always,在容器退出时总是重启容器,5、unless-stopped,在容器退出时总是重启容器,但是不考虑在Docker守护进程启动时就已经停止了的容器。 |
depends_on | 此标签用于解决容器的依赖,启动先后问题。如启动应用容器,需要先启动数据库容器。php:depends_on:- apache- mysql |
1.7.3.Docker-compose常用命令
运行命令需要结合docker-compose一起使用。
且必须要在含有docker-compose.yml文件的目录中才可以使用,否则报错。
命令 | 说明 |
---|---|
build | 重新构建服务 |
ps | 列出容器 |
up | 创建和启动容器 |
exec | 在容器里面执行命令 |
scale | 指定一个服务容器启动数量 |
top | 显示正在运行的容器进程 |
logs | 查看服务容器的输出 |
down | 删除容器、网络、数据卷和镜像 |
stop/start/restart | 停止/启动/重启服务 |
执行命令 |
| scale | 指定一个服务容器启动数量 |
| top | 显示正在运行的容器进程 |
| logs | 查看服务容器的输出 |
| down | 删除容器、网络、数据卷和镜像 |
| stop/start/restart | 停止/启动/重启服务 |