安装图像化界面遇到一堆问题,愤而卸载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(删除已经安装的文件)
3.删除镜像/容器等
rm -rf /var/lib/docker
4.删除所有的数据卷
docker volume rm $(sudo docker volume ls -q)
必须手动删除任何已编辑的配置文件。
二、删除之后,安装docker
1、Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker 。
通过 uname -r 命令查看你当前的内核版本
$ uname -r
2、使用 root 权限登录 Centos。确保 yum 包更新到最新。
$ sudo yum update
3、卸载旧版本(如果安装过旧版本的话)
$ sudo yum remove docker docker-common docker-selinux docker-engine
4、安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
$ sudo yum install -y yum-utils device-mapper-persistent-data lvm2
5、设置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 后台服务
sudo systemctl start docker
8重启 Docker服务
sudo systemctl restart docker
9安装成功后可通过查看
docker version
配置阿里云加速器,可不配,加速加载速度的。(省略)
整合idea
1、Docker开启远程访问
修改该Docker服务文件
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
#重启服务
systemctl restart docker.service
#查看端口是否开启
netstat -nlpt #如果找不到netstat命令,可进行安装。yum install net-tools
#直接curl看是否生效
curl http://127.0.0.1:2375/info
idea配置,
连接成功后可在任务台docker窗口看到,我这是service窗口
就可以对容器或者镜像进行操作
docker-maven-plugin
传统过程中,打包、部署、等。
而在持续集成过程中,项目工程一般使用 Maven 编译打包,然后生成镜像,通过镜像上线,能够大大提供上线效率,同时能够快速动态扩容,快速回滚,着实很方便。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>
<!-- 基础镜像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>
<!-- 这里是复制 jar 包到 docker 容器指定目录配置 -->
<resources>
<resource>
<targetPath>/ROOT</targetPath>
<!--用于指定需要复制的根目录,${project.build.directory}表示target目录-->
<directory>${project.build.directory}</directory>
<!--用于指定需要复制的文件。${project.build.finalName}.jar指的是打包后的jar
包文件。-->
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
<!-- <!–当执行mvn package 时,执行: 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>-->
<!-- <!–用户只需执行mvn package ,就会对镜像进项标签设定–>-->
<!-- <phase>package</phase>-->
<!-- <goals>-->
<!-- <goal>tag</goal>-->
<!-- </goals>-->
<!-- </execution>-->
</executions>
</plugin>
</plugins>
</build>
</project>
对项目进行 打包。并构建镜像 到Docker 上。
mvn clean package docker:build
使用docker安装MySQL
拉取mysql的镜像
docker pull mysql
根据镜像创建容器
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的数据路径到宿主机
第五行:将容器中3306端口映射到宿主机的3306端口上
第六方:设置MySQL的root账号密码为root
设置数据库编码
进入~/mysql/conf中,创建一个文件my.cnf,填写如下内容:
[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';
设置mysql可以远程登录,否则物理机远程连接不上虚拟机中docker安装的mysql。
我用来备份数据数据使用。
-p 3306:3306** :映射容器服务的 3306 端口到宿主机的 3306 端口,外部主机可以直接通过 宿主机ip:3306 访问到 MySQL 的服务。
MYSQL_ROOT_PASSWORD=123456**:设置 MySQL 服务 root 用户的密码。
springBoot项目,或者其他项目,在连接数据库的url上添加&allowPublicKeyRetrieval=true
运行公钥检索。
重新paging,删除之前容器,删除none镜像,重新生成容器并运行则访问成功