首页 > 其他分享 >Docker的安装与使用

Docker的安装与使用

时间:2023-10-10 17:36:01浏览次数:46  
标签:安装 sudo ce 密码 使用 oracle Docker data docker

一、查看Linux内核与版本

       空的服务器需要查看Linux内核与版本,我这里使用的是centos 7.9。Docker需要运行在Centos 7 上要求系统64位,系统内核版本为3.10以上。

        1、查看系统内核

              uname  -a

        2、查看系统版本

              cat /etc/centos-release

二、基础准备

       1、更新yum

             sudo yum update

       2、如果存在旧版本的docker,可以卸载             

sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine

       3、安装存储库

             安装存储库         

             sudo yum install -y yum-utils

             由于docker官方国内访问比较慢,可以设置为阿里的镜像源来完成          

sudo yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

三、安装Docker引擎

       1、安装最新版的Docker Engine 和 containerd             

             sudo yum install docker-ce docker-ce-cli containerd.io

       2、列出并排序在你的repo可用的版本。这个离职根据版本号对结果进行排序,从高到低,并被截断。           

             yum list docker-ce --showduplicates | sort -r

      3、通过其完全限定的包名安装特定版本,即包名(docker-ce)加上从第一个冒号(:)开始的版本字符串(第2列) ,直到第一个连字符,中间用连字符(-)分隔。例如,docker-ce-18.09.1。

             sudo yum install docker-ce-17.12.1.ce docker-ce-cli-17.12.1.ce containerd.io

     4、启动Docker 

            sudo systemctl start docker

     5、运行hello-word镜像          

          sudo docker run hello-world

         注:此命令下载测试映像并在容器中运行它。当容器运行时,它打印一条消息并退出。

