关于学习Docker的一点心得
docker安装 链接:http://www.imooc.com/article/16448
1、image删除
docker rmi e9b5b2500f9c
直接删除报了这个错误
Error response from daemon: conflict: unable to delete e9b5b2500f9c (must be forced) - image is being used by stopped container 7ba129444b80
解决方式:
docker rm 7ba
docker rmi e9b5b2500f9c
2、mysql运行
docker run --name pwc-mysql -e MYSQL_ROOT_PASSWORD=123456 -p 3307:3306 -d mysql:5.6
3、docker部署及运行springboot项目
制作Dockerfile
# Docker image for springboot file run
# VERSION 0.0.1
# Author: pibigstar
# 基础镜像使用java
FROM java:8
# 作者
MAINTAINER pibigstar <741047261@qq.com>
# VOLUME 指定了临时文件目录为/tmp。
# 其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp
VOLUME /tmp
# 将jar包添加到容器中并更名为app.jar
ADD onlineSpider-0.0.1-SNAPSHOT.jar app.jar
# 运行jar包
RUN bash -c 'touch /app.jar'
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
制作镜像
docker build -t wxapi .
docker images //可以看到wxapi的镜像存在
# 如果springboot指定了端口为8088 那么启动的时候端口一定要和映射的端口一致
docker run -d -p 8001:8088 wxapi
4、docker 制作nginx
下载docker镜像
运行
需要在本地文件中设置nginx.conf 和 conf.d 文件
nginx.conf配置如下:
user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
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;
}
conf.d配置如下:
wx.conf 对该域名进行ssl加密
server {
listen 443;
# server_name www.lijiaxi.com.cn;
ssl on;
root html;
index index.html index.htm;
ssl_certificate /etc/ssl/cert/a.pem;
ssl_certificate_key /etc/ssl/cert/a.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
listen 80;
server_name www.lijiaxi.com.cn;
charset utf-8;
location / {
proxy_pass http://39.108.141.63:8001;
proxy_set_header HOST www.lijiaxi.com.cn;
proxy_set_header X-Forward-For $remote_addr;
}
}
docker run -p 80:80 --name mynginx -v $PWD/www:/www -v $PWD/conf/nginx.conf/nginx.conf:/etc/nginx/nginx.conf -v $PWD/logs:/wwwlogs -v $PWD/conf/conf.d:/etc/nginx/conf.d -d nginx
docker run -p 80:80 -p 443:443 --name mynginx -v $PWD/conf/nginx.conf/nginx.conf:/etc/nginx/nginx.conf -v $PWD/logs:/wwwlogs -v $PWD/conf/conf.d:/etc/nginx/conf.d -v $PWD/ssl:/etc/ssl/cert -d nginx
5、查看docker日志
实时查看docker容器日志
$ sudo docker logs -f -t --tail 行数 容器名
例:实时查看docker容器名为s12的最后10行日志
$ sudo docker logs -f -t --tail 10 s12