Docker學習之安裝mysql
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