宿主機連線docker中的mysql

2022-06-18 05:45:10 字數 1614 閱讀 5683

docker run \

--name mysql \

-v $pwd/mysql:/var/lib/mysql \

-p 3306:3306 \

-e mysql_root_password=123456 \

-d mysql:5.7

錯誤的連線方式

$ mysql -u root -p

enter password:

error 2002 (hy000): can't connect to local mysql server through socket

'/var/run/mysqld/mysqld.sock' (2)

# 可以看出這樣會報錯

正確的連線方式

$ mysql -h 127.0.0.1 -u root -p

enter password:

welcome to the mysql monitor. commands end with ; or \g.

your mysql connection id is 9

server version: 5.7.26 mysql community server (gpl)

oracle is a registered trademark of oracle corporation and/or its

affiliates. other names may be trademarks of their respective

owners.

type 'help;' or '\h' for help. type '\c' to clear the current input statement.

mysql>

檢視宿主機和docker之間的橋接ip

$ ifconfig

docker0: flags=4163 mtu 1500

inet 172.17.0.1 netmask 255.255.0.0 broadcast 172.17.255.255

inet6 fe80::42:8aff:febc:8533 prefixlen 64 scopeid 0x20

ether 02:42:8a:bc:85:33 txqueuelen 0 (乙太網)

rx packets 4779 bytes 11624681 (11.6 mb)

rx errors 0 dropped 0 overruns 0 frame 0

tx packets 6006 bytes 441594 (441.5 kb)

tx errors 0 dropped 0 overruns 0 carrier 0 collisions 0

# 宿主機在與容器同一區域網的ip位址一般是docker0對應的ip位址段的首個位址

即(172.17.0.1 )

在容器中連線宿主機的mysql

$ mysql -h 172.17.0.1 -u root -p

docker容器的程式連線宿主機的MySQL

docker裡面的 生成的資料需要寫入到宿主機的mysql伺服器上,想要用本地的資料庫測試自己的 正確性,專案程式安裝在docker容器中,於是必定要在docker容器裡訪問到本地的資料庫。1 在docker容器裡localhost並不是指宿主機的localhost,因此不能在容器中通過localh...

在容器中操作宿主機的Docker

儘管該操作方式不合理,違背了docker的初衷,但有些場景仍然可以使用。docker run d name docker v var run docker.sock var run docker.sock v usr bin docker usr bin docker v usr lib x86 6...

docker訪問宿主機MySQL

docker內部訪問宿主及mysql 有時mysql安裝在宿主機中,而服務在docker容器中,此時可以通過通過以下兩張方式訪問 方法一啟動docker時使用 net host net host這個引數,讓容器執行在宿主機相同的網路 此時可以通過127.0.0.1直接連線mysql 方法二使用doc...