文章目录

  • 一、前言
  • 二、docker下载、安装
  • 1.环境准备
  • 2. 基本命令
  • 3. 开始下载,安装
  • step1:使用yum命令进行安装
  • step2:查看是否安装成功
  • step3:查看当前的docker 服务
  • step4:启动docker服务、查看docker 状态
  • step5:使用docker命令
  • step6:查看docker版本
  • 三、docker操作镜像(以mysql为例)
  • 1. 拉取镜像mysql
  • 2. 拉取镜像,速度很慢
  • 3. **==换镜像拉取地址==**
  • 4. 删除原有镜像,重新拉取,速度很快
  • 四、docker容器常用命令
  • 1、运行容器(以mysql为例)
  • 2、查看运行容器
  • 3、查看所有容器(包括启动失败的)
  • 4、删除容器
  • a、直接删除
  • b、使用docker ps命令查找并删除停止的容器
  • c、删除所有停止的容器
  • 5、查看容器启动日志
  • 五、操作容器(以mysql为例,并操作)
  • 1.运行MySQL
  • 2.操作MySQL
  • 3. 修改SQL 字符集
  • 六、重点
  • 七、docker普通用户的授权


一、前言

  1. Docker学习二(Centos):Docker安装并运行redis(成功运行)
  2. 有兴趣、志同道合的朋友➕VX:Fengfl1222

二、docker下载、安装

1.环境准备

  1. 虚拟机 或者 物理机
  2. Linux系统(centos系统)

2. 基本命令

现在可了解,下面会一 一使用

  1. systemctl start docker :系统启动docker
  2. systemctl stop docker :系统关闭docker
  3. docker images :查看docker安装的镜像。
  4. docker ps :查看docker运行的容器
  5. docker ps -a :查看docker运行的容易,包括已停止容器,本人建议删除

3. 开始下载,安装

step1:使用yum命令进行安装

yum install -y docker

备注:-y 表示不询问 使用默认配置进行安装,等待提示 完毕!

docker中可以下载相同的吗 docker下载地址_docker

step2:查看是否安装成功

yum list installed | grep docker

备注:命令为 查看yum安装完成文件列表 并 筛选docker安装信息 如下

docker中可以下载相同的吗 docker下载地址_docker_02

step3:查看当前的docker 服务

systemctl status docker

docker中可以下载相同的吗 docker下载地址_MySQL_03


状态: Active : inactive(dead),死亡,未开启

step4:启动docker服务、查看docker 状态

systemctl start docker
systemctl status docker

docker中可以下载相同的吗 docker下载地址_MySQL_04


状态:Active(running),已启动。

step5:使用docker命令

docker images

备注:查看docker已经安装的镜像 裸机状态下为空

docker中可以下载相同的吗 docker下载地址_docker_05

step6:查看docker版本

docker version

docker中可以下载相同的吗 docker下载地址_docker_06

三、docker操作镜像(以mysql为例)

1. 拉取镜像mysql

docker search mysql

docker中可以下载相同的吗 docker下载地址_docker_07

2. 拉取镜像,速度很慢

docker pull mysql  // 默认下载最新
docker pull mysql:5.7  //后面指定版本,

备注:第一种默认下载最新版本。

第二种是打tag,冒号后面指定版本,推荐使用这种

docker中可以下载相同的吗 docker下载地址_MySQL_08

3. 换镜像拉取地址

官方地址为国外地址安装缓慢可进行配置
修改镜像文件拉取地址为ustc

vi /etc/docker/daemon.json

备注:insert 编辑内容如下 并esc 输入:wq 保存退出

{
"registry-mirrors":["https://docker.mirrors.ustc.edu.cn"]
}

docker中可以下载相同的吗 docker下载地址_MySQL_09


重启docker 重新进行step1 安装速度变快

4. 删除原有镜像,重新拉取,速度很快

删除镜像

docker rmi mysql:5.7

docker中可以下载相同的吗 docker下载地址_docker_10


直接拉取镜像,速度很快

docker pull mysql:5.7

四、docker容器常用命令

1、运行容器(以mysql为例)

docker run -p 3306:3306 --name mysql02 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:tag  //正确
  1. -p : 端口映射
  2. --name: 给容器命名
  3. -e : 指定密码
  4. -d :指定镜像

还有其他启动参数,不同软件参数不同,可看下面安装mysql案例。

2、查看运行容器

docker ps <container-id>
  1. -p : 端口映射
  2. --name: 给容器命名
    还有其他启动参数,不同软件参数不同,可看下面安装mysql案例。

