在这里我们的应用程序比如redis需要构建成镜像,它作为一个Docker文件就可以进行构建,构建完以后他是在本地的,我们可以推送到镜像服务器,逆向可以拉取到上传的镜像,或者说我们可以保存为压缩包进行相互传递。
在本地的镜像可以传来传去,本身也可以查看和删除
查看镜像
docker? images
删除镜像
?docker rmi
当然查看帮助文档,可以查看docker的所有命令了
?docker --help
比如想看某个命令的作用,也可以这样查看
docker images --help
在这里我们安装mysql作为镜像并且讲解
1.我们先从镜像服务器拉取到MySQL
docker pull mysql:5.7
2.查看镜像
docker images
3.创建两个文件夹用来挂载
补充:-p代表可以嵌套创建多级文件夹
在这里创建挂载是因为镜像是一个整体,删了就没有了,我们可以从外部对应一个文件夹来映射,删了镜像,但是文件还在服务器上
mkdir -p /home/service/mysql/data
mkdir -p /home/service/mysql/conf
4.切换到/home/service/mysql/conf目录
cd /home/service/mysql/conf
5.创建my.cnf文件
补充:如果当前目录下没有名为 "my.cnf" 的文件,touch my.cnf
?命令将创建一个新的空文件。如果该文件已经存在,touch
?命令将更新文件的访问和修改时间戳,但不会改变文件的内容。
touch my.cnf
?"my.cnf" 通常是一个配置文件,用于存储 MySQL 服务器的配置信息。你可以使用文本编辑器(如 vim 或 nano)来编辑这个文件,以设置各种服务器参数。
6.编辑mysql配置信息
vim my.cnf
并且将下面内容粘入
[mysqld]
user=mysql
character-set-server=utf8
default_authentication_plugin=mysql_native_password
default-time_zone = '+8:00'
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
补充:
(如果没有vim就 yum install vim)
7.创建并且运行一个容器
docker run
-d mysql:5.7
--name mysql
-p 3306:3306
-v /home/service/mysql/logs:/logs
-v /home/service/mysql/data:/mysql_data
-e MYSQL_ROOT_PASSWORD=123456
docker run:创建并运行一个容器,可以加-d让容器在后台运行
--name mysql:给容器起个名字,必须唯一?
-p 3306:3306 设置端口映射? 第一个是服务器端口,第二个是容器端口
-v 用服务器的实体文件挂载到数据卷,数据卷对应的容器目录
数据卷(volume)是一个虚拟目录,是容器内目录与宿主机目录之间映射的桥梁。
用真实控制虚拟,虚拟控制容器
-e?设置环境变量? 配置MySQL数据库的root用户的密码为123456
8.进入容器并且交互
docker exec -it mysql bash
9.输入密码登录
mysql -uroot -p
补充:密码不显示
10.mysql->
CREATE USER 'admin'@'%' IDENTIFIED BY '123456';
GRANT ALL ON *.* TO 'admin'@'%';
flush privileges;
11.退出退出? ?查看启动状态
exit
exit
docker ps
docker pull mysql:5.7
docker images
mkdir -p /home/service/mysql/data
mkdir -p /home/service/mysql/con
cd /home/service/mysql/conf
touch my.cnf
vim my.cnf
-----------------------------
[mysqld]
user=mysql
character-set-server=utf8
default_authentication_plugin=mysql_native_password
default-time_zone = '+8:00'
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
-----------------------------------------
docker run -p 3306:3306 --name mysql -v /home/service/mysql/logs:/logs -v /home/service/mysql/data:/mysql_data -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
docker exec -it mysql bash
mysql -uroot -p
123456
--------------------------------------
REATE USER 'admin'@'%' IDENTIFIED BY '123456';
GRANT ALL ON *.* TO 'admin'@'%';
flush privileges;
------------------------------
docker ps
镜像到容器这一步,我们的操作就在重点就在容器的命令了
常用的
docker ps?
可以加参数-a :显示所有的容器,包括未运行的
docker rm -f? 容器