一、安装虚拟机
1,安装vm workStation15或16。安装CentOs7或以上。要求centOS内核高于3.10
uname -r 查看内核版本
2,root权限登记,更新yum
yum -y update
3,卸载旧版本,安装新版本
yum remove docker docker-common docker-selinux docker-engine
4,安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
yum install -y yum-utils device-mapper-persistent-data lvm2
5,设置yum源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
如果想安装docker-ce可以使用国内yum源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
如果安装出错,可以删除.repo文件 在cd /etc/yum.repos.d
路径下
6,查看仓库的docker版本
yum list docker-ce --showduplicates | sort -r
7,安装Docker
sudo yum install -y docker-ce #由于repo中默认只开启stable仓库,故这里安装的是最新稳定版18
8,启动并开机启动
systemctl start docker
systemctl enable docker
9,验证安装
docker version
10,卸载
yum -y remove docker-engine
11,centOS7配置静态IP地址
vi /etc/sysconfig/network-scripts/ifcfg-ens32 #名称可能不是32
若设置静态IP
修改
bootproto=static
onboot=yes
添加
(AAA需要与虚拟网卡同网段)
IPADDR=192.168.AAA.XXX
NETMASK=255.255.255.0
GATEWAY=192.168.AAA.1
DNS1=114.114.114.114
DNS2=8.8.8.8
systemctl restart network #重置网络
二、Docker常用命令
1,搜索镜像
docker search java
- NAME:镜像仓库名称。
- DESCRIPTION:镜像仓库描述。
- STARS:镜像仓库收藏数,表示该镜像仓库的受欢迎程度,类似于 GitHub的 stars
- OFFICAL:表示是否为官方仓库,该列标记为[0K]的镜像均由各软件的官方项目组创建和维护。
- AUTOMATED:表示是否是自动构建的镜像仓库。
cd /etc/docker
#需要修改或新建daemon.json
vim daemon.json
{
"registry-mirrors": ["https://m9r2r2uj.mirror.aliyuncs.com"]
}
#如果有修改,需要重启
service docker restart
2,下载镜像(名称:版本号格式)
docker pull java:8
3,列出镜像
docker images
4,删除镜像
docker rmi java
三、容器命令
1,新建并启动容器
docker run -d -p 91:80 nginx
- -d 后台运行
- -p 宿主机端口:容器端口 #开放容器端口到宿主机端口
2,列出容器
docker ps
#STATUS:表示容器运行的状态。UP表示运行中, Exited表示已停止
3,停止、强制停止、启动、查看、日志容器
docker stop XXXID #停止
docker kill XXXID #强制停止
docker start XXXID #启动
docker inspect XXXID #查看
docker container logs XXXID #查看日志
docker top XXXID #查看进程
docker container exec -it XXXID/bin/bash #进入容器文件
四、使用Dockerfile构建
1,上传jar包到指定目录
cd /app/demo #进入目录
vim Dockerfile #同目录下创建配置文件
2,配置文件格式
From java:8
ADD XXX.jar /app.jar
EXPOSE XXXX
ENTRYPOINT ["java","-jar","/app.jar"]
配置文件分别表示
- 运行的镜像
- 复制指定文件
- 声明端口 如 EXPOSE 8761
- 容器启动后执行的命令
3,构建镜像
docker build -t microservice-name:0.0.1 .
docker build -t 镜像名:版本标签 Dockerfile文件相对位置
4,启动镜像
docker run -p 8761:8761 microservice-name:0.0.1
五、IDEA配置Docker直连
1,配置docker的远程端口
vi /usr/lib/systemd/system/docker.service
#找到ExecStart 最后添加 -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock(-H前面有空格)
2,重启docker
systemctl daemon-reload
systemctl start docker
3,开放端口
firewall-cmd --zone=public --add-port=2375/tcp --permanent
firewall-cmd --reload立即生效
4,idea上配置docker远程连接
view-services
选择添加docker连接
TCP socket 输入ip+port
六、Docker里安装Oracle
1、搜索镜像
docker search oralce
2、拉取镜像
docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
3、启动
docker run -d -p 1521:1521 --name oracle registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
docker start oracle
4、设置用户信息
docker exec -it oracle_11g bash
登录sqlplus,此处发现sqlplus命令不可用,所以需要进行相关配置,操作步骤如下:
(1)、切换到root用户模式下
su root
输入密码helowin
(2)、编辑profile文件配置ORACLE环境变量
(如果找不到sqlplus,请在这执行完输入:source /etc/profile
)
vi /etc/profile 并在文件最后添加如下命令
export ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_2
export ORACLE_SID=helowin
export PATH=$ORACLE_HOME/bin:$PATH
退出并保存。
(3)、软连接
ln -s $ORACLE_HOME/bin/sqlplus /usr/bin
(4)、切回Oracle用户
登录sqlplus并修改sys、system用户密码
sqlplus /nolog
conn /as sysdba
接着执行下面命令
alter user system identified by oracle;
alter user sys identified by oracle;
#oracle关闭和重启:shutdown immediate,startup
(5)、查看连接信息
vi /home/oracle/app/oracle/product/11.2.0/dbhome_2/network/admin/tnsnames.ora
HELOWIN =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = helowin)
)
)
5、使用PL/Sql连接,新建用户并赋权
create user UOP_BASE identified by UOP_BASE;
grant connect,resource,dba to UOP_BASE;
七、idea+gradle本地打可执行的jar包
1、在项目的build.gradle文件的最后加上如下代码
jar {
String someString = ''
configurations.runtime.each {someString = someString + " lib//"+it.name}
manifest {
attributes 'Main-Class': 'xyz.rl2jy.vueadmin.VueadminApplication'
attributes 'Class-Path': someString
}
}
//清除上次的编译过的文件
task clearPj(type:Delete){
delete 'build','target'
}
task copyJar(type:Copy){
from configurations.runtime
into ('build/libs/lib')
}
//把JAR复制到目标目录
task release(type: Copy,dependsOn: [build,copyJar]) {
// from 'conf'
// into ('build/libs/eachend/conf') // 目标位置
}
2、在gralde插件的other里运行任务release即可看到build/libs里的jar包