服务器安装docker
如果之前未安装过docker直接执行安装docker命令,跳过1
- 卸载以前安装的Docker容器
yum remove docker \ docker-client \ docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \ocker-engine
- 安装docker
yum install -y docker
安装成功命令行最下面会显示complete
- 查看docker是否安装成功
yum list installed |grep docker
出现这3个代表安装成功
- 启动服务并设置成开机自启
systemctl start docker.service
systemctl enable docker.service
- 查看docker状态
systemctl status docker
出现running说明我们docker已经运行起来
- 配置镜像
因为我使用的是国外服务器所以不用配置镜像,国内的一定要配置镜像,提高下载速度
在宿主机器编辑文件:vim /etc/docker/daemon.json
请在该配置文件中加入(没有该文件的话,请先建一个):
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}
- 配置完成后,重启docker服务
systemctl restart docker.service
拉取镜像
redis
docker pull redis
慢慢等待镜像拉取完成
mysql
docker pull mysql
和拉取redis是一样的操作
查看镜像、运行镜像
查看镜像
docker images
这两个就是刚拉取的镜像
运行redis
docker run -itd --name redis-test -p 6379:6379 redis
运行成功返回一串字符
使用redis连接工具测试是否可以连接
name随便起、host填写你服务器ip、port填写你开放的端口,然后test connection
出现这样的时候就算是连接成功,说明你的redis也已经在服务器上跑起来了
查看运行的容器
docker ps -a
前面运行容器返回的字符串前面一段就是容器的id
运行mysql
docker run -p 3306:3306 --name mysql -v /usr/local/mysql/conf:/etc/mysql/conf.d \
-v /usr/local/mysql/logs:/logs \
-v /usr/local/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 -d mysql
mysql启动成功
使用数据库连接工具测试mysql是否成功
主机填写服务器ip,端口填写指定的端口,用户root,密码123456,点击测试连接
跳出已成功代表mysql服务没有问题
idea整合docker
- 修改配置文件
vim /lib/systemd/system/docker.service
- 在ExecStart行后面追加以下内容 -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock
按i进入编辑模式,在对应位置把指定内容写上
- 保存退出
先按esc退出编译模式,然后输入**:wq**保存退出
- 重新载入服务信息
systemctl daemon-reload
- 重启docker服务
systemctl restart docker.service
- 打开idea
在设置中搜索docker,找到此设置配置对应的配置
url配置格式
tcp://你的服务器ip:2375
然后应用、确定即可
- 编写dockerfile
在你要打包项目的同src目录下创建Dokerfile,并且写入如下配置
# 基础镜像
FROM openjdk:8-jdk
LABEL author="cheng"
# 容器卷设置
VOLUME /tmp
ENV LANG C.UTF-8
# 向基础镜像内添加文件,并重命名为`ai.jar`
ADD ./target/ai-0.0.1-SNAPSHOT.jar /ai.jar
RUN bash -c 'touch /ai.jar'
# 最终执行脚本
ENTRYPOINT ["java", "-jar", "/ai.jar", "-Dfile.encoding=UTF-8", "-Dsun.jnu.encoding=UTF-8"]
# 暴露端口
EXPOSE 8001