TypechoJoeTheme

王子博客

用户名
密码
用户名
邮箱

docker系列

王子博主
2017-09-07
/
0 评论
/
133 阅读
/
1319 个字
/
百度已收录
09/07
本文最后更新于2022年09月07日,已超过603天没有更新。如果文章内容或图片资源失效,请留言反馈,我会及时处理,谢谢!
  • 内核版本需要3.10以上
  • 查看内核版本命令 uname -r

1、更新yum源

[root@localhost ~]# yum -y update

2、安装依赖包

[root@localhost ~]# yum -y install yum-utils device-mapper-persistent-data lvm2

3、设置docker的yum源

[root@localhost ~]# yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo    # 官方
[root@localhost ~]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo # 阿里云

4、安装Docker

[root@localhost ~]# yum -y install docker-ce docker-ce-cli containerd.io

5、Docker服务启动、重启、停止及状态查看

[root@localhost ~]# systemctl start docker      # 启动
[root@localhost ~]# systemctl restart docker     # 重启
[root@localhost ~]# systemctl status docker     # 状态
[root@localhost ~]# systemctl stop docker     # 停止
[root@localhost ~]# systemctl enable docker     # 设置开机自启

6、验证

[root@localhost ~]# docker version

7、Docker加速器

登录阿里云获取加速地址 https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors

Linux中配置加速地址

[root@localhost ~]# vim /etc/docker/daemon.json
[root@localhost ~]# systemctl daemon-reload # 重启daemon
[root@localhost ~]# systemctl restart docker # 重启docker
{
    "registry-mirrors": ["https://wxvujlxd.mirror.aliyuncs.com"]
}

8、其他

[root@localhost ~]# docker --help                # 查看帮助文档
[root@localhost ~]# docker info                 # 查看概要信息
[root@localhost ~]# docker images                # 查看本地镜像
  • 修改docker存储路径docker默认存储路径在/var/lib/docker文件夹下,这个目录的空间一般不是很大,因此需要修改存储路径
[root@localhost ~]# vim /usr/lib/systemd/system/docker.service
  • 增加改参数 ,找到 ExecStart=/usr/bin/dockerd 部分所在的行,大约在第13行,行尾增加参数
--graph /data/docker
  • 重新加载配置文件并重启服务
[root@localhost ~]# systemctl daemon-reload
[root@localhost ~]# systemctl restart docker

9.安装

9.1.docker安装redis
9.1.1.获取redis镜像
docker pull redis
查看镜像来源:
docker search redis

指定版本号:
docker pull redis:4.0.9

9.1.2.查看本地镜像
docker images

9.1.3.然后启动容器,做映射
  • ①创建配置文件目录存放redis.conf,文件从官网下载。
  • ②创建文件夹,新建配置文件贴入从官网下载的配置文件并修改
mkdir /usr/local/docker/redis     # 将配置文件上传到这个文件中
  • ③修改启动默认配置(从上至下依次):
bind 127.0.0.1      #注释掉这部分,这是限制redis只能本地访问

protected-mode no   #默认yes,开启保护模式,限制为本地访问

daemonize no#默认no,改为yes意为以守护进程方式启动,可后台运行,除非kill进程,改为yes会使配置文件方式启动redis失败

databases 16 #数据库个数(可选)

dir  ./ #输入本地redis数据库存放文件夹(可选)

appendonly yes #redis持久化
9.1.4.docker启动redis命令
docker run -p 6379:6379 --name myredis -v /usr/local/docker/redis/redis.conf:/etc/redis/redis.conf -v /usr/local/docker/redis/data:/data -d redis redis-server /etc/redis/redis.conf --appendonly yes

docker run -p 6379:6379 --name myredis -v /home/docker/redis/redis.conf:/etc/redis/redis.conf -v /home/docker/redis/data:/data -d redis redis-server /etc/redis/redis.conf --appendonly yes
docker run -p 6379:6379 --name redis -v /home/docker/redis/redis.conf:/etc/redis/redis.conf  -v /home/docker/redis/data:/data -d redis redis-server /etc/redis/redis.conf --appendonly yes


docker run --name myredis -p 6379:6379 -v /home/docker/redis/data:/data -v /home/docker/redis/conf/redis.conf:/etc/redis/redis.conf -d redis redis-server /etc/redis/redis.conf --appendonly yes
命令解释说明:
![20190214161018446](D:\笔记文件\图片引用\20190214161018446.png)-p 6379:6379 端口映射:前表示主机部分,:后表示容器部分。

--name myredis  指定该容器名称,查看和进行操作都比较方便。

