docker安装部署常见软件

docker安装镜像

文章目录

    • docker安装镜像
      • 1 、安装docker
      • 2、安装Portainer可视化工具
      • 3、安装centos基础镜像
      • 4、安装jdk8
      • 5、安装mysql
      • 6、安装redis
      • 7、安装dubbo-admin
      • 8、安装zookeeper
      • 9、安装kafka
      • 10、安装nexus私服
      • 11、安装nacos

1 、安装docker

#1、卸载旧版本(如果安装过旧版本)
yum remove docker docker-common docker-selinux docker-engine
#2、安装需要的软件包
yum install -y yum-utils device-mapper-persistent-data lvm2
#3、设置stable镜像仓库
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo(不推荐)
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

#4、更新yum包索引
yum makecache fast

#5、查看并安装docker ce(以17.12.1为例)
yum list docker-ce --showduplicates | sort -r
yum -y install docker-ce-17.12.1.ce 

#6、配置镜像加速
mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://onvmteff.mirror.aliyuncs.com"]
}
EOF
#7、重启配置和docker
systemctl daemon-reload
systemctl restart docker

#8、测试
docker version

2、安装Portainer可视化工具

执行这两条命令就可以了,浏览器打开ip+9010就可以访问了,密码必须是8位以上,所以我就设置成adminadmin

docker volume create portainer_data

docker run -d -p 9010:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer

3、安装centos基础镜像

docker pull centos:7

4、安装jdk8

#拉取基础镜像
docker pull centos:7
#创建目录存放jdk的tar.gz包和Dockerfile文件,要在同一级
cd /usr/local/src
mkdir docker/jdk1.8
cd docker/jdk1.8
mkdir Dockerfile
#编写Dockerfile文件
FROM centos:7

MAINTAINER [email protected]

ADD jdk-8u171-linux-x64.tar.gz /usr/local/jdk

WORKDIR /usr/local/jdk

ENV JAVA_HOME /usr/local/jdk/jdk1.8.0_171
ENV JRE_HOME /usr/local/jdk/jdk1.8.0_171/jre
ENV PATH $JAVA_HOME/bin:$PATH
EXPOSE 22
#创建镜像
cd /usr/local/src/docker/jdk
docker  build -t jdk:8 .
# 查看所有的镜像列表
docker image ls
# 运行容器
docker run -d -it --name jdk1.8 jdk:8 /bin/bash 
#进入容器
docker exec -it jdk1.8  /bin/bash 

java -version # 查看jdk版本

5、安装mysql

#下载镜像
docker pull mysql:5.7
#创建实例并启动
docker run -p 3306:3306 --name mysql \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7
#用数据库工具连接就可以了
#进入mysql容器就可以查看容器信息了
docker exec -it mysql /bin/bash
#进入mysql
mysql -uroot -proot

#mysql配置
vi /mydata/mysql/conf/my.cnf
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
init_connect='SET collation_connection = utf8_unicode_ci' 
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve
#重启mysql使配置生效
docker restart mysql

6、安装redis

#拉取镜像
docker pull redis:5.0.8
#创建实例并启动
mkdir -p /mydata/redis/conf
touch /mydata/redis/conf/redis.conf

docker run -p 6379:6379 --name redis -v /mydata/redis/data:/data \
-v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf \
-d redis:5.0.8 redis-server /etc/redis/redis.conf
#启动客户端测试
docker exec -it redis redis-cli
#数据持久化,否则退出数据会丢失
cd /mydata/redis/conf
vim redis.conf
appendonly yes

7、安装dubbo-admin

http://www.dockerchina.cn/?id=64

#下载incubator-dubbo-ops-master压缩包并解压
#将代码拉取到idea中修改配置文件,修改完执行clean-install
dubbo.registry.address=zookeeper://192.168.56.101:2181
#在target目录拷贝jar包上传到linux某一目录
#在该目录下编写Dockerfile文件
#FROM hub.c.163.com/xbingo/jdk8
FROM jdk:8(必须有jdk镜像)
ADD ./dubbo-admin-0.0.1-SNAPSHOT.jar /dubbo-admin.jar
EXPOSE 7001
CMD ["java","-jar","/dubbo-admin.jar"]
#构建镜像
docker build -t dubbo-admin:1.0 .
#运行容器
docker run -d -p 8090:7001 --name dubbo-admin dubbo-admin:1.0
#关闭防火墙
systemctl stop firewalld
#永久关闭防火墙
systemctl disable firewalld.service
#重新载入
firewall-cmd --reload
#测试
192.168.56.107:8090

#备选
docker run -p 8090:8080 --name dubbo-admin \
-v /mydata/dubbo/data/:/data/ \
-e dubbo.registry.address=zookeeper://192.168.56.107:2181 \
-e dubbo.admin.root.password=root \
-e dubbo.admin.guest.password=guest \
-d chenchuxin/dubbo-admin 

#打开192.168.56.107:8090

8、安装zookeeper

#拉取镜像,目前最新是3.4.13
docker pull wurstmeister/zookeeper:latest
#运行容器
docker run -d --name zookeeper -p 2181:2181 -itd wurstmeister/zookeeper:latest
#测试
docker exec -it 容器id /bin/bash
cd bin/
zkCli.sh


9、安装kafka

