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笔记整理_第1张图片

部署项目

查看所有容器

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 "[email protected]"
# 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

验证:

Docker笔记整理_第2张图片

修改配置文件 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==

 访问验证

Docker笔记整理_第3张图片

你可能感兴趣的:(笔记整理,docker,笔记,容器)