docker容器相关

目录

Docker安装

卸载Docker(可选)

docker制作jar镜像

1.在根创建目录/u01/soft/3d-map,并将项目jar包与配置文件yml复制到该目录下

2.创建Dockerfile文件,文件内容:

 docker部署前端

1、本地创建nginx挂载路径

2、简单启动一个nginx服务(仅用来复制配置文件,复制完即删除此容器)

3、复制nginx配置文件到宿主机

4、移除容器

5、修改配置文件

6、创建nginx网络

7、创建容器

8、前端文件放在/home/java/nginx/html文件夹下并解压

9、访问页面80端口查看

安装oracle

启动容器

容器内环境配置

进入 oracle 命令行

安装完毕,用Navicat测试链接

新建用户

根据情况分配权限

redis安装

elasticsearch安装

1 拉取elasticsearch镜像

2 创建用于挂载的目录

3 使用镜像创建容器

增加es内存

5 配置ik分词器

1、进入es容器

2、下载ik插件

3、把ik配置文件复制到挂载文件夹/u01/soft/elasticsearch/plugins/analysis-ik/下面

4、修改es容器的analysis-ik的目录名

5、退出容器重命名配置文件夹

6、退出es容器,配置自定义远程扩展字典

kibana安装


Docker安装

设置仓库。新主机上首次安装Docker Engine-Community之前,需要设置Docker仓库。此后可从仓库安装和更新Docker。

在设置仓库之前,需先按照所需的软件包。yum-utils提供了yum-config-manager,并且device mapper存储驱动程序需要device-mapper-persistent-data和lvm2。

$ sudo yum install -y yum-utils \
  device-mapper-persistent-data \
  lvm2

执行上述命令,安装完毕即可进行仓库的设置。使用官方源地址设置命令如下:

$ sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

通常,官方的源地址比较慢,可将上述的源地址替换为国内比较快的地址:

  • 阿里云:http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

  • 清华大学源:https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo

仓库设置完毕,即可进行Docker的安装。

进入docker文件夹执行一下命令,安装最新版本的 Docker Engine-Community 和 containerd。

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

docker-ce为社区免费版本。稍等片刻,docker即可安装成功。但安装完成之后的默认是未启动的,需要进行启动操作。

如果不需要docker-ce-cli或containerd.io可直接执行如下命令:

yum install -y docker-ce

卸载Docker(可选)

卸载历史版本。这一步是可选的,如果之前安装过旧版本的Docker,可以使用如下命令进行卸载:

yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-selinux \
                  docker-engine-selinux \
                  docker-engine \
                  docker-ce

常用命令

启动   systemctl start docker
重启   systemctl restart docker
关闭   systemctl stop docker
firewall-cmd --list-ports
firewall-cmd --zone=public --add-port=80/tcp  --permanent
firewall-cmd --reload

查看镜像:docker images
拉取镜像:docker pull 镜像名
镜像改名 docker image tag ID  名称:版本
删除镜像 docker rmi -f 名称
运行镜像  docker --name 从命名 run -d -p 8080:8080 镜像名称:版本
更新默认启动 docker update redis --restart=always

查看所有容器:docker ps -a
进入容器 docker exec -it 【容器id或名称】 bash
不启动进入容器 docker run -it --rm --entrypoint="" 容器名 /bin/bash
删除容器 docker rm -f ID

启动(停止的)容器:docker start 容器ID
停止容器:docker stop  容器ID
重启容器:docker restart 容器ID
启动日志  docker logs  容器id

docker制作jar镜像

1.在根创建目录/u01/soft/3d-map,并将项目jar包与配置文件yml复制到该目录下

1.1将下载好的jdk8也放在上述目录下,jdk名称与下面Dockerfile中对上

2.创建Dockerfile文件,文件内容:

# 设置本镜像需要使用的基础镜像
FROM openjdk:8-jre
#FROM java:8

ENV TZ=PRC
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

# 把jar包添加到镜像中
ADD 3d-map.jar /3d-map.jar
 
