docker 如何添加证书
1.升级处理:sudo apt-get update
缺包,包的版本旧等问题可以由此解决,如果不是的话那就是缺失认证,需要生成自己的认证证书。
2.生成自己的认证证书
先建一个文件夹
mkdir -p certs
之后创建证书,证书生成在刚才创建的文件夹中
openssl req -newkey rsa:4096 -nodes -sha256 -keyout /root/certs/domain.key -x509 -days 365 -out /root/certs/domain.crt
之后将certs生成的证书放到/etc/docker/目录下
之后重启docker服务 sudo service docker restart
Reboot之后即可
补充:使用Docker安装的nginx配置HTTPS证书
新建ssl.conf,将文件放入conf.d文件夹中
server { listen 443; server_name localhost; ssl on; root html; index index.html index.htm; ssl_certificate cert/1533224843981.pem; ssl_certificate_key cert/1533224843981.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; location / { root html; index index.html index.htm; } }
注意点:cert为相对路径,若是linux文件夹与nginx.conf,若是window则在conf文件夹下。
运行
docker run --name mynginx -p 443:443 -v /opt/data/nginx/nginx.conf:/etc/nginx/nginx.conf -v /opt/data/nginx/conf.d:/etc/nginx/conf.d/default.conf -v /opt/data/nginx/www:/www -v /opt/data/nginx/cert:/etc/nginx/cert -v /opt/data/nginx/ssl.conf:/etc/nginx/conf.d/ssl.conf -d nginx
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。如有错误或未考虑完全的地方,望不吝赐教。
相关推荐
-
docker cp 拷贝文件 和 进入容器的操作
进入正在运行的容器 # 进入容器 新开一个终端 # docker exec -it 容器id /bin/bash docker exec -it eaac94ef6926 /bin/bash # 进入容器原来的终端 # docker attach 容器id docker attach eaac94ef6926 容器的文件拷贝 # 从容器内拷贝文件到linux主机上 # docker cp 容器id:容器内路径 目标主机路径 docker cp eaac94ef6926:/home/test.tx
-
docker 如何修改mysql的root密码
第一步mysql容器 docker exec -it 容器ID /bin/bash 第二步连接mysql mysql -uroot -p 输入密码后,登录mysql终端 第三步修改密码 SET PASSWORD FOR 'root' = PASSWORD('设置的密码'); 第四步重启 重启mysql容器即可 docker restart 容器ID 补充:docker 启动mysql容器启动初始化默认密码问题 -e MYSQL_ROOT_PASSWORD docker run -p 3308:3
-
docker 免root权限登陆的解决方案
初次使用docker命令的时候会报权限问题 Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.37/containers/json?all=1: dial unix /var/run/docker.sock: connect: permission den
-
使用docker更改容器内root密码的操作
1.在制作dockerfile的时候使用如下命令设置ssh密码 RUN echo "root:root" | chpasswd 2.现在需要在容器生成后更改容器内root密码 使用 docker exec -it centos7.5 root:newpassword | chpasswd 命令执行成功,但是密码更新失败. 正确的方式如下: PASS='newpassword ' && echo -e "KaTeX parse error: Expected '
-
docker容器里面的root权限获取方法
首先你的container得正在运行 可通过sudo docker container ls或者sudo docker ps查看容器的CONTAINER ID 最后执行命令(其中7509371edd48 为上面查到的CONTAINER ID) sudo docker exec -ti -u root 7509371edd48 bash 补充:解决非root用户没有权限运行docker命令的问题 问题描述: "Got permission denied while trying to connec
-
Docker容器没有权限写入宿主机目录的解决方案
在应用docker容器的时候,更多的时候我们会把宿主机的目录挂载到docker容器中. 在宿主机的文件夹权限隶属于root时,我们需要将文件夹的权限用户进行 chown 设置,才能保证目录的内容的正常写入, 下面是一个例子: 使用的是docker版本的jenkins,运行后,出现如下错误: [root@localhost CICD]# docker logs -f jenkins touch: cannot touch '/var/jenkins_home/copy_reference_file
-
docker获取Let's Encrypt永久免费SSL证书的方法
一.起因 官方的cerbot太烦了,不建议使用还不如野蛮生长的acme.sh,而这里介绍docker运行cerbot获取Let's Encrypt永久免费SSL证书 二.选型 cerbot的证书不会自动刷新日期,但是acme.sh自带这功能,每天凌晨0:00自动检测过期域名并且自动续期 选择docker运行cerbot,是为了让服务器里尽量少配置和无意义的程序,方便管理.例如Let's Encrypt需要的Python2.7,git,pip我们都不需要装在宿主机内,容器就自己配置好了 原文 ht
-
docker用root进入容器的操作
首先运行docker容器 运行命令是root用户 sudo docker exec -it -u root ec33c19230ca /bin/bash 补充:Docker中进入容器命令行及后台运行 Docker中我们一般会有两种执行命令的方式,一种是直接进入容器的命令行,在终端执行并查看结果,一种是在后台执行,并不会在终端查看结果. 1.进入容器命令行 su root docker run -i -t ubuntu:16.04 /bin/bash #或者执行下面这句 docker run -i
-
docker 如何添加证书
1.升级处理:sudo apt-get update 缺包,包的版本旧等问题可以由此解决,如果不是的话那就是缺失认证,需要生成自己的认证证书. 2.生成自己的认证证书 先建一个文件夹 mkdir -p certs 之后创建证书,证书生成在刚才创建的文件夹中 openssl req -newkey rsa:4096 -nodes -sha256 -keyout /root/certs/domain.key -x509 -days 365 -out /root/certs/domain.crt 之后
-
给debian的docker容器添加crontab定时任务
现在大部分的docke镜像是基于debian # cat /etc/issue Debian GNU/Linux 9 \n \l Docker容器是不支持后台服务的,像systemctl service crontab这些后台运行的服务是不能通过 RUN systemctl start nginx 类似这种方案实现的,你必须写自己的entrypoint脚本来启动.本文记录了基于Debian的docker容器设置定时任务的方式. 案例背景 我部署一个前端项目,使用nginx镜像,由于官方镜像是基于
-
Docker动态添加端口不需要重新建立镜像的方法
Docker容器在运行期间有时可能会需要修改或者添加暴露的端口,但是有时候运行的容器又不想再另外建立一个新的镜像.这时可以找到docker容器的存放地方,然后直接修改配置文件. 我们的容器都是保存在/var/lib/docker/containers下面. 我的容器是在/var/lib/docker/containers/797f3d0cb82aec7d1c355c7461b5bc5a050c1c0cbbe5d813ede0edad061e6632 每个容器ID对应一个hash_id,可以看到n
-
远程docker服务器携带证书连接的实现方法
目录 1.用脚本给docker进行tls加密 2.修改docker配置,开启远程访问 3.使用idea测试连接 在开始远程连接docker服务器之前,我们需要确保远程服务器上已经安装好了docker,并且docker已经在服务器上正常运行,接下来完成idea携带证书远程连接docker的步骤. 1.用脚本给docker进行tls加密 下面的脚本引用于<docker remote api一键TLS加密>,接下来用这个脚本完成加密证书文件的生成. 在/root目录下创建加密脚本:vi create
-
解决docker的tls(ssl)证书过期问题
问题现象: [root@localhost ~]# docker image pull xxx.com.cn/centos7 Using default tag: latest Error response from daemon: Get https://xxx.com.cn/v1/_ping: x509: certificate has expired or is not yet valid 可能的原因分析: linux使用查看date查看当前时间,与证书的有效时间作比对,得出具体的原因,可
-
Docker高级教程之智能添加与修改防火墙规则
资料简介:如果你有以下痛苦: 1.使用默认docker0桥接方式: 2.修改防火墙规则的话,使用手动修改配置: 3.并且修改时候还得计算来源端口,防止重复端口使用户登陆错误容器: 4.并当容器意外重启,内网ip变化后还得修改规则 那么你可以看看本文了,对你这些痛处都有解决方法. 目前docker容器设置访问规则的话,就2个方法 1.在docker容器创建的时候,使用-p来设置 2.在容器运行中,获取容器的ip,然后在宿主机的iptables力通过nat链做dnat设置 我之前一直使用第2个方法,
-
Centos 7中Docker私有仓库的搭建方法
系统配置: CentOS 7 内核 3.10.0-229.20.1.el7.x86_64 , Docker version 1.8.2 运行 docker registry 执行下列命令: 复制代码 代码如下: docker run / -d / --name private_registry --restart=always / -e SETTINGS_FLAVOUR=dev / -e STORAGE_PATH=/registry-storage /
-
Docker 学习文档(知识结构整理)
一.Docker 简介 Docker 两个主要部件: Docker: 开源的容器虚拟化平台Docker Hub: 用于分享.管理 Docker 容器的 Docker SaaS 平台 -- Docker Hub Docker 使用客户端-服务器 (C/S) 架构模式.Docker 客户端会与 Docker 守护进程进行通信.Docker 守护进程会处理复杂繁重的任务,例如建立.运行.发布你的 Docker 容器.Docker 客户端和守护进程可以运行在同一个系统上,当然你也可以使用 Docker
-
基于docker安装tensorflow的完整步骤
前言 google又一次成为大家膜拜的大神了.google大神在引导这机器学习的方向. 同时docker 也是一个非常好的工具,大大的方便了开发环境的构建,之前需要配置安装. 最近在自学机器学习,大热的Tensorflow自然不能错过,所以首先解决安装问题,为了不影响本地环境,所以本文基于Docker来安装Tensorflow,我的环境是Ubuntu16.04. 安装Docker Docker分为CE和EE,这里我们选择CE,也就是常规的社区版,首先移除本机上可能存在的旧版本. 移除旧版本 $
-
centos7搭建docker私人仓库的方法(kubernetes)
我们平时镜像都是习惯于放在公共仓库的,比如Dockerhub, Daocloud.但在企业里,我们经常会需要搭建公司自己的镜像仓库. 这篇文章讲解如何用docker提供的registry镜像来搭建自己的镜像仓库. 不添加ssl认证的仓库 下面用registry:2.6.2镜像创建docker仓库. 将宿主机的5000端口映射到容器的5000端口. 将宿主机/mnt/registry挂在到容器的/var/lib/registry目录,容器里的这个目录就是存放镜像的地方.这样可以将数据持久化,当容器
随机推荐
- 一篇看懂vuejs的状态管理神器 vuex状态管理模式
- C#解析json字符串总是多出双引号的原因分析及解决办法
- TortoiseSVN使用教程
- IOS 实现一个死锁导致 UI 假死的例子
- Apache实现Web Server负载均衡详解(不考虑Session版)
- python中列表元素连接方法join用法实例
- python实现zencart产品数据导入到magento(python导入数据)
- 简单实用SQL脚本Part SQLServer 2005 链接服务器
- ie9 提示'console' 未定义问题的解决方法
- javascript中的 object 和 function小结
- JavaScript Try...Catch 声明的 使用方法
- float ad浮动广告代码
- android ListView和ProgressBar(进度条控件)的使用方法
- 简单介绍Python中的decode()方法的使用
- JS输出空格的简单实现方法
- 在Win7 中为php扩展配置Xcache
- Android编程实现自定义控件的方法示例
- Java中的逃逸问题心得
- NumPy 数学函数及代数运算的实现代码
- 详解Vue.js 作用域、slot用法(单个slot、具名slot)