Bagaimana untuk menyambung dari localhost ke bekas docker yang berjalan dalam rangkaian docker
<p>Saya mempunyai bekas docker mysql yang ditulis menggunakan docker seperti ini:</p>
<pre class="brush:php;toolbar:false;">versi: "3.3"
perkhidmatan:
db-server:
nama_bekas: pangkalan data
imej: mysql:terkini
membina:
dockerfile: ./Dockerfile
persekitaran:
MYSQL_ROOT_PASSWORD: rootTest
MYSQL_USER: soumalya
MYSQL_PASSWORD: userTest
pelabuhan:
- "3031:3306"
rangkaian:
- dalaman
jilid:
- mysql:/var/lib/mysql
- ./init.sql:/docker-entrypoint-initdb.d/init.sql:ro
mulakan semula: kecuali dihentikan
rangkaian:
dalaman:
pemandu:jambatan
jilid:
mysql:</pre>
<p>Saya menyambung ke localhost:3031 dengan kata laluan yang betul, tetapi ia memberi saya ralat ini:</p>
<pre class="lang-bash prettyprint-override"><code>Akses ditolak untuk pengguna 'root'@'172.19.0.1' (menggunakan kata laluan: YA)
</code></pre>
<p>Bagaimanakah saya boleh membetulkan ralat ini? </p><p>Saya memberikan kandungan Dockerfile di sini:</p><p><kod></code></p>
<pre class="brush:php;toolbar:false;">TAMBAH init.sql init.sql</pre>
<p>Saya memberikan kandungan init. sql di sini:</p>
<pre class="brush:php;toolbar:false;">buat pangkalan data jika tiada ulasan;
cipta pangkalan data jika tidak wujud pengguna;
cipta pangkalan data jika tidak wujud vendor;
BERIKAN SEMUA KEISTIMEWAAN pada ulasan.* kepada 'soumalya'@'%';
BERIKAN SEMUA KEISTIMEWAAN kepada pengguna.* kepada 'soumalya'@'%';
BERIKAN SEMUA KEISTIMEWAAN kepada vendor.* kepada 'soumalya'@'%';</pre>
<p>Daripada log kontena, saya dapat melihat bahawa pangkalan data sedang dimulakan dan menunggu sambungan masuk dalam port 3306. </p>