私はMySQL Workbenchからドッキングされたmysqlサーバに接続しようとしています。私が作成するには、このライブラリを使用していMySQL WorkbenchからドッキングされたMySQLサーバに接続できません
FROM ubuntu:latest
# package updates & install mysql
RUN apt-get update && apt-get install -y mysql-server
RUN apt-get -y install supervisor
ADD supervisord.conf /etc/supervisor/conf.d/supervisord.conf
# bind sql script
ADD musicdb.sql /tmp/musicdb.sql
RUN sed -i -e"s/^bind-address\s*=\s*127.0.0.1/bind-address = 0.0.0.0/" /etc/mysql/my.cnf
EXPOSE 3306
RUN /bin/bash -c "/usr/bin/mysqld_safe &" && \
sleep 5 && \
mysql -u root -e "CREATE DATABASE musicdb" && \
mysql -u root musicdb < /tmp/musicdb.sql
CMD ["/usr/bin/supervisord", "-n"]
、実行して、Java等からコンテナ:へ
https://github.com/spotify/docker-client
私の実際の方法私は、Windows 10を使用していますと、ここに私のDockerfileですJavaでこれを行うには:
public static void createContainerWithPorts(){
DockerClient docker;
try {
docker = DefaultDockerClient.fromEnv().build();
//PortBindings
Map<String, List<PortBinding>> portBindings = new HashMap<>();
List<PortBinding> hostPorts = new ArrayList<>();
hostPorts.add(PortBinding.of("0.0.0.0", "3306"));
portBindings.put("3306", hostPorts);
HostConfig hostConfig = HostConfig.builder().portBindings(portBindings).build();
ContainerConfig containerConfig = ContainerConfig.builder().hostConfig(hostConfig).image("mysql-container").exposedPorts("3306").build();
//create container
ContainerCreation contaierCreation = docker.createContainer(containerConfig);
String id = contaierCreation.id();
//start container
docker.startContainer(id);
ContainerInfo containerInfo = docker.inspectContainer(id);
System.out.println(containerInfo.toString());
Scanner scanner = new Scanner(System.in);
scanner.next();
docker.killContainer(id);
docker.removeContainer(id);
docker.close();
} catch (DockerCertificateException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
} catch (DockerException e) {
e.printStackTrace();
}
}
Javaは、作成済みのDocker Imageからコンテナの罰金をビルドします。実際に稼動しているDocker Containerを見ると、ポートバインディングが機能しているように見えます。 docker exec -it SQLContainer bash
でコンテナにアクセスすると問題なく動作し、SQL Serverにアクセスできます。 MySQL Workbench Error Message
誰かが私が間違ってやっている知っています:私は、MySQL Workbenchで接続しようとすると、私は下の写真のようにエラーメッセージが
得ましたか。
おかげで、