1.Linux 安装docker
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
2.docker容器,镜像,仓库理解
Docker镜像
1.是容器运⾏时的只读模板,可以是操作系统(windows/linux等), 软件运⾏环境(nginx/redis/rabbitmq等),⽤户程序(java程序等)
2.可理解为java的class类 class User{}
Docker容器
1.容器包含了某个应⽤运⾏所需要的全部环境,一个镜像可启动多个容器
2.可理解为java的对象 new User();
Docker仓库
1.⽤来保存镜像,有公有仓库和私有仓库
2.可理解为Maven的中央仓库和本地私库
3.阿里云docker镜像仓库:[https://dev.aliyun.com/search.html]
3.docker常用命令总结
docker -v
systemctl start docker
systemctl enable docker
docker search nginx
docker pull nginx:latest
docker images
docker run --name nginx-test -p 8080:80 -d nginx
docker ps
docker logs 容器id
docker rm $(docker ps -a -q)
docker rmi `docker images -q`
docker-compose 用于定义和运行多容器 Docker 应用程序的工具
curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
docker-compose --version
docker-compose up -d
docker-compose kill
4.nginx配置外部conf,及配置https
docker run -d -p 443:443 -p 80:80 --name nginx-dj -v /docker/nginx/www:/usr/share/nginx/html -v /docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /docker/nginx/logs:/var/log/nginx -v /docker/nginx/conf/conf.crt:/etc/nginx/conf.crt nginx
docker run -d -p 443:443 -p 80:80
--name nginx-dj
-v /docker/nginx/www:/usr/share/nginx/html
-v /docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf
-v /docker/nginx/logs:/var/log/nginx
-v /docker/nginx/conf/conf.crt:/etc/nginx/conf.crt
`--docker
|-- nginx
|-- conf
| |-- conf.crt
| | |-- 1_www.ssaks.com_bundle.crt
| | `-- 2_www.ssaks.com.key
| `-- nginx.conf
|-- conf.d
|-- conf.rt
|-- logs
| |-- access.log
| `-- error.log
`-- www
5.nginx 配置文件
http {
include mime.types;
default_type application/octet-stream;
server {
listen 80;
server_name www.sszka.cn;
rewrite ^(.*) https://$server_name$1 permanent;
location / {
root html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
server {
listen 443 ssl;
server_name www.sszka.cn;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
ssl_certificate conf.crt/1_www.aszka.com_bundle.crt;
ssl_certificate_key conf.crt/2_www.aszka.com.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
proxy_pass http://www.aszka.com:8080;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Port $server_port;
}
location ~ .*\.(js|css|jpg|png)$ {
proxy_pass http://www.sszka.cn:8080;
}
}
}
6.docker日志相关
docker-compose logs -f -t --tail=20
docker inspect --format='{{.LogPath}}' CONTAINER_ID
cat /dev/null > xxx-json.log
logging:
driver: "json-file"
options:
max-size: "1m"
max-file: "20"