文章目录
1. 概述
Docker是一个开源的应用容器引擎,一个轻量级容器技术。它支持将软件编译成一个镜像,然后在镜像中各种软件做好配置,将镜像发布出去,其他使用者可以直接使用这个镜像。
docker中常见的概念有:
- 主机(Host) :安装了Docker程序的机器(Docker直接安装在操作系统之上);
- 客户端(Client) :连接docker主机进行操作;
- 仓库(Registry) :用来保存各种打包好的软件镜像;
- 镜像(Images) :软件打包好的镜像;放在docker仓库中;
- 容器(Container) :镜像启动后的实例称为一个容器;容器是独立运行的一个或一组应用
dokcer的使用步骤:
- 安装docker
- 在Docker仓库中搜索需要的软件对应的镜像
- 使用docker运行镜像,镜像会生成对应的docker容器
- 对容器的启动停止等价于对软件的相应操作
2. Docker安装
这里以centos为例进行说命名如何安装docker:
-
首先使用
uname -r命令查看内核版本,确保是3.10及以上[root@izbp15ffbqqbe97j9dcf5dz ~]# uname -r 3.10.0-514.26.2.el7.x86_64 -
使用
yum install docker命令安装docker[root@izbp15ffbqqbe97j9dcf5dz ~]# yum install docker Loaded plugins: fastestmirror, product-id, search-disabled-repos, subscription-manager This system is not registered with an entitlement server. You can use subscription-manager to register. Loading mirror speeds from cached hostfile Package 2:docker-1.13.1-161.git64e9980.el7_8.x86_64 already installed and latest version Nothing to do -
使用
systemctl start docker命令启动docker[root@izbp15ffbqqbe97j9dcf5dz ~]# systemctl start docker [root@izbp15ffbqqbe97j9dcf5dz ~]# docker -v Docker version 1.13.1, build 64e9980/1.13.1 -
使用命令
systemctl enable docker设置docker为开机自启[root@izbp15ffbqqbe97j9dcf5dz ~]# systemctl enable docker Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service. -
如果要停止docker运行,可以使用
systemctl stop docker
3. 常用操作
3.1 镜像操作
| 操作 | 命令 | 说明 |
|---|---|---|
| 检索 | docker search 关键字 eg:docker<br/>search redis | 在docker hub上检索所需的软件的镜像信息 |
| 拉取 | docker pull 镜像名:tag | :tag可选,默认为latest,即最新版本 |
| 查询列表 | docker images | 查看所有本地镜像 |
| 删除 | docker rmi image-id | 删除指定的本地镜像 |
3.2 容器操作
| 操作 | 命令 | 说明 |
|---|---|---|
| 根据镜像启动容器 | docker run ‐‐name mytomcat ‐d tomcat:latest | |
| 查看运行中的容器 | docker ps | |
| 停止运行中的容器 | docker stop 容器id | |
| 启动容器 | docker start 容器id | |
| 删除一个容器 | docker rm 容器id | |
| 启动一个做了端口映射的容器 | docker run ‐d ‐p 8888:8080 tomcat | -d:后台运行;-p: 将主机的端口映射到容器的一个端口 |
| 查看容器的日志 | docker logs container‐name/container‐id | |
4. 安装实例
-
安装:
docker pull mysql[root@izbp15ffbqqbe97j9dcf5dz ~]# docker pull mysql Using default tag: latest Trying to pull repository docker.io/library/mysql ... latest: Pulling from docker.io/library/mysql 8559a31e96f4: Pull complete d51ce1c2e575: Pull complete c2344adc4858: Pull complete fcf3ceff18fc: Pull complete 16da0c38dc5b: Pull complete b905d1797e97: Pull complete 4b50d1c6b05c: Pull complete c75914a65ca2: Pull complete 1ae8042bdd09: Pull complete 453ac13c00a3: Pull complete 9e680cd72f08: Pull complete a6b5dc864b6c: Pull complete Digest: sha256:8b7b328a7ff6de46ef96bcf83af048cb00a1c86282bfca0cb119c84568b4caf6 Status: Downloaded newer image for docker.io/mysql:latest -
端口映射:
docker run ‐p 3306:3306 ‐‐name mysql01 ‐e MYSQL_ROOT_PASSWORD=123456 ‐d mysql -
使用mysql
-
使用
docker run ‐‐name some‐mysql ‐e MYSQL_ROOT_PASSWORD=my‐secret‐pw ‐d mysql:tag ‐‐character‐setserver=utf8mb4 ‐‐collation‐server=utf8mb4_unicode_ci可以指定mysql的一些配置参数
5. 客户端远程连接docker容器中的mysql 报1251错误
5.1 数据库设置
-
进入容器
docker exec -it 容器id bash -
进入mysql
mysql -uroot -p -
对远程连接进行授权
GRANT ALL ON *.* TO 'root'@'%'; -
更改密码的加密规则
ALTER USER 'root'@'%' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER; -
更改root密码
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456'; -
刷新权限
flush privileges; -
查看用户信息
select host,user,plugin,authentication_string from mysql.user;
5.2 云服务器设置
除了进行数据库的相关设置外,还需要配置服务器的安全规则。点击云控制平台左侧的网络与安全 --> 安全—> 配置规则
然后按照以下方式手动添加安全规则
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PAyikD2v-1592896079094)(D:\project\work\Java\SpringBoot\images\配置安全规则.png)]
5.3 配置客户端连接
- 首先需配置SSH通道
- 配置数据库连接的端口号、用户名和密码
- 连接成功
6. 镜像源
使用国内镜像加速下载:docker pull registry.docker-cn.com/myname/myrepo:mytag,例如:
docker pull registry.docker-cn.com/library/ubuntu:16.04