四、配置镜像和设置全局容器日志大小

       Docker默认拉取官方镜像(https://hub.docker.com)很慢。可以配置国内镜像源。

               a、docker 官方中国区:https://registry.docker-cn.com

               b、网易:http://hub-mirror.c.163.com

               c、中国科学技术大学:https://docker.mirrors.ustc.edu.cn

       1、编辑配置文件 /etc/docker/daemon.json (没有时会自动新建该文件),上面提到的hello-word运行不了,也是因为缺少该文件,导致镜像拉取失败。

              vim /etc/docker/daemon.json   

             

           2、重启docker守护进程               

systemctl daemon-reload
systemctl restart docker

五、安装Compose

        数据持久化,理解为可以通过编写yaml文件实现一键安装数据库且实现目录挂载,这样即使容器挂了,数据也不会丢失。

       1、下载当前Docker Compose稳定版本

             sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

             注意:执行该个命令需要耐心等待,执行完了会自动跳回命令行。

       2、对二进制文件应用可执行权限          

            sudo chmod +x /usr/local/bin/docker-compose

       3、测试安装            

            docker-compose --version

六、安装Portainer

       Portainer就是Docker容器UI页面,不用每次都要进服务器才能对容器进行查看。

       1、创建Portainer Server 用来存储数据库的卷           

             docker volume create portainer_data

       2、下载并安装 Portainer server 容器

docker run -d -p 8000:8000 -p 9443:9443 --name portainer \
--restart=always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v portainer_data:/data \
portainer/portainer-ce:2.11.1

           注意:如果因为遗留原因需要打开http 端口 9000,在docker run 命令中添加一下命令: -p 9000:9000 

docker run -d -p 8000:8000 -p 9443:9443 -p 9000:9000 --name portainer \
--restart=always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v portainer_data:/data \
portainer/portainer-ce:2.11.1

          已经安装了Portainer 服务器。可以通过docker ps来检查 Portainer server 容器是否启动。

         3、登录Portainer

               浏览器中输入https://服务器ip:9443,可以看到查 Portainer server的初始设置密码创建的用户页面。

           到此,Docker环境就算配置好了。

七、docker-compose安装Mysql,sql server,Oracle数据库

      1、在服务器中任意位置(这里用/usr/local/tools),新建一个Database文件夹,子文件夹为data和yaml。进入yaml文件夹下再新建docker-compose.yaml文件,yaml文件代码如下:

version: '3.1'
services:
  mysql-8:
    image: mysql:8.0.22
    restart: always
    container_name: mysql-8
    environment:
      MYSQL_ROOT_PASSWORD: ****** #自己设置密码
    command:
      --default-authentication-plugin=mysql_native_password
      --character-set-server=utf8mb4
      --collation-server=utf8mb4_general_ci
      --explicit_defaults_for_timestamp=true
      --lower_case_table_names=1
    ports:
      - 3307:3306
    volumes:
      #../data其实就是我们Database文件下的data文件夹,data下面的子文件建可以自己先建好,没有的话也会自动生成,所以没关系,你也可以随意建文件夹,只要这边挂载的时候写对即可,为什么写../相对路径,因为方便迁移到其他机器
      - ../data/mysql/mysql8/data:/var/lib/mysql  
      - ../data/mysql/mysql8/conf:/etc/mysql/conf.d
      - ../data/mysql/mysql8/logs:/logs


  #服务名称
  sqlserver-2019:
    restart: always
    #容器名称
    container_name: sqlserver-2019
    #镜像名称
    image: mcr.microsoft.com/mssql/server:2019-latest
    #端口映射
    ports:
      - 1433:1433
    #挂载
    volumes:
      - ../data/mssql/mssql2019:/var/opt/mssql
    #环境变量
    environment:
      - ACCEPT_EULA=Y
      #SA用户密码长度必须至少为 8 个字符,并包含以下四组中的三组字符:大写字母、小写字母、10 位基数和符号
      - SA_PASSWORD=****** #自己设置密码

  oracle-11:
    hostname: oracle-11
    image: jaspeen/oracle-xe-11g:latest
    restart: always  
    container_name: oracle-11
    expose:
      - 1521
    privileged: true
    environment:
      - TZ=Asia/Shanghai
      - DOCKER_CLIENT_TIMEOUT=120
      - COMPOSE_HTTP_TIMEOUT=120
      - ORACLE_PDB=system   #默认数据库
      - ORACLE_PWD=oracle   #oracle system用户的密码
      - ORACLE_CHARACTERSET=AL32UTF8
    volumes:
      - ../data/oracle/oracle11:/u01/app/oracle
    ports:
      - 1521:1521
View Code

            保存后进入tools文件夹,给Database赋予权限:chmod -R 777 Database ,再回到yaml文件夹执行命令,两种方式:

             a、如果意见安装:docker-compose up -d

             b、如果分容器安装,则加上容器名:

                                           docker-compose up -d mysql-8

                                           docker-compose up -d sqlserver-2019

                                           docker-compose up -d oracle-11

             执行成功后,每个容器会显示done,成功后即可利用Navicat进行链接。

             注意:这里安装的oracle服务名为XE,不是默认的ORCL

八、扩展

       8.1、解决vim安装问题

               进入oracle后想配置一个环境变量,但是由于容器相当于是centos最小化安装,所以不支持vim,这个让我很烦,因为vi实在不方便,所以我打算安装vim,执行 sudo apt install vim却报错了:

           

            【解决方案】:

              1、更新apt                  

                   sudo apt-get update
                   sudo apt-get upgrade

              2、安装vim

                   sudo apt install vim

        8.2、利用Navicat连接Oracle后新建表空间

                  利用sql查询临时表空间存放文件位置                  

                    select name from v$tempfile;

                  上面查出路径后请记住,下面要用:           

create tablespace 表空间名称
datafile '/u01/app/oracle/oradata/XE/Sugonwyydata.dbf' #路径同上个语句查出来的一样,随便编一个dbf文件名即可
size 200m
autoextend on
next 10m;
View Code

                   创建用户并选择表空间                   

create user 用户名

IDENTIFIED BY “密码”

DEFAULT tablespace 表空间名称 ;

        8.3、 授权用户以管理员权限登录                

                  grant dba to 用户名;

                如果想收回管理员权限只想拥有连接,导入,导出权限。              

                  revoke dba from 用户名;

                  grant connect,exp_full_database,imp_full_database to 用户名;

        8.4、添加system用户和新建用户对新建表空间操作的权限          

alter user system quota unlimited on 表空间名称;

grant unlimited tablespace to system;

grant insert any table to system;

grant unlimited tablespace to 新建用户;

       8.5、移除新建用户对标空间的权限

revoke unlimited tablespace from 用户名;

ALTER USER SUGONTEST QUOTA UNLIMITED ON 表空间名称; 

      8.6、利用Portainer上的oracle容器改密码。

              【问题】:用Navicat利用用户名和密码连接oracle,提示密码已过期,但是自己按照提示输入正确的旧密码和设置对应的新密码后无法修改成功提示【ORA-01017:invalid username/password;logon denied】               

                 

             【原因】:由于账号的密码设置了有效期(默认为:180天),可以通过打开Oracle服务器上的sqlplus工具,但是发现突然不知道怎么利用Portainer上的oracle容器改密码。

             【步骤】:

                              1、登录Portainer对应的oracle容器并进入控制台                                                              

                                  

                             2、输入 su - oracle 切换到oracle用户下,再用sqlplus / as sysdba登录oracle系统,这种登录方式使用的是操作系统的验证方式,因此,无需输入用户名和密码即可直接登录进去。

                              

                            利用SELECT * FROM dba_profiles WHERE profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME';查看Oracle账号的密码有效期

                               

                       3、修改密码:alter user 用户名称 identified by 密码;
                             比如:alter user tester01 identified by 123456;
                             注意修改密码时不要带特殊字符,如果带特殊字符记得带双引号,单引号不行!

                      4、如果在使用dba角色使用命令修改账号的密码后,使用Navicat登陆该账号如果提示【ORA-28000:the account is locked】(即账号被锁定的提示),则依旧在Oracle服务器上使用sqlplus工具使用dba角色登陆,

                           输入解锁命令解除该指定账号的锁定状态

                         alter user 需要解锁的账号名称 account unlock;

                     5、如果想设置密码永不过期,则利用ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED ;

                     6、如果解锁了账号之后没多久又被锁定了,那么执行alter profile default limit failed_login_attempts unlimited,这样无论输入多少次都不会被锁定,但此时,数据的安全性将降低。

 

 

标签:安装,sudo,ce,密码,使用,oracle,Docker,data,docker
From: https://www.cnblogs.com/xiaobaicai12138/p/17755063.html

相关文章

  • 【接口测试】如何在 Eolink Apilkit 中使用 cookie ?
    什么是Cookie?Cookie是一种在网站之间传递的小型文本文件,用于存储用户的个人信息和偏好设置。当您访问一个网站时,网站会将Cookie存储在您的浏览器中,并在您下次访问该网站时读取该Cookie。这样,网站可以记住您的登录状态、购物车内容以及其他个性化设置。在编写接口自动化测试用......
  • tinyalsa的使用
    查看各个可操作项的情况tinymixcontents设置某个操作项tinymixset10127播放wav声音tinyplaydidi.wav ......
  • Docker安装Kibana
    环境DebianDocker一、安装kibana#查看看安装的版本dockersearchkibana#安装指定版本dockerpushkibana:8.10.2#查看是否已安装dockerimagels二、启动kibanadockerrun-d\--namekib01\--netes-net\-p5601:5601kibana:8.10.2访问http://xxxx......
  • 蜂窝移动网络:为什么使用蜂窝六边形
    参考链接蜂窝移动通信_百度百科(baidu.com)为什么4G、5G又称为蜂窝网络?跟蜂窝有什么关系?_5g蜂窝网络是什么意思-CSDN博客简述蜂窝移动网络就是现在说的移动通信网络。4G和5G之类的就是指的低代蜂窝移动网络技术和第五代蜂窝移动网络技术。蜂窝移动通信(CellularMobile......
  • vue2,3render函数的简单使用
    render函数的主要作用:创建虚拟DOM:render函数负责创建虚拟DOM元素,这些元素以JavaScript对象的形式表示页面的结构和内容。根据状态和数据生成UI:render函数根据组件的状态(data数据)、属性(props)、计算属性(computed)、方法(methods)等信息,生成虚拟DOM,包括元素、组件、事件......
  • pydantic学习与使用-17.使用 json_encoders 格式化 datetime 类型
    前言使用datetime日期类型时,想格式化成自定义的"%Y-%m-%d%H:%M:%S"格式datetime类型frompydanticimportBaseModelfromdatetimeimportdatetime#上海悠悠wx:283340479#blog:https://www.cnblogs.com/yoyoketang/classUserInfo(BaseModel):id:intna......
  • 最新版Typora激活破解教程,永久使用亲测有效
    Typora是一款简单易用的Markdown编辑器。受到大量程序员的喜爱和使用今天就分享一个激活Typora方法的教程windows,mac版都可以使用一、下载解压下载安装包和补丁包,进行解压  安装包补丁和使用方式......
  • docker搭建pypi服务,实现python包版本永久保存
    1.宿主机上安装htpasswdpipinstall-ihttps://pypi.tuna.tsinghua.edu.cn/simplehtpasswd2.使用htpasswd生成账户和密码htpasswd-schtpasswd.txttestuser3.拉取pypiserver镜像dockerpullpypiserver/pypiserver4.使用docker安装pypi容器4.1.创建数据卷docker......
  • abp 框架使用自定义appsetings.json
    定义一个自定义的配置文件在调试配置中设置启动环境这里的值填入刚刚设置的配置文件appsetings.{配置文件名字}.json的配置文件名字启动即可系统启动时,首先会检查{配置文件名字}是否存在,存在的话使用appsettings.{配置文件名字}.json,不存在则使用appsettings.json(默认配......
  • Window Copolit 安装指北
    视频教程:需要梯子https://www.youtube.com/watch?v=OR4mUmn746U补丁包:链接:https://pan.baidu.com/s/1pui6oVXr-y-8P53qdcBFug提取码:s8ho......