Я новичок в докере и пытаюсь подключиться к контейнеру mysql с локальной машины (хоста).
Я вытащил последнюю версию mysql с:
docker pull mysql/mysql-server:latest
изапустил это (и контейнер myadmin со следующим:
docker run --name mysql1 -e MYSQL_ROOT_PASSWORD=root -d mysql --default-authentication-plugin=mysql_native_password -P 3306 -h localhost
docker run --name myadmin -d --link mysql1:db -p 8081:80 phpmyadmin/phpmyadmin
Я могу получить доступ к phpmyadmin в моем локальном браузере (с localhost: 8081), и я создал базу данных с именем 'userDB'.
Здесь вы можете увидеть проверку докера:
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
03126272c0e3 phpmyadmin/phpmyadmin "/run.sh supervisord…" 7 minutes ago Up 7 minutes 9000/tcp, 0.0.0.0:8081->80/tcp myadmin
c8d032921d7c mysql "docker-entrypoint.s…" 8 minutes ago Up 8 minutes 3306/tcp, 33060/tcp mysql1
В моем локальном приложении JavaEE (запущенном на веб-сервере GlassFish) я пытаюсь подключить эту базу данных mysql с помощью следующих команд:
try {
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/userDB", "root", "root");
return con;
} catch (Exception ex) {
System.out.println("Database.getConnection() Error -->"
+ ex.getMessage());
return null;
}
и получил следующее исключение: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: сбой канала связи
The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
Какую ошибку я могу сделать? Как я могу подключить свое Java-приложение к контейнеру Docker mysql?