-v 挂载目录,规则与端口映射相同。

为什么需要挂载目录:个人认为docker是个沙箱隔离级别的容器,这个是它的特点及安全机制,不能随便访问外部(主机)资源目录,所以需要这个挂载目录机制。

-d redis 表示后台启动redis

redis-server /etc/redis/redis.conf  以配置文件启动redis,加载容器内的conf文件,最终找到的是挂载的目录/usr/local/docker/redis/redis.conf

--appendonly yes  开启redis 持久化
9.1.5.查看是否运行成功
docker ps   #查看运行的容器

查看启动日志
docker logs myredis/27ddba64faa6  (容器名称/id)

9.1.6.docker基本命令:
docker images    # 查看所有镜像
docker rmi  镜像name/镜像id   # 删除镜像(会提示先停止使用中的容器)
docker ps -a  # 查看所有容器
docker logs 容器名称/容器id   # 查看容器运行日志
docker stop 容器name/容器id    # 停止容器运行
docker start 容器name/容器id   # 终止容器后运行
docker restart 容器name/容器id   # 容器重启
docker rm 容器name/容器id   # 删除容器
9.2docker 安装rabbitmq
9.2.1 获取镜像
docker pull rabbitmq:3-management
9.2.2 启动镜像
docker run -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=123456 --name RabbitMQ --hostname mq1 -p 15672:15672 -p 5672:5672 -d rabbitmq:3-management
9.2.3 启动时的参数说明
* RABBITMQ_DEFAULT_USER=rabbitmq:用户名
* RABBITMQ_DEFAULT_PASS=rabbitmq:密码
* 将来我们去访问MQ或者是登录MQ管理平台,都需要这个账号和密码
* --name RabbitMQ:定义容器名称
* --hostname mq1:定义MQ主机名称
* -p 15672:15672 :映射端口15672------>RabbitMQ管理平台的端口
* -p 5672:5672:映射端口5672------>RabbitMQ消息通信的端口,消息的收发都通过这个端口
* -d:后台运行
* rabbitmq:镜像名称,不加版本号默认为latest版本
9.3docker 安装nginx
9.3.1 安装Nginx镜像
docker pull nginx
9.3.2 创建挂载目录
mkdir /usr/local/docker/nginx        #创建项目目录
mkdir /usr/local/docker/nginx/conf     #创建配置文件的文件夹
mkdir /usr/local/docker/nginx/www      #放项目的地址
9.3.3 启动nginx容器
docker run -p 80:80 --name mynginx -v /usr/local/docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /usr/local/docker/nginx/www:/home/nginx/www -d nginx

docker run -p 80:80 --name mynginx -v /var/docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /var/docker/nginx/www:/home/nginx/www -d nginx
9.3.4 nginx.conf配置放入到conf的文件夹中
worker_processes  1;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;


    sendfile        on;
    #tcp_nopush     on;


    #keepalive_timeout  0;
    keepalive_timeout  65;


    #gzip  on;


    server {
        listen       80;
        server_name  localhost;


        # Vue路由模式为history需添加的配置
        location / {
            if (!-e $request_filename) {
                rewrite ^(.*)$ /index.html?s=$1 last;
                break;
            }
            root   /usr/local/docker/nginx/www;
            index  index.html;
        }


        # 获取真实IP以及Websocket需添加的配置
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header REMOTE-HOST $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";


        # 客户端Body大小限制(文件上传大小限制配置)
        client_max_body_size 5m;


        error_page   500 502 503 504 404  /50x.html;
        location = /50x.html {
            root   html;
        }


    }
}
9.3.5 将一个html文件放入到www文件中
<!DOCTYPE html>
<html lang="">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width,initial-scale=1.0">
    <meta http-equiv="Expires" content="0">
    <meta http-equiv="Pragma" content="no-cache">
    <meta http-equiv="Cache-control" content="no-cache">
    <meta http-equiv="Cache" content="no-cache">
    <link rel="icon" href="<%= BASE_URL %>favicon.ico">
    <title>测试nginx</title>
  </head>
  <body>
    <h2> 测试nginx是否已经开始运行</h2>
  </body>
</html>
9.4 Docker安装Nexus搭建Maven私服
9.4.1 拉取镜像
docker pull sonatype/nexus3
9.4.2 创建挂载目录
mkdir -vp /usr/local/docker/nexus-data
9.4.3 启动容器
docker run -d --name nexus3 -p 8081:8081 -v /usr/local/docker/nexus-data:/var/nexus-data --restart always sonatype/nexus3
9.4.4 查询admin的密码
docker exec -it 550dd77a89e1 /bin/bash
vi /nexus-data/admin.password
exit
9.5 Docker安装Nacos
9.5.1 搜索镜像版本
docker search nacos      #搜索nacos的镜像
9.5.2 安装镜像
docker pull nacos/nacos-server     #获取最新的镜像
9.5.3 创建挂载目录
mkdir -p  /usr/local/docker/nacos/logs     # 存放日志文件

