Docker安装
yum remove docker*
yum install -y yum-utils
yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
安装最新的docker
yum install -y docker-ce docker-ce-cli containerd.io
systemctl enable docker --now
Docker操作
docker images #查看安装了哪些镜像
docker rmi 5b0542ad1e77 #删除镜像,也可以按镜像名删除
docker ps #查看正在运行的镜像
docker run --name=myredis -d redis #在后台运行redis,且应用名为myredis
docker run --name=myredis -d --restart=always redis #启动并设置开机自启动
docker run --name=myredis -d --restart=always -p 88:80 redis #访问88时会转到80
docker rm -f myredis #强制停止正在运行docker, 并从容器中删除
docker start myredis #启动已经停止的程序
docker stop myredis #停止正在运行的程序
docker ps -a #查看所有的程序,包括停止的程序
docker update myredis --restart=always
进入容器进行操作
docker exec -it 2b61c82acdc1 /bin/bash #进入相应的容器,相当于我们又进入了一层linux
#修改nginx的欢迎页
cd /usr/share/nginx/html
echo "<h1>Welcome to atguigu</h1>" > index.html
exit
提交变化
将我们在容器中做的变化保存为镜像
docker commit -a "xiajunxiang" -m "change html" 2b61c82acdc1 mynginx:v1.0
部署redis
我先需要先在主机上设置配置文件和数据文件的挂载点,方便我们设置文件
#在主机上设置配置文件的挂载点
sudo cd /tmp
sudo mkdir /redis
sudo vi redis.conf
设置配置文件,数据永久保存
appendonly yes
设置数据文件的挂载点
sudo mkdir data
我们启动镜像,并设置挂载点,但是我们要注意读取容器中的配置文件进行启动,因为挂载点会覆盖容器中的配置文件
sudo docker run -v /tmp/redis/redis.conf:/etc/redis/redis.conf \
-v /tmp/redis/data:/data \
-d --name myredis \
-p 6379:6379 \
redis redis-server /etc/redis/redis.conf
redis设置密码访问
sudo cd /tmp/redis
vi redis.conf
#在配置文件中设置密码
requirepass abc123
设计一个JavaDemo
server.port=8080
spring.data.redis.host=192.168.101.3
spring.data.redis.password=abc123
@RestController
public class CountController {
@Autowired
RedisTemplate redisTemplate;
@GetMapping("/getcount")
public String getCount(){
Long count = redisTemplate.opsForValue().increment("count");
return "总共访问了【" + count + "】次";
}
}
设计一个文件Dockerfile
FROM openjdk:latest
LABEL maintainer=xiajunqiang
COPY target/*.jar /app.jar
ENTRYPOINT ["java", "-jar", "/app.jar"]
将jar和Dockerfile放在新建文件夹app中
我们使用xfp将文件夹传到linux中的/tmp文件夹中
构建镜像
我们在/tmp/app文件夹下执行下面的操作
#java-demo:v1.0表示镜像名称 .表示当前文件夹
docker build -t java-demo:v1.0 -f Dockerfile .