新建docker連接idea到 部署springboot項目到虛擬機容器連接mysql

安裝圖像化界面遇到一堆問題瞪慧,憤而卸載docker重裝

一娇斩、安裝

1.查詢安裝過的包
yum list installed | grep docker

docker-engine.x86_64                 17.03.0.ce-1.el7.centos         @dockerrepo

 2.刪除安裝的軟件包

yum -y remove docker-engine.x86_64(刪除已經(jīng)安裝的文件)

 3.刪除鏡像/容器等

rm -rf /var/lib/docker

4.刪除所有的數(shù)據(jù)卷
 docker volume rm $(sudo docker volume ls -q)

必須手動刪除任何已編輯的配置文件夹囚。

二纵刘、刪除之后,安裝docker

1荸哟、Docker 要求 CentOS 系統(tǒng)的內(nèi)核版本高于 3.10 假哎,查看本頁面的前提條件來驗證你的CentOS 版本是否支持 Docker 蛔翅。

通過 uname -r 命令查看你當(dāng)前的內(nèi)核版本

$ uname -r
2、使用 root 權(quán)限登錄 Centos位谋。確保 yum 包更新到最新山析。

$ sudo yum update
3、卸載舊版本(如果安裝過舊版本的話)

$ sudo yum remove docker docker-common docker-selinux docker-engine
4掏父、安裝需要的軟件包笋轨, yum-util 提供yum-config-manager功能,另外兩個是devicemapper驅(qū)動依賴的

$ sudo yum install -y yum-utils device-mapper-persistent-data lvm2
5赊淑、設(shè)置yum源
源1:(官方推薦)

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

源2:(阿里云源)

sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

5爵政、更新 yum 緩存:**

sudo yum makecache fast

6安裝 Docker-CE

sudo yum -y install docker-ce

7啟動 Docker 后臺服務(wù)

sudo systemctl start docker

8重啟 Docker服務(wù)

sudo systemctl restart docker

9安裝成功后可通過查看

docker version

配置阿里云加速器,可不配陶缺,加速加載速度的钾挟。(省略)

整合idea

1、Docker開啟遠程訪問

修改該Docker服務(wù)文件

vi /lib/systemd/system/docker.service

修改ExecStart這行

ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock

