使用docker搭建项目

安装docker

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 更新源
yum -y update

# centos一键安装docker
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

# 查询docker版本
# 提示Docker version 24.0.0, build 98fdcd7就算安装成功
docker -v

# 启动docker
systemctl start docker

# 查看docker运行状态
systemctl status docker

# 设置docker自启动
systemctl enable docker

docker换源

1
2
3
4
5
6
7
8
9
10
11
# 查看docker信息
docker info
# Client: Docker Engine - Community
# Version: 24.0.5
# ......
# Insecure Registries:
# 127.0.0.0/8
# Live Restore Enabled: false

# 创建或编辑daemon.json文件
vi /etc/docker/daemon.json

修改daemon.json

1
2
3
4
// 在daemon.json文件中修改如下
{
"registry-mirrors":["https://pee6w651.mirror.aliyuncs.com"]
}

保存daemon.json

1
2
3
4
5
6
7
8
9
10
11
12
13
# 重启docker
systemctl restart docker

# 查看docker信息
docker info
# Client: Docker Engine - Community
# Version: 24.0.5
# ......
# Insecure Registries:
# 127.0.0.0/8
# Registry Mirrors:
# https://pee6w651.mirror.aliyuncs.com/
# Live Restore Enabled: false

运行nginx容器

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 拉取nginx镜像
docker pull nginx
# 创建对应的文件夹
mkdir -p /root/nginx/conf
# 运行容器
docker run --name nginx -p 80:80 -d nginx
# 将容器中的文件导出
docker cp nginx:/etc/nginx/nginx.conf /root/nginx/conf/nginx.conf
# 删除容器
docker ps -a
docker stop nginx
docker rm nginx
# 运行容器
docker run -p 80:80 --name nginx -v /root/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /data/:/data/ -d nginx:latest

封装镜像

编写Dockerfile

1
2
3
4
5
6
7
8
9
10
11
12
# 创建并编写Dockerfile
vi Dockerfile
# 拉取openjdk8作为基础镜像
FROM openjdk:8
# 作者
MAINTAINER zhb <zhuhebin0928@163.com>
# 添加jar到镜像并重命名
ADD mytest.jar mytest.jar
# 镜像启动后暴露的端口
EXPOSE 8090
# jar运行命令,参数使用逗号隔开
ENTRYPOINT ["java","-jar","mytest.jar"]

构建docker镜像

1
docker build -t mytest .

创建并运行容器

1
docker run -d --name mytest -p 8090:8090 mytest

导出镜像(导出容器再导入可能会出问题)

1
docker save -o mytest.tar mytest

导入镜像

1
docker load -i mytest.tar

重新启动容器

1
docker run -d --name mytest -p 8090:8090 mytest

安装docker-compose

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 建议去官网下载最新版!!!
# https://docs.docker.com/compose/install/standalone/
# 下载docker-compose文件
curl -L "https://get.daocloud.io/docker/compose/releases/download/v2.2.3/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 或者
curl -SL "https://github.com/docker/compose/releases/download/v2.20.3/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

# 添加可执行权限
sudo chmod +x /usr/local/bin/docker-compose

# 测试安装结果
docker-compose --version
# 或者
docker-compose -v

使用docker-compose

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# 创建docker-compose.yml文件
touch docker-compose.yml

# 编写对应的docker-compose.yml文件
vi docker-compose.yml
version: "3"
services:
mytest:
image: mytest:latest
restart: always
container_name: mytest
network_mode: "host"
ports:
- 8090:8090
nginx:
image: nginx:latest
restart: always
container_name: nginx
network_mode: "host"
volumes:
- /root/nginx/conf/nginx.conf:/etc/nginx/nginx.conf
- /data/:/data/

# 创建并启动全部容器
docker-compose up -d

# 查看全部容器
docker-compose ps