- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我知道有很多类似的问题,但没有一个是我想要的。我正在关注this因为我特别需要 5.5,至少现在是这样。我的 java 项目(访问 mysql)位于我用
构建的容器中docker build -t 项目名称-测试。
Dockerfile 非常标准,它只是复制构建的 tarball 并将其提取到特定文件夹。 CMD 是一个 shell 脚本 run_dev_server.sh
,它仅使用开发配置而不是生产配置启动服务器。
我使用链接中给出的命令创建了一个 percona docker 容器
docker run --name projectname-mysql-server -e MYSQL_ROOT_PASSWORD=""-d percona:5.5
所以现在我认为,只需要链接中提到的两个链接:
docker run -p 3306:3306 --nameprojectname-local--linkprojectname-mysql-serverprojectname-testing
这给了我
docker:来自守护程序的错误响应:无法链接到未运行的容器:/projectname-mysql-server AS/projectname-local/projectname-mysql-server。
ERRO[0000] 从守护进程获取事件时出错:net/http:请求已取消
这不是很有帮助,也没有告诉我发生了什么。我对这个过程的理解有误吗?我应该做什么?
最佳答案
首先,我建议使用 Docker Hub 中的官方 Percona docker 镜像,而不是构建您自己的镜像。官方镜像有5.5版本; https://hub.docker.com/_/percona/例如,如果您需要特定更改(例如自定义配置),您可以扩展此镜像;
FROM percona:5.5
COPY my-config.cnf /etc/mysql/conf.d/
重要:我注意到您正在发布端口 3306 (-p 3306:3306
)。发布端口使其可以在主机的网络接口(interface)上公开访问。仅当您有需要连接到数据库的外部软件时才应执行此操作。如果您的应用程序只需要访问数据库,则不需要发布端口,因为容器可以通过 docker 容器-容器网络相互连接,该网络是“私有(private)”的,无法从主机外部访问。
默认网络上的 --link
选项是一个遗留选项,为了向后兼容仍然存在,但在大多数情况下不应该使用。 --link
选项有许多限制;
Docker 1.9 引入了自定义 docker 网络,这允许
一个简单的例子;
为您的应用程序创建一个网络;
docker network create mynet
创建一个数据库容器,并将其附加到网络上;无需发布其端口供其他容器连接到它。 (我在这里使用 nginx 图像,只是为了说明这个概念);
docker run -d --name db --network mynet nginx:alpine
创建一个“应用程序”容器并将其附加到同一网络;这样做允许它通过该网络与 db
容器通信;
docker run -dit --name app --network mynet alpine sh
应用程序容器现在可以使用其名称连接到 db
容器作为主机名(db
);为了说明这一点,请在 app
容器中打开 shell,安装curl 并连接到 http://db:80
;
docker exec -it app sh
/ # apk add --no-cache curl
fetch http://dl-cdn.alpinelinux.org/alpine/v3.5/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.5/community/x86_64/APKINDEX.tar.gz
(1/4) Installing ca-certificates (20161130-r1)
(2/4) Installing libssh2 (1.7.0-r2)
(3/4) Installing libcurl (7.52.1-r3)
(4/4) Installing curl (7.52.1-r3)
Executing busybox-1.25.1-r0.trigger
Executing ca-certificates-20161130-r1.trigger
OK: 5 MiB in 15 packages
/ # curl http://db:80
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
您可以在文档的 []“docker 容器网络”部分]( https://docs.docker.com/engine/userguide/networking/ ) 中阅读有关网络的更多信息(以及如何从网络动态附加和分离容器)
关于mysql - 从 java docker 容器连接到 percona docker,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44664374/
我正在开发一个 voip 调用应用程序。我需要做的是在接到来电时将 Activity 带到前台。我在应用程序中使用 Twilio,并在收到推送消息时开始调用。 问题是我试图在接到任何电话时显示 Act
我是一名优秀的程序员,十分优秀!