docker 安装nginx、redis

nginx

创建容器
这是创建容器的格式

Usage:  docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

对于一些选项我们可以使用命令来进行查看

docker run --help

docker 安装nginx、redis_第1张图片
创建nginx容器
–restart是机器重启他也会直接运行
我们指定的端口号是 外部访问的是9001端口映射到nginx本身的端口80.
我们要记得再阿里云的安全组中添加相应的端口

docker run --name=mynginx -d -p 9001:80 --restart=always nginx:1.20.0

在这里插入图片描述

docker rm -f 名字 强制删除正在运行的容器
docker update  修改已经创建的容器选项

修改首页的显示
使用交互模式进入容器

docker exec -it mynginx /bin/bash

找到index.html

/usr/share/nginx/html
写入并覆盖
echo "

hello

" > index.html

打包镜像
我们可以把我们自己修改好的容器打包成一个进行,等我们在需要使用的时候可以直接拿来使用。

docker commit --help  查看相关的参数
格式
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]

Options:
  -a, --author string    Author (e.g., "John Hannibal Smith ")
  -c, --change list      Apply Dockerfile instruction to the created image
  -m, --message string   Commit message
  -p, --pause            Pause container during commit (default true)

修改的首页

docker commit -a "阿威" -m "修改首页" mynginx updateNginx:v1.0

镜像的传输
1 将镜像打包成压缩包

 docker save --help

Usage:  docker save [OPTIONS] IMAGE [IMAGE...]

Save one or more images to a tar archive (streamed to STDOUT by default)

Options:
  -o, --output string   Write to a file, instead of STDOUT
docker save -o aa.tar updatenginx:v1.0
[root@iZ2ze8qk0bio1j3bgylosgZ ~]# ls
aa.tar  softwares

我们可以使用传输工具进行传输,也可以直接用命令进行复制
拷贝到root目录下

 scp aa.tar root@ip:/root

加载镜像

docker load --help

Usage:  docker load [OPTIONS]

Load an image from a tar archive or STDIN

Options:
  -i, --input string   Read from tar archive file, instead of STDIN
  -q, --quiet          Suppress the load output

直接加载镜像

docker load -i aa.tar

镜像上传
首先是在我们的dockerhub中创建一个仓库

docker tag local-image:tagname new-repo:tagname
docker push new-repo:tagname

先将我们本地的将重新打包成一个新的带有用户名的镜像

docker tag updatenginx:v1.0 awdockerhub/mynginx:v1.0

然后登录

docker login

push上传

docker push awdockerhub/myngingx:v1.0

docker 安装nginx、redis_第2张图片
数据挂载
ro表示只读,rw表示读写
他会自动给我们创建本地文件,但是不会创建挂载文件夹里面的文件,这个需要我们自己创建

docker run --name "mynginx" -p 9001:80 -v /usr/nginx/index.html:/usr/share/nginx/html:ro -d nginx:1.20.0

创建文件并写入

echo "

挂载

" > index.html

查看容器执行的日志

docker logs 容器id

如果我们这样设置挂载目录他会默认的把nginx.conf看成文件夹,所以我们要提前创建好这个文件,

docker run --name "mynginx" -p 9001:80 \
-v /usr/nginx/nginx.conf:/etc/nginx/nginx.conf \
-d nginx:1.20.0

我们通过上面的挂载,会发现很麻烦,我们可以在已经启动的容器中直接复制文件

docker cp mynginx:/etc/nginx/nginx.conf /usr/nginx/nginx.conf
同样还可以反向复制
docker cp /usr/nginx/nginx.conf mynginx:/etc/nginx/nginx.conf

redis安装

首先是我么需要先去dockerhub上面查找redis
我们可以他看到他的容器创建

$ docker run -v /myredis/conf:/usr/local/etc/redis --name myredis redis redis-server /usr/local/etc/redis/redis.conf

我们需要先创建本地挂载文件,data、redis.conf

我们需要在配置文件中添加
appendonly yes #开启持久化存储
requirepass root #设置密码

自定义创建 还是那句话要开启阿里云安全组

docker run  --name "myredis" -p 6379:6379 \
-v /usr/redis/redis.conf:/usr/local/etc/redis/redis.conf \
-v /usr/redis/data:/data \
redis:6.2 \
redis-server /usr/local/etc/redis/redis.conf #服务启动指定对应的文件

测试连接成功

docker 安装nginx、redis_第3张图片

简单部署java项目

测试环境是统计访问的人数,这中动态的我们要把他存储到redis中。
创建java项目
测试接口

@RestController
public class H {
    @Autowired
    private StringRedisTemplate stringRedisTemplate;

    @RequestMapping("/hello")
    public String hello(){
        //每次调用这个方法他就会默认+1
        Long count = stringRedisTemplate.opsForValue().increment("count");
        return "有"+count+"人访问了这个网站";
    }
}

配置文件

spring.redis.host=k12code.online
spring.redis.password=root

maven

 
            org.springframework.boot
            spring-boot-starter-web
        

        
            org.springframework.boot
            spring-boot-starter-data-redis
        

        
            org.springframework.boot
            spring-boot-starter-test
            test
        

首先是本地测试 成功docker 安装nginx、redis_第4张图片
上传
首先是我们把项目打包成jar
docker 安装nginx、redis_第5张图片
Dockerfile

FROM openjdk:8-jdk-oracle #基础环境
LABEL maintainer=aw #作者
COPY target/*.jar /app.jar #拷贝新文件
ENTRYPOINT ["java","-jar","/app.jar"] #执行命令

我们把它放到一个新的文件中
docker 安装nginx、redis_第6张图片
上传至服务器
在这里插入图片描述
在test文件夹中执行命令

docker build -t java-demo:v1.0 -f Dockerfile .

运行容器

docker run -d -p 8080:8080 java-demo:v1.0

查看容器的状态 如果文件有问题容器会启动不成功 阿里云端口开放

 docker ps

docker 安装nginx、redis_第7张图片
redis
docker 安装nginx、redis_第8张图片

你可能感兴趣的:(docker,docker,nginx,redis)