# 镜像暴露的端口
EXPOSE 8090
 
RUN bash -c 'touch /3d-map.jar'

RUN mkdir -p config

COPY application.yml /config/  
  
# 容器启动命令
ENTRYPOINT ["java","-jar","/3d-map.jar", "--spring.config.location=/config/application.yml", "-Duser.timezone=GMT+08", ">/dev/null 2>&1 &"]

# 设置时区
# RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezon

在上级目录/soft路径下执行命令

docker build -t 3d-map -f dockerfile .

至此镜像制作完毕,然后制作容器并启动,注意 - 可能变成中文 - 

docker run --name 3d -p 8090:8090 \
--network host --privileged=true \
-v /home/docker/3d/config:/config  \
-v /home/docker/3d/3d-map.jar:/3d-map.jar  \
-v /home/docker/3d-map/3d/logs:/home/docker/3d-map/3d/logs  \
-d 3d-map

 docker部署前端

拉取docker中nginx镜像

docker pull nginx

1、本地创建nginx挂载路径


mkdir /home/java/nginx/conf

mkdir /home/java/nginx/conf.d

mkdir /home/java/nginx/html

2、简单启动一个nginx服务(仅用来复制配置文件,复制完即删除此容器)

docker run --name nginx_test -d -p 80:80 nginx

3、复制nginx配置文件到宿主机

docker cp nginx_test:/etc/nginx/conf.d /home/java/nginx/conf.d/
docker cp nginx_test:/etc/nginx/nginx.conf /home/java/docker/nginx/conf/
docker cp nginx_test:/usr/share/nginx/html/ /home/java/nginx/html/

4、移除容器

docker rm -f nginx_test

5、修改配置文件


user  root;
worker_processes  auto;

error_log  /var/log/nginx/error.log notice;
pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}

#stream {
#
#
#upstream test {
#
#    server    128.168.11.111:6000;
#    server    128.168.11.112:6000;
#    server    128.168.11.113:6000;
#}
#
#
#
#server {
#
#    listen    2000 so_keepalive=on;
#
#    proxy_pass    test  ;
#        proxy_timeout 60000s; 
#        proxy_connect_timeout 60000s; 
#
#
#    proxy_responses 0;
#}
#
#}


