1. 程式人生 > >Docker學習之安裝mysql

Docker學習之安裝mysql

com div ron with tag tor linux mon lin

1.從Docker檢索mysql鏡像

指令:

docker search mysql

2.鏡像下載

指令:

docker pull mysql:5.7.19

3.查看本地鏡像列表

指令:

docker images
#修改鏡像名稱

docker tag mysql:5.7.19 mysql:5.7

4.根據鏡像創建容器

[centos@loovelj~]$ docker create -it mysql:5.7
62c975b37ad25b03914eb61e05088019f37ff9cb049a682ac02f20fac1761a4d
註:可不創建直接執行第5項啟動mysql運行

5.設置Mysql的Docker鏡像開機自動運行

指令:

docker run --restart=always --name mysql5.7 -p 3306:3306 -v /my/mysql/datadir:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7

--name 容器的別稱。
-p 端口映射。格式是 主機的端口:容器的端口。這裏2個都是3306,所以是3306:3306
-e 設置容器的環境變量。-e MYSQL_ROOT_PASSWORD=123456就代表mysql的root的密碼是123456
-d 使用鏡像包名稱,可以通過docker images查看
-v 將主機當前目錄下的/my/mysql/datadir掛載到容器的/var/lib/mysql;

restart=always, 告訴docker,這個容器要自動啟動

6.進入MySQL終端

[centos@loovelj~]$ docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
2a7a85124400        mysql:5.7           "/entrypoint.sh my..."   9 seconds ago       Up 8 seconds        0.0.0.0:3306->3306/tcp   mysqlserver
188099665d1e        ubuntu:latest       "/bin/bash"              23 hours ago        Up 23 hours                                  angry_spence
[centos@liujun ~]$ docker exec -it  2a7a85124400  /bin/bash
root@2a7a85124400:/# 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 2
Server version: 5.7.9 MySQL Community Server (GPL)

Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.

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> 

7.常用Docker指令及參數

1>.Docker鏡像指令

鏡像檢索
Docker的鏡像都放置在Docker官網的Docker Hub上,地址是https://registry.hub.docker.com。可在該網站搜索鏡像,也可以用命令“docker search 鏡像名”(如:docker search redis)檢索。

鏡像下載
docker pull 鏡像名

查看本地鏡像列表
docker images

刪除鏡像
docker rmi image-id

刪除所有鏡像
docker rmi $(docker images -q)

2>.Docker容器指令

運行鏡像為容器
docker run --name container-name -d image-name
其中--name市委容器取個名稱,-d表示detached,意味著執行完這句命令後控制臺將不會被阻礙,可繼續輸入命令操作。如:
docker run --name test-redis -d redis

查看運行中的容器列表
docker ps
通過下列命令可查看運行和停止狀態的容器:
docker ps -a

停止容器
通過容器名稱或容器ID停止容器
docker stop container-name/container-id
如:
docker stop test-redis

啟動容器
通過容器名稱或容器ID啟動容器
docker start container-name/container-id
如:
docker start test-redis

設置容器開機啟動
使用在Docker run的時候使用--restart參數來設置。
no - container:不重啟
on-failure - container:退出狀態非0時重啟
always:始終重啟
如:
docker run --restart=always --name mysql5.7 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7

端口映射
Docker容器中運行的軟件所使用的端口,需要映射到當前主機的端口上才能訪問。Docker的端口映射通過一個-p參數來實現。例如,我們將Redis容器的6379端口映射到本機的6378端口:
docker run -d -p 6378:6379 --name port-redis redis

刪除容器
docker rm container-id

刪除所有容器
docker rm $(docker ps -a -q)

查看當前容器日誌
docker logs container-name/container-id
如:
docker logs port-redis

登陸容器
運行中的容器其實是一個功能完備的Linux操作系統,所以我們可以像常規的系統一樣登錄並訪問容器。
我們可以使用如下命令,登錄訪問當前容器,登陸後我們可以在容器中進行常規的Linux系統操作命令,還可以使用exit命令退出登錄:
docker exec -it container-id/container-name bash

8.局域網訪問不到的情況解決方法

mysql> grant all privileges on *.* to root@"%" identified by "password" with grant option;
Query OK, 0 rows affected, 1 warning (0.04 sec)


mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

執行完畢後,再通過工具去連接,就可以連上了。

技術分享圖片

Docker學習之安裝mysql