【置顶】centos7下docker下载、安装;更换地址镜像、操作镜像和容器,各种基础命令;docker普通用户的授权;操作容器;持续更新中。。。

一、前言

  1. Docker学习二(Centos):Docker安装并运行redis(成功运行)
  • 有兴趣可以添加我,一起探讨技术。
    • 加V:Fengfl1222,名称:聚星汇智
    • 要资料,申请备注为:CSDN+地方+资料,如CSDN山东资料
    • 想接项目一起努力进步,申请备注为:CSDN+地方+项目,如CSDN+山东+项目,添加成功之后,可以发一份简历。
    • 项目组缺人,想要兼职的人,火速加我进群。
    • 本人介绍:211高校(北京交通大学)计算机研究生,本科双非计算机毕业后,校招进入军工,工作2个月离职后进入阿里,工作两年后离职考研,现已毕业,入职济南某大厂。团队主要技术栈:RAG、LLM、JAVA、PYTHON、GO、VUE、REACT等web开发需求。已有开发团队,如果有空闲时间想一个接项目者,可以加我呦。
    • 不按上诉规则添加好友者,不予通过。

二、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 表示不询问 使用默认配置进行安装,等待提示 完毕!
在这里插入图片描述

step2:查看是否安装成功

yum list installed | grep docker

备注:命令为 查看yum安装完成文件列表 并 筛选docker安装信息 如下
在这里插入图片描述

step3:查看当前的docker 服务

systemctl status docker

在这里插入图片描述
状态: Active : inactive(dead),死亡,未开启

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

systemctl start docker
systemctl status docker

在这里插入图片描述
状态:Active(running),已启动。

step5:使用docker命令

docker images

备注:查看docker已经安装的镜像 裸机状态下为空
在这里插入图片描述

step6:查看docker版本

docker version

在这里插入图片描述

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

1. 拉取镜像mysql

docker search mysql

在这里插入图片描述

2. 拉取镜像,速度很慢

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

备注:第一种默认下载最新版本。
第二种是打tag,冒号后面指定版本,推荐使用这种
在这里插入图片描述

3. 换镜像拉取地址

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

vi /etc/docker/daemon.json

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

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

在这里插入图片描述
重启docker 重新进行step1 安装速度变快

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

删除镜像

docker rmi mysql:5.7

在这里插入图片描述
直接拉取镜像,速度很快

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.\"".

在这里插入图片描述
解决:
使用 root 权限登录 Centos。确保 yum 包更新到最新。

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

然后问题就可以解决了

2.操作MySQL

docker ps

在这里插入图片描述

docker exec -it 容器id bash

进入 到 MySQL 容器
在这里插入图片描述

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

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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 容器名
    
  4. 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
#同样执行完该命令之后,需将该用户退出重新登录
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

java冯坚持

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值