安装Docker
# 安装docker
yum 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
# 运行redis
docker 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-alpine
Trying to pull repository docker.io/library/openjdk ...
Pulling from docker.io/library/openjdk
e7c96db7181b: Pull complete
f910a506b6cb: Pull complete
c2274a1a0e27: Pull complete
Digest: sha256:94792824df2df33402f201713f932b58cb9de94a0cd524164a0f2283343547b3
Status: Downloaded newer image for docker.io/openjdk:8-jdk-alpine
---> a3562aa0b991
Step 2/5 : VOLUME /tmp
---> Running in 3d063017e1f7
---> 64bb3506a383
Removing intermediate container 3d063017e1f7
Step 3/5 : ADD asuka-1.0.0.jar app.jar
---> 1fde1161991d
Removing intermediate container f433739c47fd
Step 4/5 : ENV spring.profiles.active "prod"
---> Running in c657901e788f
---> c1a07c29c162
Removing intermediate container c657901e788f
Step 5/5 : ENTRYPOINT java -Djava.security.egd=file:/dev/./urandom -jar /app.jar
---> Running in 9af1d895f575
---> b1324ccfb978
Removing intermediate container 9af1d895f575
Successfully 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 images
REPOSITORY TAG IMAGE ID CREATED SIZE
asuka/asuka latest b1324ccfb978 10 minutes ago 199 MB
docker.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 ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
20f0703b4203 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,在下一章介绍