Docek是一种容器技术。容器是一种轻量级、可移植、自打包的软件技术,使应用程序能够在几乎任何地方以相同的方式运行。html
使用者能够在笔记本上建立并测试好的容器,无需任何修改就可以在生产系统的虚拟机、物理服务器或公有云主机上运行。mysql
安装docker会用到一下命令linux
//更新apt-get apt-get update //安装docker apt-get install docker.io //配置加速器 tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": [ "https://dockerhub.azk8s.cn", "https://mirror.ccs.tencentyun.com", "https://ytji6dx6.mirror.aliyuncs.com" ] } EOF //重启daemon systemctl daemon-reload //重启docker systemctl restart docker
安装截图以下ios
docker run -p 3306:3306 --name mymysql -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.6
说明:git
docker run
:docker从镜像启动一个容器命令github
--name
:这是docker run命令的参数,给要启动的容器起个名字sql
-p
:端口映射,前面的是宿主端口号,后面的是容器端口号docker
-v
:挂载宿主机目录到镜容器里,前面的是宿主机目录,后面的是容器目录,那么后面的目录为何是/var/lib/mysql呢?执行docker inspect -f {{.Config.Volumes}} bob-mysql
就能够看到了数据库
-e
——指的是环境变量,在启动MySQL镜像时,能够传入一个或多个环境变量修改MySQL实例的配置。这里必定要注意的是启动容器的数据目录已经包含了数据库,这时环境变量就不起做用了。json
MySQL镜像支持一下环境变量
MYSQL_ROOT_PASSWORD
—— 设置MySQL root用户的密码
MYSQL_DATABASE
—— 指定在镜像启动时建立的数据库名称,若是同时指定了MYSQL_USER
,MYSQL_PASSWORD
,则会授予该用户对这个数据库ALL的权限(GRANT ALL)
MYSQL_USER
,MYSQL_PASSWORD
—— 建立一个用户并设置它的密码
MYSQL_ALLOW_EMPTY_PASSWORD
—— 设置为yes
容许容器启动时root用户密码留空
MYSQL_RANDOM_ROOT_PASSWORD
—— 为root用户生成随机密码(使用pwgen
)
MYSQL_ONETIME_PASSWORD
—— 设置root用户初始化完后过时,强制登陆时修改密码。注意这个功能只支持MySQL 5.6+
docker version
docker pull mysql:5.6
说明:
mysql:5.6
是镜像名称和版本号,如果不肯定版本,可使用docker pull mysql
则直接下载最新的版本docker image ls
docker rmi mysql
docker ps
说明:
docker ps -a
:显示全部的容器
docker ps
:显示运行的容器
更多命令使用方法docker ps --help
docker exec -it id /bin/bash
# 退出容器 docker logs -f id
docker stop/start id
docker rm 容器id
docker login
# 使用Dockerfile建立名为 yucy/mysql的镜像 docker build --rm=true -t yucy/mysql
# 将镜像ubuntu:16.04标记为 yucy/ubuntu:V1 镜像 docker tag ubuntu:16.04 yucy/ubuntu:V1
docker push 注册用户名/镜像名
第一次安装virtualbox的时候,没有设置虚拟电脑的保存路径,致使C盘爆满,具体可参考Docker学习:virtualbox安装和配置,下面是另一个很纠结的问题,直到今天才解决!!!
第一次使用docker pull mysql
时,一直提示no matching manifest for unknown in the manifest list entries
在网上查找了不少资料,有解决方法是windows上配置daemon.json
中增长配置"experimental": true
,但是本机是linux虚拟机,在json文件中增长了这个配置选项,再次pull
镜像还是出错。
后来反复查看虚拟机ios文件和docker
的安装要求,发现是虚拟机的版本问题,从新安装ubuntu-16.04.6-server-amd64的虚拟机,问题圆满解决🌛。出现这个文件主要是由于虚拟机安装时的版本选择的是64位的,但是加载的iso文件倒是32位的,因此出现了上面的问题。