1、docker简介mysql
docker是一个开源的应用容器引擎;是一个轻量级容器技术; docker支持将软件编译成一个镜像;而后在镜像中各类软件作好配置,将镜像发布出去,其余使用者能够直接使用这个镜像; 运行中的这个镜像称为容器,容器启动是很是快速的。linux
2、docker的核心概念web
docker主机(Host):安装了Docker程序的机器(docker直接安装在操做系统之上); redis
docker客户端(Client):链接docker主机进行操做; sql
docker仓库(Registry):用来保存各类打包好的软件镜像; docker
docker镜像(Images):软件打包好的镜像;放在docker仓库中; shell
docker容器(Container):镜像启动后的实例称为一个容器;容器是独立运行的一个或一组应用
数据库
3、使用docker步骤vim
1)、安装docker centos
2)、去docker仓库找到这个软件对应的镜像(docker hub);
3)、使用docker运行这个镜像,这个镜像就会生成一个docker容器;
4)、对容器的启动中止就是对软件的启动中止;
4、docker的安装与卸载
1)、docker的安装命令
一、检查内核版本,必须是3.10及以上
uname -r
复制代码
# step 1: 安装必要的一些系统工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# Step 2: 添加软件源信息
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# Step 3: 更新并安装 Docker-CE
sudo yum makecache fast
sudo yum -y install docker-ce
# Step 4: 开启Docker服务
sudo service docker start
# 注意:
# 官方软件源默认启用了最新的软件,您能够经过编辑软件源的方式获取各个版本的软件包。例如官方并无将测试版本的软件源置为可用,你能够经过如下方式开启。同理能够开启各类测试版本等。
# vim /etc/yum.repos.d/docker-ce.repo
# 将 [docker-ce-test] 下方的 enabled=0 修改成 enabled=1
#
# 安装指定版本的Docker-CE:
# Step 1: 查找Docker-CE的版本:
# yum list docker-ce.x86_64 --showduplicates | sort -r
# Loading mirror speeds from cached hostfile
# Loaded plugins: branch, fastestmirror, langpacks
# docker-ce.x86_64 17.03.1.ce-1.el7.centos docker-ce-stable
# docker-ce.x86_64 17.03.1.ce-1.el7.centos @docker-ce-stable
# docker-ce.x86_64 17.03.0.ce-1.el7.centos docker-ce-stable
# Available Packages
# Step2 : 安装指定版本的Docker-CE: (VERSION 例如上面的 17.03.0.ce.1-1.el7.centos)
# sudo yum -y install docker-ce-[VERSION]复制代码
安装校验
root@iZbp12adskpuoxodbkqzjfZ:$ docker version
Client:
Version: 17.03.0-ce
API version: 1.26
Go version: go1.7.5
Git commit: 3a232c8
Built: Tue Feb 28 07:52:04 2017
OS/Arch: linux/amd64
Server:
Version: 17.03.0-ce
API version: 1.26 (minimum version 1.12)
Go version: go1.7.5
Git commit: 3a232c8
Built: Tue Feb 28 07:52:04 2017
OS/Arch: linux/amd64
Experimental: false复制代码
2)、docker的卸载命令
#1.查询安装过的包
yum list installed | grep docker
#2.删除安装的软件包
yum -y remove containerd.io.x86_64 docker-ce.x86_64 docker-ce-cli.x86_64
#3.删除镜像/容器等rm -rf /var/lib/docker复制代码
5、docker经常使用命令&操做
说明:咱们常常去docker hub上检索镜像的详细信息,如镜像的TAG。 :tag是可选的,tag表 示标签,多为软件的版本,默认是latest 查看全部本地镜像 删除指定的本地镜像
2.容器操做
6、安装mysql操做实例
docker pull mysql【拉去镜像】
参考docker hub 给出的启动命令选择相应的启动方式
好比:
[root@localhost ~]# docker run -p 3306:3306 --name mysql02 -e MYSQL_ROOT_PASSWORD=123456 -d mysql
ad10e4bc5c6a0f61cbad43898de71d366117d120e39db651844c0e73863b9434
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ad10e4bc5c6a mysql "docker-entrypoint.sh" 4 seconds ago Up 2 seconds 0.0.0.0:3306->3306/tcp mysql02
复制代码
Navicat链接mysql数据库报错问题【client does not support authentication】
解决办法:
更改host为% user为root的用户的authentication_string
host为%方便远程链接
update user set authentication_string = 'root' where user = 'root' and host = '%';
update user set authentication_string = 'root' where user = 'root' and host = 'localhost';
若是还不行使用下面命令: alter user 'root'@'localhost' identified with mysql_native_password by '123456';
alter user 'root'@'%' identified with mysql_native_password by '123456';
docker run -it --name dubbo-admin -d --rm -p 8080:8080 tomcat
复制代码
docker exec -i -t <docker_name> bash
复制代码
#从主机复制到容器
sudo docker cp host_path(宿主机器路径) containerID:container_path(容器路径)
#从容器复制到主机
sudo docker cp containerID:container_path host_path
#例如
sudo docker cp /home/dubbo-admin-2.6.war 603140acbd3c:/usr/local/tomcat/webapps
复制代码
#镜像打包
docker commit -m "提交信息" -a "做者" ${CONTAINER_ID} ${NEW_IMAGE_NAME}
复制代码