docker

JDK安装
1、下载jdk rpm,去oracle官网下载
2、安装java环境
检测当前系统是否存在Java环境 java -version
如果有的话进行卸载
rpm -qa|grep jdk 检测jdk版本
rpm -e --nodeps jdk全名称 强制卸载

安装jdk
rpm -ivh rpm包

此处有坑,rpm安装后jdk不需要配置环境变量
===============================
配置环境变量 :vim /etc/profile

jdk相关的文件路径 /usr/java/jdk相关的目录 ,比如jdk1.8.0_221-amd64
在最后一行配置
JAVA_HOME=/usr/java/jdk1.8.0_221-amd64
CLASS_PATH=%JAVA_HOME%/lib;%JAVA_HOME%/jre/lib
PATH=%JAVA_HOME%/bin
export PATH CLASSPATH JAVA_HOME

=======================================

 

查看linux是否开启项目对应的端口,比如项目的端口是8080,linux也得开启对应的端口
firewall -cmd --list-ports 查看端口

firewall -cmd --zone=public --add-port=8080/tcp --permanent 开启8080端口

systemctl restart firewalld.service 重启防火墙
service firewalld restart
firewall-cmd --reload

 

docker(https://docs.docker.com/engine/install/centos/) 
1、检测centOS 7版本
cat /etc/redhat-release

2、安装准备环境
yml -y install 报名 #yum install 安装命令 -y所有提示都为y

yml -y install gcc
yml -y install gcc-c++

3、清除以前的版本

 

docker安装流程 
1、卸载旧版本
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine

2、需要的安装包
yum install -y yum-utils

3、设置镜像仓库
yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo #默认从国外下载,十分慢

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo #推荐使用阿里云的镜像

# 更新yum软件包索引
yum makecache fast

4、安装docker
yum install docker-ce docker-ce-cli containerd.io

5、启动docker
systemctl start docker
可能启动了也会出现问题,更改启动方法 命令-> service docker start

将docker服务设为开机启动:systemctl enable docker
6、使用docer version 查看docker版本,判断是否安装成功

7、hello-world
docker run hello-world

8、查看下载的hello-world镜像
docker images 查看下载的所有镜像

了解:卸载docker
1、卸载依赖
yum remove docker-ce docker-ce-cli containerd.io
2、删除资源
rm -rf /var/lib/docker docker的默认工作路径
rm -rf /var/lib/containerd


常用命令
docker version 显示docker的版本信息
docker info 显示docker的系统信息,包括镜像和容器数量
docker --help 查看docker所有帮助命令

镜像命令

docker search 镜像名称
docker images 查看所有本地的主机上的镜像
docker pull 镜像名:tag :tag为镜像版本
docker rmi image-id 删除镜像id的镜像


#解释
REPOSITORY 镜像的仓库源
TAG 镜像的标签
IMAGE_ID 镜像的id
CREATED 镜像的创建时间
SIZE 镜像的大小

#可选项
-a , --all 列出所有镜像 如docker images -a
-q, --quiet 只显示镜像的id


搜索镜像 :

docker search 

docker pull 镜像名 下载镜像
docker pull mysql 下载最新版本的mysql镜像
docker pull mysql:5.7 下载5.7版本的mysql镜像

删除镜像
docker rmi -f IMAGE ID(镜像id) 根据镜像id删除指定镜像

docker rmi -f $(docker images -aq) 删除全部镜像


容器命令

说明:有了镜像才可以创建容器,linux下载centos镜像来测试
docker pull centos

新建容器并启动
docker run [可选参数] image

#参数说明
--name="Name" 容器名字 tomcat1 tomcat2 来区分容器
-d 后台方式运行
-it 交互方式运行,进入容器查看内容
-p 指定容器的端口 -p 8080:8080
-p ip:主机端口:容器端口
-p 主机端口:容器端口
-p 容器端口
容器端口
-P 随机指定端口


docker run -it centos /bin/bash 启动容器并交互

exit 退出容器


docker ps 命令
# 空 列出当前正在运行的容器
# -a 列出当前正在运行的容器+历史运行过的容器
# -n=1 显示最近创建的容器
# -q 只显示容器的编号


退出容器
exit 直接容器停止并退出
Ctrl + P +Q 退出容器但不停止容器


删除容器
docker rm 容器id 删除指定的容器,不能删除正在运行的容器,如果要强制删除使用rm -f
docker rm -f $(docker ps -aq) 删除所有容器
docker ps -a -q|xargs docker rm 删除所有人容器


启动和停止容器的操作
docker start 容器id #启动容器
docker restart 容器id #重启容器
dokcer stop 容器id #停止当前正在运行的容器
docker kill 容器id #强制停止当前容器


常用其他命令

后台启动容器
docker run -d centos

问题docker ps 发现centos停止了

常见的坑:docker容器使用后台运行,就必须要一个前台进程,docker发现没有应用就是自动停止
容器启动后,发现自己没有提供服务,就会立刻停止,就没有程序了


查看日志
docker logs

 

进入当前正在运行的容器

我们通常容器是使用后台方式运行,需要进入容器,修改一些配置

#命令
方式一:docker exec -it 容器id bash/bash #进入容器后开启一个新的终端,可以在里面操作

方式二:docker attach 容器id #进入容器正在执行的终端,不会启动新的进程


从容器内拷贝文件到主机上
docker cp 容器id:容器内路径 目的的主机路径  如下面的命令:  docker cp 容器id:/home/test.java /home


docker attach 容器id 进入容器
cd /home 进入home目录
touch test.java 创建文件
exit 退出容器

从已经停止的容器里面拷贝文件出来
把容器中的/home目录下的test.java文件拷贝到主机的/home目录下
docker cp 容器id:/home/test.java /home


练习:
1、搜索镜像 search
2、下载镜像 pull
3、运行测试

docker images

# -d 后台运行
# --name 给容器命名
# -p 宿主机端口:容器内部端口
docker run -d --name nginx01 -p 3344:80 nginx

curl localhost:3344 测试是否成功启动

进入容器
docker exec -it nginx01 /bin/bash
whereis nginx
cd /etc/nginx
ls


DockerFile构建过程
基础知识:
1、每个保留关键字(指令)都必须是大写字母
2、执行从上到下顺序执行
3、#表示注释
4、每一个指定都会创建提交一个新的镜像层,并对镜像进行提交

DockerFile:构建文件,定义了一切的步骤
DockerImages:通过DockerFile构建生成的镜像,最终发布和运行的产品
Docker容器:容器就是镜像运行起来的提供服务器

FROM :(指定基础镜像,一切从这里开始)
MAINTAINER:镜像是谁写的,姓名+邮箱
RUN: 镜像构建的时候需要运行的命令(在命令前面加上RUN即可)
ADD:添加内容
WORKDIR:设计镜像的工作目录
VOLUME:设置卷,挂载主机目录
EXPOSE:指定暴露端口
RUN:指定容器启动后要干的事

CMD:指定容器启动的时候要运行的命令,只有最后一个会生效,可被替代
ENTRYPOINT:指定容器启动的时候要运行的命令,可以追加命令
ONBUILD: 当构建镜像被继承,DockerFile这时候就会运行ONBUILD的指令,触发指令

 

 


SpringBoot微服务打包Docker镜像
1、构架springboot项目
2、打包应用
3、编写dockerfile
4、构建镜像
5、发布运行

springboot -> maven project ->clean ->package
在target目录下找到jar包,如项目名称.-0.0.1-SNAPSHOT.jar
执行jar包运行测试能否成功
CTRL+R cmd 执行命令 java -jar 项目名称.-0.0.1-SNAPSHOT.jar

idea->File->setting->Plugins->Browse repositories..->搜索docker安装


在项目创建DockerFile文件进行脚本编写

FROM java:8

COPY *.jar /app.jar

CMD ["--server.port=8080"]

EXPOSE 8080

ENTRYPOINT ["java","-jar","/app.jar"]

完毕

将DockerFile文件和项目的jar移动到linux想放的目录下
docker build -t xxxx666(镜像名称) .
docker images 查看镜像是否成功安装
docker run -d -P --name xxx-springboot-web xxxx666 运行xxxx666镜像
-P参数 随机指定一个端口
-d参数 后台运行
docker ps 查看镜像 可以看到镜像的各种信息,如端口号PORTS 0.0.0.0:32779 ->8080
curl localhost:32779/hello 测试能否访问项目的hello接口

 


解决网络无法连接问题
https://blog.csdn.net/weixin_42049243/article/details/89219057

部署项目到docker
https://www.jianshu.com/p/397929dbc27d

安装mysql
https://www.cnblogs.com/jiefu/p/12204555.html

ip addr 查看ip地址 ens33那个是ip地址


安装redis
1、获取最新版本的redis
docker pull redis:latest
2、查看本地镜像
docker‫ images
3、运行容器
docker run -itd --name redis-test -p 6379:6379 redis
-p 6379:6379:映射容器服务的 6379 端口到宿主机的 6379 端口。外部可以直接通过宿主机ip:6379 访问到 Redis 的服务
4、连接redis
docker exec -it redis-test /bin/bash

5、开启redis后客户端连接redis
docker exec -it 容器id redis-cli

 

posted @ 2021-05-11 16:01  ~╰☆終極﹏o  阅读(63)  评论(0)    收藏  举报