V%IW}ZC(SJHCDKAOV{Z{){K.png
#重新加載配置文件
systemctl daemon-reload
#重啟服務(wù)
systemctl restart docker.service
#查看端口是否開啟
netstat -nlpt     #如果找不到netstat命令饱岸,可進行安裝掺出。yum install net-tools
#直接curl看是否生效
curl http://127.0.0.1:2375/info

idea配置,


idea.png

連接成功后可在任務(wù)臺docker窗口看到苫费,我這是service窗口


docker.png

就可以對容器或者鏡像進行操作

docker-maven-plugin

傳統(tǒng)過程中汤锨,打包、部署百框、等闲礼。

而在持續(xù)集成過程中,項目工程一般使用 Maven 編譯打包铐维,然后生成鏡像柬泽,通過鏡像上線,能夠大大提供上線效率嫁蛇,同時能夠快速動態(tài)擴容锨并,快速回滾,著實很方便棠众。docker-maven-plugin 插件就是為了幫助我們在Maven工程中琳疏,通過簡單的配置有决,自動生成鏡像并推送到倉庫中闸拿。

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.3.0.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.example</groupId>
    <artifactId>exam_tyx</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>exam_tyx</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <java.version>1.8</java.version>
        <docker.image.prefix>tyx</docker.image.prefix>
    </properties>

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

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.3.2</version>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.0.28</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.13</version>
        </dependency>

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

    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>com.spotify</groupId>
                <artifactId>docker-maven-plugin</artifactId>
                <version>1.0.0</version>
                <configuration>
                    <!-- 鏡像名稱 YanM/pay_provider-->
                    <imageName>${docker.image.prefix}/${project.artifactId}</imageName>
                    <!--指定標簽-->
                    <imageTags>
                        <imageTag>latest</imageTag>
                    </imageTags>
                    <!-- 基礎(chǔ)鏡像jdk 1.8-->
                    <baseImage>java</baseImage>
                    <!-- 制作者提供本人信息 -->
                    <maintainer>1390207252@qq.com</maintainer>
                    <!--切換到/ROOT目錄 -->
                    <workdir>/ROOT</workdir>
                    <cmd>["java", "-version"]</cmd>
                    <entryPoint>["java", "-jar", "${project.build.finalName}.jar"]</entryPoint>
                    <!-- 指定 Dockerfile 路徑
                    <dockerDirectory>${project.basedir}/src/main/docker</dockerDirectory>
                    -->
                    <!--指定遠程 docker api地址-->
                    <dockerHost>http://10.0.4.182:2375</dockerHost>
                    <!-- 這里是復(fù)制 jar 包到 docker 容器指定目錄配置 -->
                    <resources>
                        <resource>
                            <targetPath>/ROOT</targetPath>
                            <!--用于指定需要復(fù)制的根目錄,${project.build.directory}表示target目錄-->
                            <directory>${project.build.directory}</directory>
                            <!--用于指定需要復(fù)制的文件书幕。${project.build.finalName}.jar指的是打包后的jar
                            包文件新荤。-->
                            <include>${project.build.finalName}.jar</include>
                        </resource>
                    </resources>
                </configuration>

<!--                &lt;!&ndash;當(dāng)執(zhí)行mvn package 時,執(zhí)行: mvn clean package docker:build &ndash;&gt;-->
                <executions>
                    <execution>
                        <id>build-image</id>
                        <phase>package</phase>
                        <goals>
                            <goal>build</goal>
                        </goals>
                    </execution>
<!--                    <execution>-->
<!--                        <id>tag-image</id>-->
<!--                        &lt;!&ndash;用戶只需執(zhí)行mvn package 台汇,就會對鏡像進項標簽設(shè)定&ndash;&gt;-->
<!--                        <phase>package</phase>-->
<!--                        <goals>-->
<!--                            <goal>tag</goal>-->
<!--                        </goals>-->
<!--                    </execution>-->
                </executions>


            </plugin>


        </plugins>
    </build>

</project>

對項目進行 打包苛骨。并構(gòu)建鏡像 到Docker 上篱瞎。

mvn clean package docker:build

使用docker安裝MySQL

拉取mysql的鏡像
docker pull mysql
根據(jù)鏡像創(chuàng)建容器
docker run -d  
-v ~/mysql/conf:/etc/mysql/conf.d 
-v ~/mysql/logs:/logs
 -v ~/mysql/data:/var/lib/mysql 
-p 3306:3306
 -e MYSQL_ROOT_PASSWORD='123456'
 --name mysql mysql

代碼解釋

第二行:掛載mysql配置文件到宿主機

第三行:掛載mysql日志文件到宿主機

第四行:掛載mysql的數(shù)據(jù)路徑到宿主機

第五行:將容器中3306端口映射到宿主機的3306端口上

第六方:設(shè)置MySQL的root賬號密碼為root

設(shè)置數(shù)據(jù)庫編碼

進入~/mysql/conf中,創(chuàng)建一個文件my.cnf痒芝,填寫如下內(nèi)容:

[mysqld]
character-set-server=utf8

重啟mysql容器

進入mysql
docker exec -it mysql bash
登陸 mysql -u root -p
輸入密碼:
修改可以遠程登錄
ALTER USER 'root' IDENTIFIED WITH mysql_native_password BY '123456';
設(shè)置mysql可以遠程登錄俐筋,否則物理機遠程連接不上虛擬機中docker安裝的mysql。
我用來備份數(shù)據(jù)數(shù)據(jù)使用严衬。
-p 3306:3306** :映射容器服務(wù)的 3306 端口到宿主機的 3306 端口澄者,外部主機可以直接通過 宿主機ip:3306 訪問到 MySQL 的服務(wù)。
MYSQL_ROOT_PASSWORD=123456**:設(shè)置 MySQL 服務(wù) root 用戶的密碼请琳。

springBoot項目粱挡,或者其他項目,在連接數(shù)據(jù)庫的url上添加&allowPublicKeyRetrieval=true
運行公鑰檢索俄精。
重新paging,刪除之前容器询筏,刪除none鏡像,重新生成容器并運行則訪問成功


XL2420MA%{@$0`ZR2T7TP20.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末竖慧,一起剝皮案震驚了整個濱河市嫌套,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌圾旨,老刑警劉巖灌危,帶你破解...
    沈念sama閱讀 217,084評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異碳胳,居然都是意外死亡勇蝙,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,623評論 3 392
  • 文/潘曉璐 我一進店門挨约,熙熙樓的掌柜王于貴愁眉苦臉地迎上來味混,“玉大人,你說我怎么就攤上這事诫惭∥涛” “怎么了?”我有些...
    開封第一講書人閱讀 163,450評論 0 353
  • 文/不壞的土叔 我叫張陵夕土,是天一觀的道長馆衔。 經(jīng)常有香客問我,道長怨绣,這世上最難降的妖魔是什么角溃? 我笑而不...
    開封第一講書人閱讀 58,322評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮篮撑,結(jié)果婚禮上减细,老公的妹妹穿的比我還像新娘。我一直安慰自己赢笨,他們只是感情好未蝌,可當(dāng)我...
    茶點故事閱讀 67,370評論 6 390
  • 文/花漫 我一把揭開白布驮吱。 她就那樣靜靜地躺著,像睡著了一般萧吠。 火紅的嫁衣襯著肌膚如雪左冬。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,274評論 1 300
  • 那天纸型,我揣著相機與錄音又碌,去河邊找鬼。 笑死绊袋,一個胖子當(dāng)著我的面吹牛毕匀,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播癌别,決...
    沈念sama閱讀 40,126評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼皂岔,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了展姐?” 一聲冷哼從身側(cè)響起躁垛,我...
    開封第一講書人閱讀 38,980評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎圾笨,沒想到半個月后教馆,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,414評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡擂达,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,599評論 3 334
  • 正文 我和宋清朗相戀三年土铺,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片板鬓。...
    茶點故事閱讀 39,773評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡悲敷,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出俭令,到底是詐尸還是另有隱情后德,我是刑警寧澤,帶...
    沈念sama閱讀 35,470評論 5 344
  • 正文 年R本政府宣布抄腔,位于F島的核電站瓢湃,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏赫蛇。R本人自食惡果不足惜绵患,卻給世界環(huán)境...
    茶點故事閱讀 41,080評論 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望棍掐。 院中可真熱鬧藏雏,春花似錦、人聲如沸作煌。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,713評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽粟誓。三九已至奏寨,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間鹰服,已是汗流浹背病瞳。 一陣腳步聲響...
    開封第一講書人閱讀 32,852評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留悲酷,地道東北人套菜。 一個月前我還...
    沈念sama閱讀 47,865評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像设易,于是被迫代替她去往敵國和親逗柴。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,689評論 2 354

推薦閱讀更多精彩內(nèi)容