mkdir -p  /usr/local/docker/nacos/init.d   #存放配置文件

###      在init.d下新建文件 custom.properties

vim   /usr/local/docker/nacos/init.d/custom.properties

management.endpoints.web.exposure.include=*    #配置文件中的内容设置为这个
9.5.4 查看镜像
docker images    #查看镜像
9.5.5 启动nacos
docker run -d --name mynacos -p 8848:8848 -p 9848:9848 -p 9849:9849 -e MODE=standalone -e PREFER_HOST_MODE=hostname -v /usr/local/docker/nacos/init.d/custom.properties:/home/nacos/init.d/custom.properties -v/usr/local/docker/nacos/logs:/home/nacos/logs --restart always nacos/nacos-server

### 8848端口为网页端口,9848,9849为nacos2.0以上必须开放的新端口
9.5.6 关于springboot中的pom.xml的配置文件集成nacos
#  java 父工程pom.xml 配置

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>Hoxton.SR10</version>
            <scope>import</scope>
            <type>pom</type>
        </dependency>
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-alibaba-dependencies</artifactId>
            <version>2.2.7.RELEASE</version>
            <scope>import</scope>
            <type>pom</type>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.20</version>
        </dependency>
    </dependencies>
</dependencyManagement>



# java 子工程pom.xml 配置


<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>


    <!--使用nacos作为注册中心时,必须依赖的包-->
    <!-- https://mvnrepository.com/artifact/com.alibaba.cloud/spring-cloud-starter-alibaba-nacos-discovery -->
    <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        <version>2021.1</version>
    </dependency>
</dependencies>
9.5.7 关于项目中的配置文件的
spring:
        application:
            name: based-app-service
        cloud:
             nacos:
               discovery:
                 ip: ${REGISGE_URL:192.168.1.184}
                 port: ${REGISGE_PORT:19001}
                 enabled: true
                 server-addr: ${NACOS_URL:192.168.1.222:8848}
                 username: ${USER_NAME:nacos}
                 password: ${PASSWORD:nacos} 
server:
       port: 8000
9.6 Docker安装mysql
9.6.1 查看mysql的版本
docker search mysql
9.6.2 拉取mysql的镜像
docker pull mysql:8.0.25
9.6.3 创建载目录
mkdir  /usr/local/docker/mysql

mkdir  /usr/local/docker/mysql/date    #创建放数据卷的文件

mkdir   /usr/local/docker/mysql/logs    #创建放日志的文件

mkdir  /usr/local/docker/mysql/conf    #创建放配置的文件

cd  /usr/local/docker/mysql/conf       #进入到配置文件目录

touch my.cnf                           #创建配置文件
9.6.4 开始启动mysql
docker run -p 3306:3306 --name mysql -v /usr/local/docker/mysql/conf:/etc/mysql/conf.d -v /usr/local/docker/mysql/logs:/logs -v //usr/local/docker/mysql/date:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=yuankai -d mysql:8.0.25


docker run -p 3306:3306 --name mysql -v /home/docker/mysql/conf:/etc/mysql/conf.d -v /home/docker/mysql/logs:/logs -v /home/docker/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=yuankai -d mysql:8.0.25


-d: 后台运行容器
-p 将容器的端口映射到本机的端口
-v 将主机目录挂载到容器的目录
-e 设置参数
9.7 Docker安装gogs
9.7.1 在安装gogs之前,已有mysql数据库
1、新建一个【gogs】数据库, utf-8
9.7.2 拉取镜像
docker pull gogs/gogs
9.7.2 启动镜像
docker run -d --name=mygogs -p 10022:22 -p 3000:3000 -v /usr/local/docker/gogs/data:/data gogs/gogs


docker run -d --name=mygogs -p 10022:22 -p 3000:3000 -v /home/docker/gogs/data:/data gogs/gogs --appendonly yes

注意挂载目录的创建
mkdir 文件夹名称
9.7.3 开始访问地址做初始化配置
http://ip:3000

1. 设置数据库

2. 设置域名地址

3. 设置管理账户
docker
朗读
赞(0)
版权属于:

王子博客

本文链接:

http://120.78.163.174/index.php/archives/175/(转载时请注明本文出处及文章链接)

评论 (0)