Docker新手教程(详细教程)
目录
4.安装docker并配置阿里仓库(可理解为maven仓库类似)
5.IDEA安装docker(推荐新开一个spring快速搭建项目)
首先
准备工具:IDEA,xshell,服务器(宝塔linux)
docker:Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
可以理解为docker就是一台电脑,而且在环境特别多的时候很方便,它可以把你的项目、数据库、nginx、redis、mq等用镜像pull好,就可以直接使用。其实docker不仅这些,我也是学会一点皮毛。上正题。。。
服务器上的配置(以阿里云服务器为例):
1.服务器设置
在刚选择服务器的时候选择宝塔:如下图 ↓(选中之后重置)
重置之前记得看下服务器上是否有重要的项目或文件记得备份!!!没有则直接重置,需要你的手机验证然后等待
2.设置规则
找到【安全】→【防火墙】→添加规则(如图为准)这里设置的范围是1-50000,就如果没有什么其他的需求就索性全开
3.配置宝塔
(这个工具贼TM方便)一样还是在这个页面找到【应用详情】有个地址可以点击,click跳转,然后密码账号该页面有具体,如果不行,方案二就是到你弹出的那个页面有个忘记密码有详情: cd /www/server/panel && python tools.py panel testpasswd 把这个在xshell打上命令红色的是你要设置的密码需求手动更改。这里需要xshell工具,连接服务器xshell左上角有个新建,输入服务器地址,然后输入用户名和密码(都在服务器的远程连接去设置好),打上命令之后出来的是用户名,然后就可以登录了。登录进来之后在安全哪里和阿里服务器设置防火墙一样设置1-50000
4.安装docker并配置阿里仓库(可理解为maven仓库类似)
然后返回xshell工具,打上命令 yum install docker ,这个yum它封装了许多东西,有兴趣的可以去查查;然后看着它跑,然后会要你输入“y”继续,然后等待,然后就会自动跳到你的根目录,没有Error就成功了。
先备份docker配置:cp /usr/lib/systemd/system/docker.service /usr/lib/systemd/system/docker.service_bak
vi /usr/lib/systemd/system/docker.service进入文件按i编辑,在 ExecStart=/usr/bin/dockerd-current 后 增加 -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock 增加后如下,保存并退出 (保存:按下ESC 然后 “:”在打wq ,不保存就是 q! )重新启动服务
sudo systemctl daemon-reload 回车再 systemctl restart docker
在到阿里服务器页面选择镜像加速器,看清你选择的是那个,我服务器是centos的,复制蓝色框里面的所有粘贴到xshell上面,等它跳到根目录再进行一边操作,我这边不知道什么原因没有设置好阿里仓库,然后就会一直报错,报不能把仓库给pull下来
xshell的复制是:ctrl+Insert 粘贴是:shift+Insert
5.IDEA安装docker(推荐新开一个spring快速搭建项目)
创建一个新的项目直接spring Initializr 然后一直下一步就行,不要什么其他的,可以根据自己喜好添加。
ctrl+alt+s快捷打开settings 安装好docker插件,
之后在settings最左边的搜索栏docker找到,点击加号添加配置好服务器地址,端口一样2375.底下出现此状态对了,如果不是就去xshell上面重启下docker:systemctl restart docker
根据我的目录建立文件,其中jar包在工具最右边的maven那里项目下面的【Lifecycle】下级的【package】双击它就会自动打成jar包,然后将底下的jar包和Dockerfile放到一起(打包之前打项目的pom文件改掉)有红色报错是IDEA的安全级别太高意思是还有更好的方式去实现它,不用管。
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.4.2</version>
<configuration>
<skipTests>true</skipTests>
</configuration>
</plugin>
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>1.0.0</version>
<configuration>
<imageName>${docker.image.prefix}/${project.artifactId}</imageName>
<dockerHost>http://101.132.194.58:2375</dockerHost>
<dockerDirectory>docker</dockerDirectory>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>
</plugins>
</build>
编辑Dockerfile文件:
这里我的jar包全部改成你那里的jar包名,端口的9191是和下面对应的。
FROM frolvlad/alpine-oraclejdk8
#指定维护者信息
MAINTAINER cxh
VOLUME /tmp
ADD dockertest-0.0.1-SNAPSHOT.jar dockertest-0.0.1-SNAPSHOT.jar
RUN sh -c 'touch /dockertest-0.0.1-SNAPSHOT.jar'
ENV JAVA_OPTS=""
EXPOSE 9191
#指定执行启动spring boot小项目 ENTRYPOINT 为容器启动后执行的命令
ENTRYPOINT ["java","-jar","/dockertest-0.0.1-SNAPSHOT.jar"]
Edit Configurations编辑添加找到docker(选择Doekerfile)编辑如下:
这里images tag 镜像名;container name 容器名;bind ports 需要暴露的端口,需跟dockerfile 中的 EXPOSE 9191 保持一致
上面弄完之后右击docker文件夹下的Dockerfile文件run运行,成功之后会多出一些东西来,如果是报什么pull....io什么的就是没有成功换成阿里的仓库,然后继续上面如何换仓库的操作再来两下。还有就是你可以去xshell上打上命令docker images
成功启动它会打印类似springboot一样的信息,然后就可以通过服务器的地址直接访问你项目上的requestMapping
例如:192.168.1.100:9191/docker 你可以直接改成 你的服务器地址:9191/docker
以上亲身体验了一遍,望能助你一二 如有不足多多指教