docker的简单操作以及对其内部mysql的操作

一、docker的一些基础操作命令

1.列出镜像列表

docker image ls   
docker image ls | grep mysql

在这里插入图片描述
2.创建并运行容器:
-name是命名 -e是参数 -d是后台运行

docker run --name dockermysql -e MYSQL_ROOT_PASSWORD=12345 -d mysql:5.6 --lower_case_table_names=1

在这里插入图片描述
3. 查看容器列表
默认查看运行状态时的容器列表

docker ps 

查看容器所有状态

docker ps -a 

在这里插入图片描述
4.查看容器的日志文件

docker logs dockermysql

5.查看容器的结构:

docker inspect dockermysql

6.从容器外往容器内copy:

docker cp /root/scott.sql dockermysql:/root/

7.和容器进行交互
(1)进入容器内并执行mysql命令:

docker exec -it dockermysql mysql -uroot -p12345

(2)另一种与容器交互的方式
进入容器中:

docker exec -it dockermysql /bin/bash
pwd
ls
ll
ls -l

在这里插入图片描述

where my sql
which my sqld

在这里插入图片描述
(3)退出docker容器

exit

二、在docker数据库中使用sql文件导入scott数据库

1.修改sql文件
在根目录下本来有scott.sql文件,但是由于目前有大小写区分的问题,所以需要修改emp表名为EMP

vi scott.sql

附上scott.sql代码

create database scott;
use scott;

CREATE TABLE DEPT (DEPTNO int PRIMARY KEY,DNAME VARCHAR(14) ,LOC VARCHAR(13));

INSERT INTO DEPT VALUES (10,'ACCOUNTING','NEW YORK');
INSERT INTO DEPT VALUES (20,'RESEARCH','DALLAS');
INSERT INTO DEPT VALUES (30,'SALES','CHICAGO');
INSERT INTO DEPT VALUES (40,'OPERATIONS','BOSTON');


CREATE TABLE EMP(EMPNO int PRIMARY KEY, ENAME VARCHAR(10),JOB VARCHAR(9),MGR int,HIREDATE DATE, SAL double(7,2),COMM Double(7,2),DEPTNO int);

INSERT INTO EMP VALUES(7369,'SMITH','CLERK',7902, '1980-12-17', 800,NULL,20);
INSERT INTO EMP VALUES(7499,'ALLEN','SALESMAN',7698, '1981-2-20', 1600,300,30);
INSERT INTO EMP VALUES(7521,'WARD','SALESMAN',7698, '1981-2-22', 1250,500,30);
INSERT INTO EMP VALUES(7566,'JONES','MANAGER',7839, '1981-4-2', 2975,NULL,20);
INSERT INTO EMP VALUES(7654,'MARTIN','SALESMAN',7698, '1981-9-28', 1250,1400,30);
INSERT INTO EMP VALUES(7698,'BLAKE','MANAGER',7839, '1981-5-1', 2850,NULL,30);
INSERT INTO EMP VALUES(7782,'CLARK','MANAGER',7839, '1981-6-9', 2450,NULL,10);
INSERT INTO EMP VALUES(7788,'SCOTT','ANALYST',7566, '87-7-13',3000,NULL,20);
INSERT INTO EMP VALUES(7839,'KING','PRESIDENT',NULL, '1981-11-17', 5000,NULL,10);
INSERT INTO EMP VALUES(7844,'TURNER','SALESMAN',7698, '1981-9-8', 1500,0,30);
INSERT INTO EMP VALUES(7876,'ADAMS','CLERK',7788, '1987-7-13',1100,NULL,20);
INSERT INTO EMP VALUES(7900,'JAMES','CLERK',7698, '1981-12-3', 950,NULL,30);
INSERT INTO EMP VALUES(7902,'FORD','ANALYST',7566, '1981-12-3', 3000,NULL,20);
INSERT INTO EMP VALUES(7934,'MILLER','CLERK',7782, '1982-1-23', 1300,NULL,10);



CREATE TABLE SALGRADE( GRADE INT,LOSAL INT,HISAL INT);

INSERT INTO SALGRADE VALUES (1,700,1200);
INSERT INTO SALGRADE VALUES (2,1201,1400);
INSERT INTO SALGRADE VALUES (3,1401,2000);
INSERT INTO SALGRADE VALUES (4,2001,3000);
INSERT INTO SALGRADE VALUES (5,3001,9999);

2.将sql文件从宿主机中复制到docker内部mysql容器中
直接在内部数据库中source sql文件会报错因为无法直接获取到文件,所以先将文件传送到docker内部

docker cp /root/scott.sql dockermysql:/root/

3.在数据库中导入数据库

source /root/scott.sql;

4.在数据库中 查看是否导入成功

use scott;
show tables;

在这里插入图片描述

三、使用宿主机的mysql 连接 容器中的msyql数据库

1.停止本机的mysqld服务

systemctl stop mysqld 

2.删除已经创建的容器dockermysql

标准删除为

docker rm dockermysql

此处强制删除,

docker rm -f dockermysql

无论容器是否没有关闭,可以解决很多报错
比如Error response from daemon: You cannot remove a running container 83b19d40c65a5265c32b022e7c059e9588ba85ee71150457a033d517083ff6b1. Stop the container before attempting removal or force remove

在这里插入图片描述
运行以下命令将宿主机mysql和容器内部mysql连接
-p 指宿主机

docker run --name dockermysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=12345 -d mysql:5.6 --lower_case_table_names=1

进入数据库的方式

mysql -uroot -p12345 -h172.17.0.2

在这里插入图片描述
获取地址(IPAddress)的方法

docker  inspect dockermysql | grep Address

在这里插入图片描述
附图:
docker结构示意

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值