http {	
    include       /etc/nginx/mime.types;
    #default_type  application/octet-stream;
    	upstream test1 {
			server    192.168.10.63:8080;
#			server    128.168.11.112:6000;
#			server    128.168.11.113:6000;
		}

    server {
        listen       80;
        #server_name   localhost;
		#vue-router配置
		#location / {
		#	try_files $uri $uri/ @router;
		#	index index.html;
		#}
		#location @router {
		#	rewrite ^.*$ /index.html last;
		#}
        #location / {
        #    root  html;
        #    index index.html index.htm;
        #} 	

        location / {
            alias  /usr/share/nginx/html/dist/;
            index index.html index.htm;
            try_files $uri $uri/ /index.html;
        }
		
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root  html;
        }
		
		location /MOC {
			proxy_pass http://test1;
			#proxy_set_header Host $host;
			#proxy_set_header X-Forwarded-Proto $scheme;
			#proxy_set_header X-Forwarded-Port $server_port;
			#proxy_set_header X-Forwarded-Host $host;
			#proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
			#default_type text/html;
			#add_header Content-Type "text/html;charset=utf-8";
			#add_header 'Access-Control-Allow-Origin' '*';
			#add_header 'Access-Control-Allow-Credentials' 'true';
			#add_header 'Access-Control-Allow-Methods' 'GET, POST';
			#rewrite /MOC/(.*)$ /$1 break;
		}
		
		

	}	
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    #gzip  on;

    include /etc/nginx/conf.d/*.conf;
}

6、创建nginx网络

docker network create nginx_network

7、创建容器

docker run --name nginx -p 80:80 \
-v /home/java/nginx/conf.d/default.conf:/etc/nginx/conf.d/default.conf \
-v /home/java/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /home/java/nginx/html/:/usr/share/nginx/html/ \
-v /home/java/nginx/logs/:/var/log/nginx/ \
--privileged=true -d --restart=always nginx

8、前端文件放在/home/java/nginx/html文件夹下并解压

unzip dist.zip

9、访问页面80端口查看

安装oracle

使用阿里镜像直接拉取 docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g

启动容器


docker run -d -it -p 1521:1521 --name oracle11g --restart=always registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g

查看运行状态 docker ps -a

容器内环境配置

进入容器 docker exec -it oracle11g bash

切换到 root 用户 su root,密码为 helowin

配置环境变量 vi /home/oracle/.bashrc,在文件最后加入以下命令

export ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_2

export ORACLE_SID=helowin

export PATH=$ORACLE_HOME/bin:$PATH

保存并退出。然后使用 source /home/oracle/.bashrc 刷新环境变量,并使之生效

进入 oracle 命令行

使用 sqlplus /nolog 进入oracle命令行


使用 “操作系统认证” 的方式,登录oracle conn / as sysdba


如果直接使用默认的 root 用户登录,会报登录失败。这里必须退出后使用 su - oracle 命令,将当前用户切换到 oracle,然后在执行登录命令

阿里的这个镜像,所有的密码都是统一的 helowin

system用户具有DBA权限,但是没有SYSDBA权限。平常一般用该帐号管理数据库。
而sys用户是Oracle数据库中权限最高的帐号,具有“SYSDBA”和“SYSOPER”权限,一般不允许从外部登录

防火墙要允许 1521 端口,外部的数据库管理工具才能连的上

开防火墙-查列表-开端口-重启防火墙
systemctl stop firewalld
systemctl status firewalld
systemctl start firewalld
firewall-cmd --list-ports
firewall-cmd --zone=public --add-port=80/tcp  --permanent
firewall-cmd --reload

安装完毕,用Navicat测试链接

新建用户

 

根据情况分配权限

点击保存,用户创建完成,就可以建表了

idea链接

# Spring配置
spring:
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    driverClassName: oracle.jdbc.driver.OracleDriver
    druid:
      # 主库数据源
      master:
        url: jdbc:oracle:thin:@128.168.11.130:1521/helowin
        username: MOC
        password: 1qaz@WSX

注:如果已有数据结构,则点击工具,同步原本数据库结构到新数据库即可

redis安装

#下载镜像并指定版本

docker pull redis:6.0

#创建本地映射目录用于挂载redis 配置文件和数据文件(便于以后修改配置文件)

mkdir -p /home/docker/redis/conf/
mkdir -p /home/docker/redis/data/

#修改文件权限为可编辑 表示所有文件

chmod -R 777 /home/docker/

下载配置文件 redis.conf,两种方式(推荐第二种):

1、下载配置文件 redis.conf
redis.conf文件可以到官网(http://www.redis.cn/download.html)下,然后再上传到服务器:,下载后找到redis.conf这个文件上传到服务器

 
2、命令下载配置文件 redis.conf
进入conf文件夹目录,进行下载

wget http://download.redis.io/redis-stable/redis.conf

#vim修改配置文件
bind 127.0.0.1 #注释掉这部分,使redis可以外部访问

#创建容器

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

打开容器自启docker update redis --restart=always

#参数说明
appendonly yes #开启AOF模式

appendfilename “appendonly.aof” #保存数据的AOF文件名称

-p 6379:6379 端口映射:前表示主机部分,:后表示容器部分。

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

-v 挂载文件或目录 :前表示主机部分,:后表示容器部分。

-d redis 表示后台启动redis
/home/docker/redis/conf 配置文件目录
redis-server /etc/redis/redis.conf以配置文件启动redis,加载容器内的conf文件,最终找到的是挂载的目录/home/docker/redis/conf

–appendonly yes 开启redis 持久化

redis安装完成

elasticsearch安装

1 拉取elasticsearch镜像

docker pull elasticsearch:7.9.3

2 创建用于挂载的目录

mkdir -p /home/docker/elasticsearch/conf
mkdir -p /home/docker/elasticsearch/data
mkdir -p /home/docker/elasticsearch/plugins
chmod -R 777 /home/docker/elasticsearch/
echo "http.host: 0.0.0.0" >> /home/docker/elasticsearch/config/elasticsearch.yml

修改配置文件,添加跨域

http.host: 0.0.0.0
http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-methods: OPTIONS,HEAD,GET,POST,PUT,DELETE
http.cors.allow-headers: Content-Type,Accept,Authorization,x-requested-with

3 使用镜像创建容器

注:如果创建容器时plugins里有ik插件,可能会报错,所以先创建容器再下载ik插件

 docker run -d --name es --restart=always  -p 9200:9200 -p 9300:9300 \
-v /home/docker/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /home/docker/elasticsearch/data:/usr/share/elasticsearch/data \
-v /home/docker/elasticsearch/logs:/usr/share/elasticsearch/logs \
-v /home/docker/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
-d elasticsearch:7.9.3

-e "discovery.type=single-node" :单节点运行
-e ES_JAVA_OPTS="-Xms64m -Xmx128m":设初始内存64m 最大内存128m
–p:映射宿主主机端口
-v:挂载宿主目录到容器目录
-d:后台运行容器
--restart=always: 开机启动

增加es内存

(1)切换到root用户:
su root

(2)输入命令:
sysctl -w vm.max_map_count=262144

检查修改结果:
sysctl -w vm.max_map_count=262144


(3)修改 /etc/sysctl.conf文件
vim /etc/sysctl.conf
vm.max_map_count=262144
 

5 配置ik分词器

1、进入es容器

docker exec -it es bash

2、下载ik插件

(方式1)直接拉取到plugin


elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.9.3/elasticsearch-analysis-ik-7.9.3.zip

(方式2)官网下载es,再安装

https://github.com/medcl/elasticsearch-analysis-ik/tags

下载完把ik安装包复制到容器的root目录下

docker cp elasticsearch-analysis-ik-7.9.3.zip es:/root/
docker exec -it es elasticsearch-plugin install file:///root/elasticsearch-analysis-ik-7.9.3.zip

3、把ik配置文件复制到挂载文件夹/u01/soft/elasticsearch/plugins/analysis-ik/下面

docker cp es:/usr/share/elasticsearch/config/analysis-ik/ /home/docker/elasticsearch/plugins/analysis-ik/

4、修改es容器的analysis-ik的目录名

mv /usr/share/elasticsearch/config/analysis-ik /usr/share/elasticsearch/config/ik

5、退出容器重命名配置文件夹

mv /home/docker/soft/elasticsearch/plugins/analysis-ik/analysis-ik /home/docker/elasticsearch/plugins/analysis-ik/config

6、退出es容器,配置自定义远程扩展字典

在config下创建一个my.dic文件,作为自定义分词的文件,再把my.dic文件名加入到IKAnalyzer配置文件里面去,

vi /home/docker/elasticsearch/plugins/ik/config/IKAnalyzer.cfg.xml

重启es,即完成ik配置

kibana安装

docker pull kibana:7.9.3

创建文件夹

 启动镜像,创建挂载文件夹

docker run -d --name kibana -p 5601:5601 \
-v /home/docker/kibana/config/kibana.yml:/usr/share/kibana/config/kibana.yml \
kibana:7.9.3
mkdir -p /home/docker/kibana
chmod -R 777 /home/docker/kibana/

配置文件拷贝出来

mkdir -p /home/docker/kibana/config

docker cp kibana:/usr/share/kibana/config /home/docker/kibana/

修改配置文件,重启kibana,访问ip:5601

server.host: "0"
elasticsearch.hosts: [ "http://192.168.10.63:9200" ]
monitoring.ui.container.elasticsearch.enabled: true
# 这里配置中文显示,默认为英文 【English - en (default)、Chinese - zh-CN、Japanese - ja-JP】
i18n.locale: "zh-CN"

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值