docker镜像&nginx配置

什么是容器:
​ 就是在隔离的环境运行的一个进程
 
容器的特点:公用宿主机的内核 运行服务 损耗少 启动快 性能高
容器的虚拟化: 不需要硬件支持 不需要模拟硬件,共用宿主机的内核  启动时间秒机(开机自启动流程)
 
docker主要有组件:镜像  容器  仓库  网络  存储
启动容器必须要有一个镜像 仓库中只存储镜像
容器------镜像---------仓库
ubuntu
​ 标配的软件安装:curl -o
查看指令文件位置:chroot which xxxx
​       find -name "12344"
 
启动镜像:docker run -d -p  80:80 nginx:1.14
​ run  创建并运行一个容器
​ -d 放在后台
​ -p端口映射
​ -v源地址(宿主机):目标地址(容器)
​ :docker run -it --name   cemtos6 centos:6.9
 
镜像:包含linux发行版系统文件,nginx软件
容器:基于镜像,启动一个进程  文件
docker container
docker image
 
挂载素主机
​ docker run -d -p 80:80 -v /data:/usr/share/nginx/html nginx:latest
​ 
docker run -d -p 80:80 -v /data:/usr/share/nginx/html nginx:latest
  238  ls /data/
  239  cd /data/
  240  rz -E
  241  ll  242  unzip xiaoniaofeifei.zip
 
 
设置容器密码:echo ‘123’|password --stdin root
临时退出:ctrl+p 松手后 ctrl+q 
重新进入 docker attach uid 
手动镜像制作:
1. docker run -it -p 1022:22 centos:6.9
2. yum install openssh-server -y 
3. service sshd start  启动
4. echo ‘123’|password --stdin root  设置容器密码
5. docker commit uid(镜像的) centos_ssh:vl   提交为镜像
6. 测试 docker run -d -p 1023:22 centos_ssh:vl /usr/sbin/sshd -D  启动并夯住进程
7. 寻找下载的软件包:yum provides sshd
 
 
 
 
 
手动制作bookManagerSystem的docker:
  3  pip install -i https://pypi.tuna.tsinghua.edu.cn/simple django
    4  cd /opt/
    5  wget  http://www.qstack.com.cn/bookManageSystem.zip
    6  ls
    7  unzip bookManageSystem.zip
    8  ls
    9  cd bookManageSystem
   10  ls
   11  python manage.py runserver 0.0.0.0:8080
   12  ls
   13  vim bookManageSystem/settings.py
   14  vi bookManageSystem/settings.py
   15  yum install vim
   16  yum install vi
   17  cat /etc/os-release
   18  apt-get update
   19  echo 'deb http://mirrors.163.com/debian/ stretch main non-free contrib
deb http://mirrors.163.com/debian/ stretch-updates main non-free contrib
deb http://mirrors.163.com/debian/ stretch-backports main non-free contrib
deb-src http://mirrors.163.com/debian/ stretch main non-free contrib
deb-src http://mirrors.163.com/debian/ stretch-updates main non-free contrib
deb-src http://mirrors.163.com/debian/ stretch-backports main non-free contrib
deb http://mirrors.163.com/debian-security/ stretch/updates main non-free contrib
deb-src http://mirrors.163.com/debian-security/ stretch/updates main non-free contrib' >/etc/apt/sources.list
   20  apt-get update
   21  apt-get install vi -y
   22  apt-get install vim -y
   23  ls
   24  vim bookManageSystem/settings.py
   25  python manage.py runserver 0.0.0.0:8080
 
 
 
 
 
装图书管理系统:
a:启动一个基础容器
docker run -it -p 8080:8080  python:3.6 /bin/bash
b:容器部署bms项目
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple django
cd /opt/
wget  http://www.qstack.com.cn/bookManageSystem.zip
unzip bookManageSystem.zip
cd bookManageSystem
echo 'deb http://mirrors.163.com/debian/ stretch main non-free contrib
deb http://mirrors.163.com/debian/ stretch-updates main non-free contrib
deb http://mirrors.163.com/debian/ stretch-backports main non-free contrib
deb-src http://mirrors.163.com/debian/ stretch main non-free contrib
deb-src http://mirrors.163.com/debian/ stretch-updates main non-free contrib
deb-src http://mirrors.163.com/debian/ stretch-backports main non-free contrib
deb http://mirrors.163.com/debian-security/ stretch/updates main non-free contrib
deb-src http://mirrors.163.com/debian-security/ stretch/updates main non-free contrib' >/etc/apt/sources.list
apt-get update
apt-get install vim -y
vim bookManageSystem/settings.py
python manage.py migrate
python manage.py runserver 0.0.0.0:8080
c:把部署好bms项目的容器提交为镜像(id为容器id)查询方式:docker ps -a
docker commit 3e3313968bf7 bms:v1
d:测试
docker run -d -p 8080:8080 bms:v1 python /opt/bookManageSystem/manage.py runserver 0.0.0.0:8080
 
下载一个 yum list|grep
注意:bash-completion 包 需要重新登录生效
删除镜像:docker rmi    docker image rm
删除容器:启动容器:doker rm    批量:docker rm -f `docker ps -a -q`

