Centos 8 Docker 安装
配置安装前配置
uname -r //查看内核版本,系统内核版本高于3.10
yum update //升级内核
sudo yum install -y yum-utils device-mapper-persistent-data lvm2 //依赖包安装
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 设置阿里云镜像源
yum install -y https://mirrors.aliyun.com/docker-ce/linux/centos/7/x86_64/edge/Packages/containerd.io-1.2.13-3.1.el7.x86_64.rpm //重级依赖包,后续不因依赖包问题报错
卸载podman-manpages
centos8 系统默认安装podman-manpages,与docker 冲突
yum list podman-manpages //查看podman-manpages安装包
yum remove podman-manpages.noarch //删除podman-manpages
安装Docker
yum install docker-ce --allowerasing //替换版本不匹配,依赖同时被安装 docker-ce-cli containerd.io
systemctl enable docker //设置开机启动
start docker //启动docker
docker run hello-world //查看运行
Docker删除
yum list installed | grep docker \\查看已安装的包及依赖包
yum remove docker-ce.x86_64 \\删除docker软件
rm -rf /var/lib/docker //删除docker相关的镜像,容器,自定义配置等文件
Docker 命令
docker -v //查看版本号
systemctl stop docker //停止docker
service docker restart //重启服务
docker start //启动一个或多个已经被停止的容器
docker stop //停止一个运行中的容器
docker restart //重启容器
systemctl restart docker.service //重置服务
docker search -s 10 mysql //搜索不少于10个版本的mysql
Docker镜像安装
docker search -s 10 mysql //搜索不少于10个版本的mysql
docker pull mysql 安装镜像,不指定版本安装lates版本
docker images //查看所有镜像
docker pull mysql:5.5
docker rmi image-id 删除指定镜像,使用镜像id
//使用docker运行镜像,-d后台运行,--name 自定义名称,-p 服务器ip:端口:容器端口, 运行镜像版本 (注意镜像版本最后)
docker run --name mytomcat -d -p 0.0.0.0:8888:8080 tomcat:latest
docker ps //查看哪些容器在运行中
docker ps -a //查看所有容器,含停止状态的容器
docker start contatner-id ///启动 容器 使用contatner id
docker stop contatner-id //停止
docker rm contatner-id //删除容器
docker logs container-name/container-id //查看容器日志,使用容器名或id
docker命令官方文档
docker镜像的使用,参考镜像下载地址,下面的文档
docker 镜像版本官方地址
Docker jar 打包images 过程实例
打包过程–>创建目录–>新建配置文件,同时文件夹内放置需要打包的文件–>使用docker build 打包
#创建目录imageobj
mkdir imageobj && cd imageobj
# 存入打包文件在同一目录 aaa.jar
#创建配置文件dockerfile
vim dockerfile
FROM openjdk:8-jdk-alpine #从docker images 调用执行程序,如果没有从镜像拉取(镜像名称:版本)
EXPOSE 8181 #执行后的端口
ADD aaa.jar imagesname.jar # 执行文件 打包后docker images 的名称
ENTRYPOINT ["java","-jar","-Dfile.encoding=utf-8","imagesname.jar"] #执行文件的参数最后一个为docker镜像(与上面add添加的名称相同)
#打包文件 docker build from file to obj:version . (点表示当前路径开始加截文件)
docker build -f dockerfile -t objname:v1.0 .
#执行打包好的镜像到容器,--name 定义容器名称,-p映射端口(宿主ip:端口:容器端口) 容器:版本
docker run -d --name newobjname -p 0.0.0.0:8080:8181 objname:v1.0
Docker images 导入导出 修改名称
#导出
docker save imagename:v1.0 > ./app_images_v1.0.tar #导出到当前目录 命名为app_images_v1.0
docker save imagename:v1.0 -o ./app_images_v1.0.tar #同上
#导入
docker load -i ./labreport_images_v5.0.tar
#修改名称(docker tag id 名称:版本)
docker tag 98d8bb571885 aaa/bbb:latest
Docker 加速器配置
vim /etc/docker/daemon.json
# 与入以下文本
{
"registry-mirrors": [
"https://kfwkfulq.mirror.aliyuncs.com",
"https://2lqq34jg.mirror.aliyuncs.com",
"https://pee6w651.mirror.aliyuncs.com",
"https://registry.docker-cn.com",
"http://hub-mirror.c.163.com"
],
"dns": ["8.8.8.8","114.114.114.114"]
}
#重启
systemctl daemon-reload
systemctl restart docker
Docker内配置项目运行环境
# 同上《jar 打包images 过程实例》相同
vim dockerfile
from centos:centos7
run yum install -y java-1.8.0-openjdk
run yum install -y python3
docker build -f dockerfile -t centos/java_python:v1 .
Docker 安装mysql
docker pull mysql
docker run -d --name mysql01 -e MYSQL_ROOT_PASSWORD=123456 -p 3307:3306 mysql --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --default-time_zone='+8:00'
docker exec -it mysql01 bash //进入容器
//创建账号, 修改信息
idea使用jdbc连接MySQL数据库配置及测试
pom.xml ,jdbc连接mysql增加配置
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jdbc</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.20</version>
</dependency>
配置文件:application.yml
spring:
datasource:
url: jdbc:mysql://192.168.1.100:3307/assetdb?serverTimezone=CTT
username: admin
password: 123
driver-class-name: com.mysql.cj.jdbc.Driver
配置参数解析
url: jdbc:mysql://xxx:xxx/xxx?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone = GMT
useUnicode=true/false //是否开启unicode码
characterEncoding=utf-8 //使用utf-8编码
useSSL=false //是否使用SSL验证
serverTimezone=GMT //CTT(中国)/UTC(标准)/...
测试文件:DemoApplicationTests.java
@SpringBootTest
class DemoApplicationTests {
@Autowired
DataSource dataSource;
@Test
public void testConnection() throws SQLException{
System.out.println(dataSource.getClass());
Connection connection= dataSource.getConnection();
System.out.println(connection);
connection.close();
}
mysql测试连接成功
mysql查询数据库数据
@RestController
public class MyController {
@Autowired
JdbcTemplate jdbcTemplate;
@RequestMapping("/query")
public Map<String,Object> testJdbc(){
List<Map<String,Object>> list = jdbcTemplate.queryForList("select * from department");
return list.get(0);
}