安裝圖像化界面遇到一堆問題瞪慧,憤而卸載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
#重新加載配置文件
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配置,
連接成功后可在任務(wù)臺docker窗口看到苫费,我這是service窗口
就可以對容器或者鏡像進行操作
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>
<!-- <!–當(dāng)執(zhí)行mvn package 時,執(zhí)行: mvn clean package docker:build –>-->
<executions>
<execution>
<id>build-image</id>
<phase>package</phase>
<goals>
<goal>build</goal>
</goals>
</execution>
<!-- <execution>-->
<!-- <id>tag-image</id>-->
<!-- <!–用戶只需執(zhí)行mvn package 台汇,就會對鏡像進項標簽設(shè)定–>-->
<!-- <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鏡像,重新生成容器并運行則訪問成功