docker部署springcloud項目


1. 准備工作

項目中用到了redis(3.2),mysql(5.7),nginx,elasticsearch(5.5.0),jdk(1.8)。

將項目中的properites或yml中的配置信息全部配置成默認的,

將生成的jar包上傳到/usr/local/src/下面

2. 創建Dockerfile

注:Dockerfile F字母是小寫

FROM java:8

MAINTAINER 457237252@qq.com

VOLUME /tmp

ADD zookeeper-test-0.0.1-SNAPSHOT.jar qjg.jar

RUN bash -c 'touch /qjg.jar'

ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/qjg.jar"]

3. 安裝mysql

docker search mysql  //查看都有哪些mysql在docker hub上,OFFICIAL 代表是否官方。

docker pull mysql:5.7

docker images 

docker run -d -e MYSQL_ROOT_PASSWORD=123456 -p 23306:3306 --name mysql mysql:5.7

注:深有體會,用一般方式安裝 mysql 用了4小時,用docker安裝用了不到五分鍾。

 

在配置文件的[mysqld]后添加lower_case_table_names=1

1.linux下輸入命令查看docker容器CONTAINER ID :

命令: docker ps

2.進入docke容器

命令: docker exec -it f0b1c8ab3633 /bin/bash 

(f0b1c8ab3633為CONTAINER ID,請修改為你的CONTAINER ID  )

3. 不能使用vim命令的時候用如下命令:

apt-get update
apt-get install vim

3.進入mysql目錄

命令: cd /etc/mysql/mysql.conf.d

4.查看mysql配置文件:

命令: ls

5.修改配置文件

命令:vim mysqld.cnf

按 i 進入編輯,加入lower_case_table_names=1

按Esc鍵,輸入 :wq 保存退出

6.停止docker 

命令:systemctl stop docker

7.啟動docker

systemctl restart docker

docker start d3a64017b824

4. 安裝redis

docker pull redis:3.2

1、啟動無密碼的redis
docker run -p 6379:6379 -v $pwd/data:/data -d redis:3.2 redis-server --appendonly yes
備注:
-p 6379:6379 : 將容器的6379端口映射到主機的6379端口
-v $pwd/data:/data : 將主機中當前目錄下的data掛載到容器的/data
redis-server --appendonly yes : 在容器執行redis-server啟動命令,並打開redis持久化配置
2、啟動帶密碼的redis
docker run -p 6379:6379 -d --restart=always redis:3.2 redis-server --appendonly yes --requirepass "your passwd"
備注:
-p 6379:6379 :將容器內端口映射到宿主機端口(右邊映射到左邊)
redis-server –appendonly yes : 在容器執行redis-server啟動命令,並打開redis持久化配置
requirepass “your passwd” :設置認證密碼
–restart=always : 隨docker啟動而啟動

 5. 安裝nginx

docker search nginx 

docker pull nginx 

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

在/usr/local/下面創建nginx,在nginx下面創建html,conf,logs

然后執行

docker run -d -p 80:80 --name nginx -v /usr/local/nginx/html:/usr/share/nginx/html -v /usr/local/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /usr/local/nginx/logs:/var/log/nginx nginx

然后就可以在nginx的目錄下進行文件的編輯操作了。

6. 安裝elasticsearch

docker pull elasticsearch:5.5.0

docker run -p 9200:9200 -p 9300:9300 --name elasticsearch -e "cluster.name=elasticsearch" -d elasticsearch:5.5.0

7. 常用命令

docker service create --replicas 5 -p 9000:9000 --name qjgdemo qjgdockerdemo     //創建5個qjgdemo。

docker service rm qjgdemo //刪除這個集群。

docker service scale qjgdemo=1  //將五個集群縮減為四個集群。 注意 qjgdemo=1 中間沒有空格,不然會報錯。

docker service ls  //顯示所有的服務集群。

docker node ls  //顯示所有的集群節點的信息

docker stop 80f6f2843e6b   //停止運行容器

docker container rm 80f6f2843e6b  //刪除停止運行的容器

 

 問題整理:

1. 創建集群部署時:

 

 解決方案:docker login 需要注冊docker hub ,網址 https://hub.docker.com 注冊一個就行。

 

2. 執行完docker swarm init 之后 提示執行

docker swarm join \ --token SWMTKN-1-2w8xcf26mzxplsgree6auc3jjfp1jz0lmzcy0afhyqpvz6n42l-1ri07ah73op54xys130kmr2uo \ 172.30.0.10:2377 這個。

3. docker service create --replicas 5 -p 9000:9000 --network appnet --network bridge --name qjgdemo qjgdockerdemo

Error response from daemon: network appnet not found 執行這個的時候報錯了,改為如下命令:

docker service create --replicas 5 -p 9000:9000 --name qjgdemo qjgdockerdemo

4. 針對上面啟動elasticsearch的時候報錯了。錯誤信息如下;

 

 然后參考網頁:https://blog.csdn.net/qq_43039260/article/details/87462377

修改了jvm.options文件

find / -name jvm.options

然后進行修改,修改之后重啟elasticsearch就行了。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM