快速搭建本地docker的开发环境

概述

windows安装docker对系统有版本限制,由于我电脑不支持,所以就安装centos8的虚拟机,在虚拟机上探索docker的使用。

虚拟机安装

下载地址:http://isoredirect.centos.org/centos/8/isos/x86_64/

镜像:==CentOS-8.3.2011-x86_64-dvd1.iso==

选择==NAT==的网络设置,方便本机互通;其他配置就按照默认的安装。

等待一段时间虚拟机安装完成啦

默认root密码与新创建的用户密码相同

虚拟机设置

关闭防火墙

systemctl status firewalld.service # 防火墙状态
systemctl stop firewalld.service #停止
systemctl start firewalld.service #开启
systemctl disable firewalld.service #禁止自启动
systemctl enable firewalld.service #开启自启动
复制代码

静态ip设置

切换到root账号

vi /etc/sysconfig/network-script/ifcfg-ens33
复制代码

配置文件有如下变更两处

BOOTPROTO=static #更改这个配置
IPADDR=静态IP[打开虚拟机-编辑-虚拟网络编辑器-对应子网地址]
复制代码

网卡重启

systemctl restart network  #centos7
systemctl restart NetworkManager   #centos8
复制代码

测试一下网络:

ping baidu.com
复制代码

设置共享磁盘

虚拟机设置-选项-共享文件夹-添加主机路径

关于vmware16.0.0版本安装虚拟机共享目录不起作用的问题解决参考

https://blog.csdn.net/bafeiyu2523696101/article/details/118098339

更换网络之后处理方式参考文章: https://www.cnblogs.com/abel-he/p/12689394.html

# 创建挂载目录
mkdir /mnt/hgfs
sudo vmhgfs-fuse .host:/ /mnt/hgfs
# 还遇到了重启虚拟机部分挂载文件丢失,目录不为空的情况执行以下命令
sudo vmhgfs-fuse .host:/ /mnt/hgfs/ -o allow_other -o uid=1000 -o nonempty
复制代码
# 上面的命令仅仅生效一次,重启虚拟机后又不生效了
vim /etc/fstab
# 添加一行保存
.host:/www /mnt/hgfs fuse.vmhgfs-fuse allow_other,defaults 0 0
# 再次执行以下命令,永久生效
sudo vmhgfs-fuse .host:/ /mnt/hgfs/ -o allow_other -o uid=1000 -o nonempty

docker安装

前置条件

1.前置条件(1)内核3.8以上,可通过uname -a 命令查看内核版本

2.前置条件(2)需要检查Device Mapper是否已经安装

ls -l /sys/class/misc/device-mapper #查看是否存在对应文件
sudo grep device-mapper /proc/mapper # 查看是否存在对应文件
sudo yum install -y device-mapper # 安装device-mapper
sudo modprobe dm_mod #安装之后需要加载device mapper模块,加载之后查看对应文件就存在了
ls -l /sys/class/misc/device-mapper #再次查看对应文件
复制代码

安装docker

官方文档地址:https://docs.docker.com/engine/install/centos/

W3C: https://www.runoob.com/docker/centos-docker-install.html

# 卸载旧版本
sudo yum remove docker
                  docker-client
                  docker-client-latest
                  docker-common
                  docker-latest
                  docker-latest-logrotate
                  docker-logrotate
                  docker-engine
                  docker-ce
                  docker-ce-cli
                  containerd.io

#yum扩展工具安装
sudo yum install -y yum-utils
#yum安装源设置
sudo yum-config-manager
    --add-repo
    https://download.docker.com/linux/centos/docker-ce.repo

#启用夜间存储库,还可对应关闭disable
sudo yum-config-manager --enable docker-ce-nightly
#启用测试
sudo yum-config-manager --enable docker-ce-test

# 安装docker的命令
sudo yum install docker-ce docker-ce-cli containerd.io

# 开启docker服务
sudo systemctl start docker

# 开机启动
sudo systemctl enable docker

复制代码

分享一个rpm包的源地址:http://docker-release-yellow-prod.s3-website-us-east-1.amazonaws.com/linux/centos/

docker-compose 镜像安装

#下载
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
#设置下载文件可执行
sudo chmod +x /usr/local/bin/docker-compose
#设置软连接
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

#docker-compose版本查看
docker-compose --version
复制代码

docker编排文件仓库

包含以下环境

  • php74环境(rebaitMq,mongodb,swoole,amqp,rabbitmq扩展)
  • php80环境(rebaitMq,mongodb,swoole,amqp,rabbitmq扩展)
  • kafka
  • zookeeper
  • rabbitmq
  • elasticsearch
  • kibana

地址:https://gitee.com/lean_in/docker_config

启动多个docker容器

进入docker_config根目录

#容器启动
docker-compose up -d
#查看启动的容器
docker ps
#进入容器
docker exec -it [容器名] sh
#删除某个容器
docker rm -f [容器名]
#重启某个容器
docker restart [容器名]
#空间不足时执行该命令
docker system prune
#根据某个容器的配置文件单独启动某个容器
docker-compose build [容器名]


最近需要在以上php74 容器的基础上,给php安装yaml扩展,yaml依赖libyaml

PECL :: Package :: yaml

pyyaml.org/download/libyaml/

更改了dockerfile文件内容

删除了源容器

docker-compose build [容器名]

docker内直接安装yaml扩展

RUN apk add --no-cache --virtual .build-deps
    g++ make autoconf yaml-dev

RUN pecl channel-update pecl.php.net
RUN pecl install yaml-2.2.2 && docker-php-ext-enable yaml

RUN apk del --purge .build-deps

或者composer包更新的时候,可以忽略平台提示
composer install --ignore-platform-reqs

本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!