Docker學習之安裝mysql

來源:互聯網
上載者:User

標籤:nbsp   分享   spec   鏡像   inpu   mon   ted   bash   images   

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.根據鏡像建立容器
[[email protected]~]$ docker create -it mysql:5.762c975b37ad25b03914eb61e05088019f37ff9cb049a682ac02f20fac1761a4d
註:可不建立直接執行第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終端
[[email protected]~]$ docker psCONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES2a7a85124400        mysql:5.7           "/entrypoint.sh my..."   9 seconds ago       Up 8 seconds        0.0.0.0:3306->3306/tcp   mysqlserver188099665d1e        ubuntu:latest       "/bin/bash"              23 hours ago        Up 23 hours                                  angry_spence
[[email protected] ~]$ docker exec -it  2a7a85124400  /bin/bash[email protected]:/# 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 2Server 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 itsaffiliates. Other names may be trademarks of their respectiveowners.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 [email protected]"%" 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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.