docker run -p 80:80 -v /data:/data  -v oldboy:/opt
注意:-v可以多次使用  卷(oldboy不存在会自己创建一个)
 
 
自动创建镜像dockerfile(建议目录固定,例如:opt/dockerfile):
​ 优势:利于传输
1. FROM   基础镜像的名称
2. RUN    安装步骤(run后面可以接多条命令)
3. CMD    容器运行的初始命令
4. 举例:
   1. mkdir centos6.9_sh
   2. cd centos6.9_sh
   3. vim dockerfile
      网络加速:RUN  echo '192.168.11.210 mirrors.aliyun.com'  >>/etc/hosts &&
      curl -o /etc/yum.repos.d/CentOS-Base.repo http://192.168.11.210/repo/Centos-6.repo &&
      yum install openssh-server -y
     
      FROM centos:6.9
      RUN yum install openssh-server -y
      RUN service sshd start
      RUN echo '123'|passwd --stdin root
      CMD ["/usr/sbin/sshd","-D"]
   4. docker image build -t centos_ssh:v2  .(可以绝对路径 或者是绝对路径)  构建镜像
   5.
5. 测试 docker run -d -p 1022:22 centos_ssh:v2
6. 测试 ssh root@10.0.0.58
 
持久化加在卷中:
docker run -d -P nginx :latest  随机映射端口
重新进入正在运行的容器 docker exec  -t 容器uid  /bin/bash
 
还原出厂设置:
1. systemctl stop docker
2. cd /var/lib/docker
3. rm -fr *
4. systemctl start docker
5. 导入镜像,docker load -i docker_centos_ssh
镜像属性变该:
docker run -d -p 5000:5000 --restart=always --name registry -v /opt/myregistry:/var/lib/registry  registry
 
 
仓库上传镜像:
1. 给镜像打标签:
   docker tag centos-ssh:v3  10.0.0.0.58:5000/oldboy/centos_ssh:v3
2. 修改配置文件(如果遇到https问题):
   vim  /etc/docker/daemon.json
   {
   ​ "insecure-registries":["10.0.0.58:5000"]
   }
3. systemctl restart docker  重启docker
4. docker push 10.0.0.58:5000/oldboy/mysql:5.7    提交
  
 
 
上传项目:
593  2019-04-21-16:59:06 python ![img](file:///C:Users91178AppDataLocalTemp\%W@GJ$ACOF(TYDYECOKVDYB.png)manage.py runserver 0.0.0.0:8080
  594  2019-04-21-16:59:48 ls
  595  2019-04-21-17:00:08 vim oldboy/local_![img](file:///C:Users91178AppDataLocalTemp\%W@GJ$ACOF(TYDYECOKVDYB.png)settings.py
  596  2019-04-21-17:05:35 python ![img](file:///C:Users91178AppDataLocalTemp\%W@GJ$ACOF(TYDYECOKVDYB.png)manage.py migrate
  597  2019-04-21-17:06:56 pip install mysqlclient
  598  2019-04-21-17:08:16 yum install mysql-devel -y
  599  2019-04-21-17:08:31 pip install mysqlclient
  600  2019-04-21-17:09:18 yum install python-devel -y
  601  2019-04-21-17:09:27 pip install mysqlclient
  602  2019-04-21-17:09:55 python ![img](file:///C:Users91178AppDataLocalTemp\%W@GJ$ACOF(TYDYECOKVDYB.png)manage.py migrate
  603  2019-04-21-17:10:46 ls
  604  2019-04-21-17:11:33 pip install uwsgi
  605  2019-04-21-17:13:03 which uwsgi
  606  2019-04-21-17:14:08 vim uwsgi.ini
  607  2019-04-21-17:22:03 uwsgi --ini uwsgi.ini
  608  2019-04-21-17:22:14 netstat -lntup
  609  2019-04-21-17:29:48 history
 
 

安装nginx:
yum install wget -y
wget -c https://nginx.org/download/nginx-1.10.3.tar.gz
tar xf nginx-1.10.3.tar.gz
cd nginx-1.10.3/
useradd nginx -s /sbin/nologin -M
 ./configure  --user=nginx --group=nginx --prefix=/usr/local/nginx-1.10.3/ --with-http_stub_status_module  --with-http_ssl_module --with-stream
yum install -y pcre-devel
yum install -y openssl-devel
make && make install
echo $?
netstat -lntup
 
上传解析静态文件:
[root@elk01 nginx-1.10.3]# vim /usr/local/nginx/conf/nginx.conf  修改主配置文件
[root@elk01 nginx-1.10.3]# grep -Ev "#|^$" /usr/local/nginx/conf/nginx.conf.default > /usr/local/nginx/conf/nginx.conf 去除配置文件中的空格 和注释
[root@elk02 html]# vim /usr/local/nginx/conf/conf.d/www.oldboy.com.conf    修改配置文件
/usr/local/nginx/html/xxxx    放静态文件
 
主配置文件:
```python
worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       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"';
    sendfile        on;
    keepalive_timeout  65;
   
    server {
        listen       80;
        server_name  localhost;
 access_log logs/www.oldboy.com main;
 location / {
  root html;
  index index.html;
  }
 }
 include /usr/local/nginx/conf/conf.d/*.conf;
}
```

配置文件
server {
        listen       80;
        server_name  www.oldboy.com;
        access_log logs/www.oldboy.com_access.log main;
        location / {
            root   html/oldboy;
            index  index.html index.htm;
        }
}
 
 
/usr/local/nginx/sbin/nginx -s reload  重启
原文地址:https://www.cnblogs.com/yanhui1995/p/9768671.html