3、查看所有容器(包括启动失败的)

docker ps -a <container-id>

4、删除容器

a、直接删除

docker rm <container-id>

b、使用docker ps命令查找并删除停止的容器

如果想要删除所有停止的容器,可以结合docker ps命令和awk命令来实现:

docker ps -a -q --filter "status=exited" | awk '{print $1}' | xargs docker rm

c、删除所有停止的容器

docker container prune

5、查看容器启动日志

docker logs <container-id>

五、操作容器(以mysql为例,并操作)

1.运行MySQL

docker run -p 3306:3306 --name mysql02 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:tag  //正确
参数解释
-p : 端口映射
--name: 给容器命名
-e :指定密码
-d :选择镜像

bug1:MySQL容器启动报错

/usr/bin/docker-current: Error response from daemon: oci runtime error: 
container_linux.go:235: starting container process caused "process_linux.go:258: 
applying cgroup configuration for process caused \"Cannot set property 
TasksAccounting, or unknown property.\"".

docker中可以下载相同的吗 docker下载地址_mysql_11


解决:

使用 root 权限登录 Centos。确保 yum 包更新到最新。

因为docker版本,与centos系统版本冲突。linux与docker版本的兼容性问题
命令
sudo yum update

然后问题就可以解决了

2.操作MySQL

docker ps

docker中可以下载相同的吗 docker下载地址_MySQL_12

docker exec -it 容器id bash

进入 到 MySQL 容器

docker中可以下载相同的吗 docker下载地址_MySQL_13

mysql -u root -p   	 // 进入MySQL
show databases  	 // 显示MySQL的 所有数据库
use ‘数据库名’    	 // 进入某个数据库
show tables          // 显示数据库中的所有表
desc  ‘表名’          // 显示表结构
select * from  ‘表’ // sql语句, 对数据进行操作

docker中可以下载相同的吗 docker下载地址_docker_14


docker中可以下载相同的吗 docker下载地址_MySQL_15


docker中可以下载相同的吗 docker下载地址_MySQL_16


docker中可以下载相同的吗 docker下载地址_mysql_17

3. 修改SQL 字符集

mybatis保存对象报错

java.sql.SQLException: Incorrect string value: '\xE5\xBE\xAE\xE4\xBF\xA1...' for column 'userid' at

数据库的编码和Java传递编码不一致 Java为UTF-8

  1. 数据库单击右键→改变数据库→UTF-8
  2. 表同理可得,修改字符集
  3. 如果还是报错 说明字符集没有生效 使用SQL让它生效
//查看库的字符集
SHOW CREATE DATABASE rwff_test; 
//查看表的字符集
SHOW CREATE TABLE  task_up;
//查看字段编码
SHOW FULL COLUMNS FROM rwff_test.task_up;


//修改库的字符集
ALTER DATABASE kepler DEFAULT CHARACTER SET utf8;
//修改表以及字符字段的字符集  走到这一步执行会生效
ALTER TABLE task_up CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;

六、重点

  1. 重点,docker一旦重启,信息就会丢失
    例如,mysql数据库中的信息就会丢失。
  2. 通过DaoCloud安装(推荐)
    访问daocloud 根据自己的系统,按照上面的要求执行对应的命令即可安装成功docker
  3. 常用命令
    查看用户所在组
$ groups  username
例:groups feng

查看 Docker容器 的详细信息:

$ docker inspect 容器名
  1. docker 的镜像与容器都存储在 /var/lib/docker 下面

七、docker普通用户的授权

安装完成之后需要使用root用户才能操作docker,我们还需要将我们使用docker的用户添加到docker组中:
将一个已有用户 username 增加到一个已有用户组 docker 中,使此用户组成为该用户的附加用户组,可以使用带 -a 参数的 usermod 指令。-a 代表 append, 也就是将用户添加到新用户组中而不必离开原有的其他用户组。不过需要与 -G 选项配合使用:

sudo usermod -a -G docker username

下面这步可以不执行:
如果要同时将 username 的主要用户组改为 docker,则直接使用 -g 选项:

usermod -g docker username

如果要将一个用户从某个组中删除,则

gpasswd -d username group

#将用户添加到docker用户组之后,重启docker即可

#Ubuntu下重启命令
sudo service docker restart
#执行完该命令之后,将该用户退出,重新登录即可生效
#CentOS下执行命令:
sudo systemctl restart docker
#同样执行完该命令之后,需将该用户退出重新登录