gpt4 book ai didi

docker - 使用 Docker 和 docker-compose 运行 PHP、Apache 和 MySQL

转载 作者:行者123 更新时间:2023-12-02 20:50:07 24 4
gpt4 key购买 nike

在 Docker 中运行后(通过 docker-compose),我无法弄清楚如何使用我的容器。

过去几周我一直在阅读 Docker,我对构建一个可以在此基础上开发的环境感兴趣,并且我可以有效地复制以与我的同事协作。

我已阅读以下文章:

https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-compose-on-centos-7

https://www.digitalocean.com/community/tutorials/how-to-install-wordpress-and-phpmyadmin-with-docker-compose-on-ubuntu-14-04

https://www.digitalocean.com/community/tutorials/how-to-work-with-docker-data-volumes-on-ubuntu-14-04

我已经通过由之前文章中的命令组成的 Bash 脚本安装了 Docker 和 Docker Compose:(以 sudo 方式运行)

## Install Docker package
function docker_install {
echo "__ installing docker"
# Run installer script
wget -qO- https://get.docker.com/ | sh
# Add user parameter to docker group
usermod -aG docker $1
# Enable docker on boot
sudo systemctl enable docker.service
# Start docker now
sudo systemctl start docker.service
}

## Install docker-compose package
function docker-compose_install {
echo "__ installing docker-compose"
# Update yum repo
sudo yum install epel-release
# Install pip with "yes" flag
sudo yum install -y python-pip
# Install SSL Extension
sudo pip install backports.ssl_match_hostname --upgrade
# Install docker-compose through pip
sudo pip install docker-compose
# Upgrade python
sudo yum upgrade python*
}

# Call Functions
docker_install
docker-compose_install

我有一个 docker-compose.yml我的 Docker 图像的文件。 (现在我只是将 PHP 和 Apache 作为概念验证,我将包括 MySQL 一旦可以让 PHP 和 Apache 一起工作)
php:
image: php
links:
- httpd
httpd:
image: httpd
ports:
- 80:80

我调用 sudo docker-compose up -d我没有收到任何错误:
Creating containerwrap_httpd_1
Creating containerwrap_php_1

我的任何问题是:
当我运行 php -vservice httpd status图像运行后,我收到:
-bash: php: command not found


● httd.service
Loaded: not-found (Reason: No such file or directory)
Active: inactive (dead)

如果图像正在运行,为什么我无法使用 PHP 或查看 Apache 的状态?我应该如何使用我的 PHP 和 Apache 容器?

更新

我已经询问了 this question again 的更明智的版本.

最佳答案

您缺少的是容器就像不同的机器。在你的 droplet 上运行命令,你将看不到这些机器上运行的任何东西。您需要连接到它们。一种简单的方法是使用一些东西:docker exec -it CONTAINER_ID /bin/bash .这将使您可以访问每个容器 bash。

对于您的 Apache 服务器,它将是 containerwrap_httpd_1,除非您将 docker-compose.yaml 设置为在每次创建和启动服务时使用常量名称,否则它将始终更改。当然你也可以curl localhost或打开浏览器并浏览到您的 Droplet 的 IP 地址,前提是它在默认端口上转发 http(或使用转发端口)。这将产生看到 Apache 的默认网页的效果,因为您已经为服务设置了导出 80:80 规则。

关于docker - 使用 Docker 和 docker-compose 运行 PHP、Apache 和 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40078816/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com