Docker
docker安装
- yum包更新到最新
sudo yum update
- 安装需要的软件包
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
- 设置yum源为阿里云
sudo yum-config-manager --add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
- 安装docker
sudo yum install docker-ce docker-ce-cli containerd.io
- 编辑配置文件
1. mkdir -p /etc/docker
2. vim /etc/docker/daemon.json
配置文件内容,可以使用
{
"registry-mirrors": ["https://docker.mirrors.ustc.cn"]
}
- 载入配置
systemctl daemon-reload
docker运行
- 启动相关命令
systemctl restart docker
systemctl stop docker
systemctl start docker
systemctl status docker
systemctl enable docker
- 开启docker
sudo systemctl start docker
- 开启防火墙 服务器配置总结为三个,防火墙,端口,和安全组
1.查看防火墙状态
firewall-cmd --state
如果没开启,开启防火墙的命令
systemctl start firewalld.service
添加对外开放的端口,一个80(Http端口),一个8080(tomcat),一个2206(mysql)
1. firewall-cmd --zone=public --add-port=80/tcp --permanent
2. firewall-cmd --zone=public --add-port=8080/tcp --permanent
3. firewall-cmd --zone=public --add-port=3306/tcp --permanent
开完端口,重新加载防火墙
firewall-cmd --reload
查看开放的端口
firewall-cmd --list-ports
安装mysql
从docker hub上查找mysql镜像
docker search mysql
从docker hub上拉取mysql,这里拉取的mysql版本是mysql5.7
docker pull mysql:5.7
运行mysql,开放的端口是3306,密码是123456, -d是后台运行
docker run -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123456789 -d mysql:5.7
docker ps 查看容器创建成功
进入容器
docker exec -it 容器的id /bin/bash
- springboot项目打成jar包,打包的命令有两个
mvn clean
mvn package
在target文件夹出现jar表示成功
编写Dockfile文件 将springboot jar包项目打包成Docker镜像 在 /home 目录下创建docker文件夹
mkdir /home/docker
上传jar包 编写Dockerfile文件
vim Dockerfile
完整命令, vim的使用方法:点击i开始编写,编写完后点击esc,点击冒号,输入wq保存
FROM java:8
ADD test-0.0.1-SNAPSHOT.jar /test.jar
EXPOSE 8080
ENTRYPOINT ["java","-jar","/test.jar"]
注意,docker命令全部大写,这是规定。
FROM java:8
From 关键字表示,jar包依赖的环境。java:8 相当于jdk1.8
ADD test-0.0.1-SNAPSHOT.jar /test.jar
test-0.0.1-SNAPSHOT.jar:这是你上传jar包的名称。 /test.jar:这是自定义的名称。但是注意要有之前的/
EXPOSE 8080
项目暴露的端口号
ENTRYPOINT ["java","-jar","/test.jar"]
/test.jar此处的名称要和ADD命令后面的一样。
构建镜像并运行
docker build -t if Dockerfile test:1.0 .
说明:
test
代表要打包成的镜像名称。按照自己实际情况写。
:1.0
代表版本号,可以不写则默认为latest
.
代表为当前目录。所以要在Dockerfile目录下。
接下来就可以查看到这个镜像已经被创建好了,运行这个镜像就可以了
docker images
运行镜像
docker run --name test-d -p 80:8080 test:1.0
运行后查看日志
docker logs 容器id或者容器返回id