目錄
- 前言
- 拉取鏡像
- 創(chuàng)建容器
- 進(jìn)入mysql容器
- 登錄mysql
- 創(chuàng)建數(shù)據(jù)庫
- 創(chuàng)建表
- 總結(jié)
前言
本文主要講解的是創(chuàng)建mysql的容器,大家都知道,在外面進(jìn)入mysql都很容易,“mysql -u用戶名 -p密碼”就可以,但是是容器的mysql就沒那么好進(jìn)入了,首先還要拉取鏡像,創(chuàng)建容器,在進(jìn)入容器,然后才可以進(jìn)入mysql;其實(shí)也沒有那么難,而且比在宿主機(jī)裝一個(gè)mysql簡便了很多,也省去了很多時(shí)間,比如,宿主機(jī)上mysql還要編譯,容器就不用,但是最難的一點(diǎn)就是如何去創(chuàng)建容器呢,他和普通的創(chuàng)建容器是不一樣的,所以,今天給大家講講創(chuàng)建mysql容易,并進(jìn)入、創(chuàng)建庫和表;
拉取鏡像
如需要哪個(gè)mysql版本可以在后面直接寫,比如我需要mysql:5.7.38的,就直接拉取5.7.38的鏡像;如果需要默認(rèn)的mysql,那么直接拉取mysql就好,默認(rèn)的應(yīng)該是最新的版本;
[root@localhost ~]# docker pull mysql:5.7.38 5.7.38: Pulling from library/mysql 66fb34780033: Pull complete ef4ccd63cdb4: Pull complete d6f28a94c51f: Pull complete 7feea2a503b5: Pull complete 71dd5852ecd9: Pull complete 3da2c95cac2f: Pull complete af7913db289c: Pull complete 77f552f93c12: Pull complete 3ed53edb61ab: Pull complete 67e1c6839f08: Pull complete abcdaaf08d0f: Pull complete Digest: sha256:bbe0e2b0a33ef5c3a983e490dcb3c1a42d623db1d5679e82f65cce3f32c8f254 Status: Downloaded newer image for mysql:5.7.38 docker.io/library/mysql:5.7.38
拉取完鏡像查看一下:
docker images
接下來就是這一環(huán)節(jié)中最重要的一點(diǎn)了,創(chuàng)建容器;
創(chuàng)建容器
創(chuàng)建mysql容器,在后臺啟動mysql容器
- -it 以交互形式創(chuàng)建容器;
- –name 指定了容器的名稱,方便之后進(jìn)入容器的命令行;
- -p 指定映射端口,如果遇到端口被占用,可以使用其他端口比如3333:3306;就可以;
- -e MYSQL_ROOT_PASSWORD=123123 直接就指定了mysql的root密碼;
- -d 表示在后臺運(yùn)行;
- mysql:3.7.38 代表的你用的哪個(gè)鏡像
- 如果需要做數(shù)據(jù)映射,可以加個(gè)-v參數(shù),-v 宿主機(jī)路徑,容器內(nèi)路徑;
- 容器內(nèi) mysql數(shù)據(jù)文件目錄:
/var/lib/mysql/
- 容器內(nèi) mysql配置文件目錄:
/etc/mysql/
需要哪個(gè)可自行選擇,建議使用第三個(gè):
因?yàn)榈谌N數(shù)據(jù)和配置文件都可以做到同步,要拿數(shù)據(jù)的話,可以直接在宿主機(jī)映射的目錄拿就可以了;
docker run -it --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123123 -d mysql:5.7.38 #mysql默認(rèn)版本的創(chuàng)建;就是最后不要:5.7.38了,其他都一樣; docker run -it --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123123 -d mysql #加數(shù)據(jù)映射的容器創(chuàng)建;設(shè)置開機(jī)自啟 docker run -itd --name mysql --restart=always --privileged -p 3306:3306 -v /var/lib/mysql/my.cnf:/etc/mysql/my.cnf -v /var/lib/mysql/data:/var/lib/mysql/data/ -v /etc/localtime/:/etc/localtime/ -e MYSQL_ROOT_PASSWORD=123123 mysql:5.7.38
這樣容器就創(chuàng)建完成了;創(chuàng)建完查看一下容器;
docker ps -a
進(jìn)入mysql容器
docker exec -it mysql bash
登錄mysql
mysql -uroot -p123123
創(chuàng)建數(shù)據(jù)庫
#首先查看一下數(shù)據(jù)庫 show databases; #創(chuàng)建數(shù)據(jù)庫 create database cs; #再次查看是否創(chuàng)建成功; show databases;
創(chuàng)建表
#進(jìn)入剛剛創(chuàng)建的庫 use cs; #查看表,里面是空的目前 show tables; #創(chuàng)建表 create table biaoone(id int,name varchar(20),age int); #查看表,現(xiàn)在是有一個(gè)的 show tables #查看表機(jī)構(gòu) desc biaoone;