当前位置: 首页 > article >正文

Docker笔记整理

安装Docker

通过 uname -r 命令查看你当前的内核版本

uname -r

 使用 root 权限登录 Centos。确保 yum 包更新到最新

yum -y update

卸载旧版本(如果安装过旧版本的话)

yum remove docker docker-common docker-selinux docker-engine

安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的

yum install -y yum-utils device-mapper-persistent-data lvm2

设置yum源

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

可以查看所有仓库中所有docker版本,并选择特定版本安装

yum list docker-ce --showduplicates | sort -r

安装docker

sudo yum install -y docker-ce 

启动并加入开机启动

systemctl start docker
systemctl enable docker

验证安装是否成功(有client和service两部分表示docker安装启动都成功了)

docker version

配置阿里云镜像加速

阿里云镜像获取地址:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors,登陆后,左侧菜单选中镜像加速器就可以看到你的专属地址了:

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://***.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

输入:docker info (配置成功)

部署项目

查看所有容器

docker ps -a

查看正在运行的容器

docker ps

查询所有镜像

docker images

查询容器日志

sudo docker logs f02631f986f3(容器ID)

停止容器

docker stop f02631f986f3(容器ID)

删除容器

docker rm 容器ID

删除镜像

docker rmi 镜像ID

制作java项目镜像

docker build -t  demo(项目名):1.0  .

运行项目

docker run -d -p 9999(对外端口):9999(项目端口) demo(项目名):1.0
访问:虚拟机ip:9999(对外端口)/demo(项目名)/

Dockerfile文件样例

#创建一个文件夹将Dockerfile文件和项目jar包放在一起
#注:Dockerfile文件没有后缀.txt
# Docker image for springboot file run
# VERSION 0.0.1
# Author: eangulee
# 基础镜像使用java
FROM java:8
# 作者
MAINTAINER david "8888@qq.com"
# VOLUME 指定了临时文件目录为/tmp。
# 其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp
VOLUME /tmp 
# 将jar包添加到容器中并更名为****.jar
ADD demo.jar demo.jar
# 设置暴露的端口号
#EXPOSE 9999
# 运行jar包

ENTRYPOINT ["java","-jar","/demo.jar"]
wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

安装Nginx

pull时报错

Error response from daemon: Get "https://index.docker.io/v1/search?q=rabbitmq%3A3.9.12-management&n=25": dial tcp: lookup index.docker.io on 192.168.79.2:53: server misbehaving

解决方案:

如果加速镜像配置好,一般就是

vi /etc/resolv.conf
#把里面的内容清除,并改为:
nameserver 8.8.8.8
nameserver 8.8.8.4
#重启网络服务
systemctl restart network

机器网络配置出了问题,解决方案: 

 

先拉取nginx镜像 

docker pull nginx

返回到root目录下使用命令在源主机上新建文件夹

mkdir -p nginx/{conf,html,log}

启动临时nginx

docker run -d --name nginx_test nginx

 拷贝需要挂载的文件

docker cp nginx_test:/etc/nginx/conf.d /root/nginx/conf

docker cp nginx_test:/etc/nginx/nginx.conf /root/nginx/conf/nginx.conf

docker cp nginx_test:/usr/share/nginx/html/index.html /root/nginx/html/index.html

 删除临时nginx

docker rm -f nginx_test

创建挂载的nginx

docker run -d -p 80:80 --name nginx \
-v /root/nginx/conf/conf.d:/etc/nginx/conf.d \
-v /root/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /root/nginx/html/index.html:/usr/share/nginx/html/index.html \
-v /root/nginx/log:/var/log/nginx \
nginx

验证:

修改配置文件 cd到/root/nginx/conf/目录下ch


user  nginx;
worker_processes  auto;

error_log  /var/log/nginx/error.log notice;
pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    #gzip  on;

    include /etc/nginx/conf.d/*.conf;
    
    
    server {
        listen       8080;
        server_name  localhost;
		client_max_body_size 1024M;
        #charset koi8-r;

        #access_log  logs/host.access.log  main;
		
	
		location /demo/ {
            proxy_pass       http://demo_9999/demo/;
            proxy_redirect  default;
            proxy_set_header  Host $host;
            proxy_set_header  X-Real-IP $remote_addr;
            proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_connect_timeout 60; 
            proxy_read_timeout 90; 
            proxy_send_timeout 90;
        }
		

		location ~ ^/nginx-status/ { 
			stub_status on; #Nginx ״̬ݠ࠘Ƥ׃
			access_log off; 
		}
	
    }
    
	upstream demo_9999 {
        #ip使用Docker的ip
		server 172.17.0.1:9999 weight=10;
	}
	
}
wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

保存后重启Nginx

#关闭Nginx容器
docker stop nginx 或者 docker stop 容器ID
#删除Nginx容器
docker rm nginx
#启动
docker run -d -p 8080:8080 --name nginx -v /root/nginx/conf/conf.d:/etc/nginx/conf.d -v /root/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /root/nginx/html/index.html:/usr/share/nginx/html/index.html -v /root/nginx/log:/var/log/nginx nginx
wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

 访问验证


http://www.kler.cn/news/18041.html

相关文章:

  • 算法 DAY55 动态规划11 392.判断子序列 115.不同的子序列
  • MySQL基础(十一)数据处理之增删改
  • 拨云见日:深入理解 HTML 解析器与有限状态机
  • STC89C51系列单片机与ADC0832通信
  • PingCode 的环境和环境管理
  • 你知道ChatGPT里面的G、P、T分别代表什么吗?
  • 谷歌浏览器 | Chrome DevTools系统学习篇-概述
  • 用 Bitmap 实现亿级海量数据统计
  • 反调试与反反调试
  • 南卡OE系列再添新成员,造型犀利有型,性能强劲动听!
  • Java代码重构学习笔记-在对象之间搬移特性
  • Yolov8改进---注意力机制:ShuffleAttention、ECA、EffectiveSE、SE
  • Canal实战使用(集群部署)和原理解析
  • 代码随想录算法训练营day32 | 贪心算法:122.买卖股票的最佳时机II ,55. 跳跃游戏,45.跳跃游戏II
  • 计算机基础必读书籍
  • 从零开始学习Linux运维,成为IT领域翘楚(二)
  • vue3 - 超详细头像裁剪并上传到服务器,支持按照自定义比例裁切图片效果组件插件(详细示例源码教程,一键复制运行开箱即用)
  • 网络安全——传输层安全协议(3)
  • 深度学习入门篇1
  • Filter过滤器和Listener监听器
  • 【致敬未来的攻城狮计划】— 连续打卡第二十五天:RA2E1的 DTC传输模式
  • 深入浅出堆—C语言版【数据结构】
  • 为什么需要使用Docker
  • 掌握这些GitHub搜索技巧,你的开发效率将翻倍!
  • 使用MindSDK的at-server组件开发从机模组
  • ScriptableObject上的prefab内容暂用,ScriptableObject详解
  • random — 伪随机数生成器(史上总结最全)
  • C++学习day--09 字符串比较、运算符
  • 【Java多线程编程】创建线程的基本方式
  • 【Linux】浅谈网络协议栈-网桥br0