#拉取镜像,目前最新是2.12-2.5.0
docker pull wurstmeister/kafka:latest
#创建容器并启动
docker run -d --name kafka -p 9092:9092 \
--link zookeeper \
--env KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181 \
--env KAFKA_ADVERTISED_HOST_NAME=192.168.56.101 \
--env KAFKA_ADVERTISED_PORT=9092 \
wurstmeister/kafka:latest

#进入容器修改配置文件
docker exec -it 容器id /bin/bash
cd /opt/kafka_2.12-2.5.0/config
vi server.properties
添加 host.name=192.168.56.101
去掉注释listeners = PLAINTEXT://:9092
修改 advertised.listeners=PLAINTEXT://192.168.56.101:9092
#测试端口
telnet  192.168.56.101 9092

#进入容器测试
cd /opt/kafka_2.12-2.5.0/bin
#创建一个主题:
./kafka-topics.sh --create --zookeeper zookeeper:2181 --replication-factor 1 --partitions 1 --topic mykafka12
#运行一个消息生产者,指定topic为刚刚创建的主题
./kafka-console-producer.sh --broker-list localhost:9092 --topic mykafka12
#新开一个容器窗口运行消费者,指定同样的topic
./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic mykafka12 --from-beginning
#若在生产者窗口键入消息,在消费者窗口若能看到,表示kafka搭建成功

10、安装nexus私服

https://blog.csdn.net/luohongtuCSDN/article/details/106359023

​ 1、创建容器并配置阿里云

#拉取镜像
docker pull sonatype/nexus3
#启动容器
mkdir /usr/local/software/nexus3/nexus-data ##创建目录挂载容器数据
chmod 777 /usr/local/software/nexus3/nexus-data #更改权限否则会报错
docker run -d -p 8081:8081 --name nexus \
 -v /usr/local/software/nexus3/nexus-data:/nexus-data \
 -v /etc/localtime:/etc/localtime \
 sonatype/nexus3
#登陆http://192.168.56.107:8081,账号默认为admin,密码在/usr/local/software/nexus3/nexus-data目录下的admin.password文件,登陆进去会提示更改密码,选择禁止匿名登录
#创建阿里云maven仓库,并放置在第一位
参考
https://blog.csdn.net/weixin_43420255/article/details/106414133?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-5.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-5.nonecase

​ 2 、项目发布到nexus的仓库

​ 2.1 修改mavensetting.xml文件

<server>
    <id>nexus-publicid>
    <username>adminusername>
    <password>admin123password>
server>
<server>
    <id>nexus-releasesid>
    <username>adminusername>
    <password>admin123password>
server>
<server>
    <id>nexus-snapshotsid>
    <username>adminusername>
    <password>admin123password>
server>

​ 2.2 修改项目中的pom.xml,添加以下内容,id要保持和server中的一致

<distributionManagement>
    <repository>
        <id>nexus-releasesid>
        <name>maven-releases-repositoryname>
        <url>http://192.168.56.107:8081/repository/maven-releases/url>
    repository>
    <snapshotRepository>
        <id>nexus-snapshotsid>
        <name>maven-snapshots-repositoryname>
        <url>http://192.168.56.107:8081/repository/maven-snapshots/url>
    snapshotRepository>
distributionManagement>

​ 2.3 测试:在idea中对项目选择deploy就可以在nexus管理页面看到打包的jar包了

3、手动上传第三方jar包,参考https://www.cnblogs.com/MakeInstall/p/11041262.html

或者用命令也可以

mvn deploy:deploy-file -DgroupId=com.google.code.kaptcha -DartifactId=kaptcha -Dversion=2.3 -Dpackaging=jar -Dfile=D:\kaptcha-2.3.2.jar -Durl=http://192.168.172.141:8081/repository/third/ -DrepositoryId=third

4、 下载nexus的依赖

修改mavensetting文件,不需要更改mirror

从nexus下载依赖

pom.xml中增加如下仓库配置:

 <profiles>
   <profile>
   <id>publicid>
   <repositories>
	   <repository>
		   <id>nexus-publicid>
		   <name>maven repositoryname>
		   <url>http://192.168.56.107:8081/repository/maven-public/url>
		   <releases>
			   <enabled>trueenabled>
		   releases>
		   <snapshots>
			   <enabled>trueenabled>
		   snapshots>
	   repository>
   repositories>
profile>
profiles>
	<activeProfiles>
	<activeProfile>publicactiveProfile>
activeProfiles>

11、安装nacos

#拉取镜像
docker pull nacos/nacos-server:1.1.3
###配置本地目录
mkdir -p /root/nacos/standalone-logs/
##docker启动
docker run -d \
-e MODE=standalone \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_SERVICE_HOST=mysql的ip \
-e MYSQL_SERVICE_PORT=3306 \
-e MYSQL_SERVICE_USER=root \
-e MYSQL_SERVICE_PASSWORD=root \
-e MYSQL_SERVICE_DB_NAME=nacos_config \
-p 8848:8848 \
--restart=always \
--name nacos \
-v /root/nacos/standalone-logs/:/home/nacos/logs \
nacos/nacos-server:1.1.3
#nacos_config是自己创建的数据库,导入conf中的sql文件执行

你可能感兴趣的:(docker)