Docker应用案例
帖子
https://www.jb51.net/article/216716.htm
centos安装dockerhttps://www.bilibili.com/video/BV1gr4y1U7CY?p=11
p11
https://blog.csdn.net/ispeasant/article/details/108452347
前置工作
(1)
yum -y install gcc
(2)
yum -y install gcc-c++
(3)
yum install -y yum-utils
(4)
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
更新yum索引
yum makecache fast]
真正安装
yum -y install docker-ce docker-ce-cli containerd.io
启动
systemctl start docker
查看
ps -ef |grep docker
版本
docker version
停止docker
systemctl stop docker
查看启动的容器
docker ps -a配置docker镜像加速器
csdn搜索“docker镜像下载速度太慢太慢太慢”配置阿里云镜像
https://www.bilibili.com/video/BV1gr4y1U7CY?p=12&spm_id_from=pageDriver
先去申请一个镜像加速器
把下面xxxxxxxx的位置改成自己的
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://xxxxxxxx.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
idea配置docker-maven-plugin
参考视频
https://www.bilibili.com/video/BV1xJ411W7K5?p=5&spm_id_from=pageDriver
https://www.bilibili.com/video/BV1i741137kk?spm_id_from=333.337.search-card.all.click
https://wenku.baidu.com/view/af690711346baf1ffc4ffe4733687e21af45ff9e.html
传统过程中,打包、部署、上传到Linux、编写Dockerfile、构建镜像、创建容器运行。
而在持续集成过程中,项目工程一般使用Maven编译打包,然后生成镜像,通过镜像上线,能够大大提供上线效率,同时能够快速动态扩容,快速回滚,着实很方便。docker-maven-plugin插件就是为了帮助我们在Maven工程中,通过简单的配置,自动生成镜像并推送到仓库中。
配置Docker的远程访问(服务器端建议配置ca加密)
vim /lib/systemd/system/docker.service ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock [root@iZ2zefrn59xpib81h5ijz9Z local]# systemctl daemon-reload [root@iZ2zefrn59xpib81h5ijz9Z local]# systemctl restart docker
netstat -nlpt
可以看到2375已经开启监听
curl 是一个利用URL语法在命令行下工作的文件传输工具,此处时用来检验docker 2375端口是否正常
打开linux防火墙2375
firewall-cmd --add-port=2375/tcp --permanent firewall-cmd --reload firewall-cmd --zone=public --list-ports
此链接和以上curl结果应相同
idea settings 安装插件 engine api url本地虚拟机 tcp://192.168.28.133:2375配置镜像加速器 idea pom配置文件
准备dockerfile文件com.spotify docker-maven-plugin1.1.0 http://自己的ip:2375 ${project.artifactId} ${project.basedir}/src/docker latest / ${project.build.directory} ${project.build.finalName}.jar
FROM java:8 VOLUME /tmp # 将打包好的 jar 复制到 app.jar 中 ADD demo-0.0.1-SNAPSHOT.jar /test.jar EXPOSE 8080 # 以下为 jar 包启动命令配置 ENTRYPOINT java -jar *.jar #ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "test.jar"]
根据配置文件的写法
指明了dockerfile的所在的目录
clean
package
build
从idea中推上
添加一个容器
-d后台运行 -p端口映射
-d -p 8080:8080
效果图
如果想要换个开放的端口来启动只需更改冒号之前的端口号
例如
-p 8081:8080
可能出现问题的话,检查以下
(1) 防火墙
(2)服务器安全组(例如阿里云
(3)换个浏览器
systemctl stop docker
yum remove docker-ce docker-ce-cli containerd.io
rm -rf /var/lib/docker
rm -rf /var/lib/containerd
netstat -pan|grep 8080docker部署tomcat
docker pull tomcat
docker images|grep tomcat
docker run --name tomcat -p 8080:8080 -d tomcat:latest访问路径
http://192.168.28.133:8080/ http://192.168.28.133:8080/pages/toIndex http://192.168.28.133:6666/ http://192.168.28.133:6666/pages/toIndex效果 docker部署mysql
https://blog.csdn.net/bthinker/article/details/123471514
docker run --name mysql -d -p 3308:3306 --restart unless-stopped -v /mydata/mysql/log:/var/log/mysql -v /mydata/mysql/data:/var/lib/mysql -v /mydata/mysql/conf:/etc/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7非常迷惑的错误–edge
这两图想显示的是,无论是否前面的端口例如6666部署项目,edge都显示的是这个页面,而第二张图8080不部署时显示的和6666截然不同
docker服务器总是被攻击。
待解决的问题
- ca加密整合idea
https://www.bilibili.com/video/BV1xJ411W7Rg?p=33



