安装Docker
# 安装dockeryum install docker# 检验安装是否成功docker --version# 出现“Docker version 1.13.1, build 64e9980/1.13.1”类似提示时说明安装成功# 启动systemctl start docker# 切换到阿里云镜像源sudo vim /etc/docker/daemon.json# 内容如下:{"registry-mirrors": ["https://m9r2r2uj.mirror.aliyuncs.com"]}# 保存退出,重启docker# 重启systemctl restart docker
安装Mysql
# 拉取mysql 5.7.27版本docker pull mysql:5.7.27# 运行mysql并配置root密码docker run --name mymysql -e MYSQL_ROOT_PASSWORD=admin -d -p 3306:3306 mysql:5.7.27
- docker run表示运行
- —name mymysql 表示起个名字叫mymysql
- -e MYSQL_ROOT_PASSWORD=admin 表示设置root的密码admin
- -d 表示以后台服务形式运行redis
-p 3306:3306表示把服务器的3306映射到docker的3306端口,这样就可以通过服务器的端口访问docker的端口
安装Redis
# 拉取redis的最新镜像docker pull redis# 运行redisdocker run --name myredis -p 6379:6379 -d redis redis-server --appendonly yes
docker run表示运行
- —name myredis 表示起个名字叫myredis
- -p 6379:6379表示把服务器的6379映射到docker的6379端口,这样就可以通过服务器的端口访问docker的端口
- -d 表示以后台服务形式运行redis
- redis redis-server —appendonly yes表示开启持久化缓存模式,可以存到硬盘
上传项目源码到服务器
使用ftp上传构建Docker镜像并启动
第一次构建可能很慢,当出现以下内容时表明构建成功:mvn clean package docker:build
...Step 1/5 : FROM openjdk:8-jdk-alpineTrying to pull repository docker.io/library/openjdk ...Pulling from docker.io/library/openjdke7c96db7181b: Pull completef910a506b6cb: Pull completec2274a1a0e27: Pull completeDigest: sha256:94792824df2df33402f201713f932b58cb9de94a0cd524164a0f2283343547b3Status: Downloaded newer image for docker.io/openjdk:8-jdk-alpine---> a3562aa0b991Step 2/5 : VOLUME /tmp---> Running in 3d063017e1f7---> 64bb3506a383Removing intermediate container 3d063017e1f7Step 3/5 : ADD asuka-1.0.0.jar app.jar---> 1fde1161991dRemoving intermediate container f433739c47fdStep 4/5 : ENV spring.profiles.active "prod"---> Running in c657901e788f---> c1a07c29c162Removing intermediate container c657901e788fStep 5/5 : ENTRYPOINT java -Djava.security.egd=file:/dev/./urandom -jar /app.jar---> Running in 9af1d895f575---> b1324ccfb978Removing intermediate container 9af1d895f575Successfully built b1324ccfb978[INFO] Built asuka/asuka[INFO] ------------------------------------------------------------------------[INFO] BUILD SUCCESS[INFO] ------------------------------------------------------------------------[INFO] Total time: 19:56 min[INFO] Finished at: 2020-07-21T16:42:31+08:00[INFO] ------------------------------------------------------------------------
使用 docker images 查看构建好的镜像
[root@VM_0_4_centos project]# docker imagesREPOSITORY TAG IMAGE ID CREATED SIZEasuka/asuka latest b1324ccfb978 10 minutes ago 199 MBdocker.io/openjdk 8-jdk-alpine a3562aa0b991 14 months ago 105 MB
asuka/asuka 就是我们构建好的镜像,下一步就是运行该镜像
# -p 绑定asuka的8088端口(程序端口,后面一个),映射到服务器的8088端口(服务器端口,前面一个)docker run -p 8088:8088 -t asuka/asuka
启动完成之后使用docker ps查看正在运行的镜像:
[root@VM_0_4_centos project]# docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES20f0703b4203 asuka/asuka "java -Djava.secur..." About a minute ago Up About a minute 0.0.0.0:8088->8031/tcp jolly_snyder
提示
- docker是个好东西,在服务器资源有限时是最好的选择,没有之一
- 使用docker compose编排,部署会更简单
- docker conpose,在下一章介绍
