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...