容器

Docker容器中 man 提示 ‘No manual entry for man’如何解决?

ε祈祈猫儿з 提交于 2020-01-17 06:51:54
man 提示 ‘No manual entry for man’如何解决? 问题出现的场景 解决方法 问题出现的场景 用docker跑起来一个centos7的容器后,在该linux下尝试各种命令,发现用到man指令的时候会出现No manual entry for man提示,特此记录下解决的过程。 解决方法 因为docker的centos镜像是精简版,只是有一些最基础可以运行环境的配置,所以不能够使用一些常用的命令,比如man等等。我们需要在yum.conf配置文件里面修改一下,然后安装即可使用man。 /etc/yum.conf 中注释掉: tsflags=nodocs 这个是禁用了一些软件包 注释完成之后安装man和重新安装其他软件即可使用。 yum install man* -y 注: 上述情况是把docker容器当虚拟机使用的,并不太在乎镜像的大小 来源: CSDN 作者: 程序员小孩 链接: https://blog.csdn.net/qq_17275841/article/details/103933255

docker-以root用户进入容器

▼魔方 西西 提交于 2020-01-17 01:52:51
docker-以root用户进入容器 问题描述 有些时候,进入到容器内部不能进行对文件及文件夹的访问,修改和删除,如在搭建 jenkins 容器的时候,想在容器内部增加文件夹,但是往往系统告知 Permission Denied 解决方案 # exec方式在退出的时候不会将容器服务关闭 docker exec -it --user root container_id /bin/bash 来源: CSDN 作者: iiaythi 链接: https://blog.csdn.net/u013887008/article/details/104010669

docker入门学习理解

拈花ヽ惹草 提交于 2020-01-16 21:30:30
容器技术是和我们的宿主机共享硬件资源及操作系统,可以实现资源的动态分配。容器包含应用和其所有的依赖包,但是与其他容器共享内核。容器在宿主机操作系统中,在用户空间以分离的进程运行。 通过使用容器,我们可以轻松打包应用程序的代码、配置和依赖关系,将其变成容易使用的构建块,从而实现环境一致性、运营效率、开发人员生产力和版本控制等诸多目标。容器可以帮助保证应用程序快速、可靠、一致地部署,其间不受部署环境的影响。容器还赋予我们对资源更多的精细化控制能力,让我们的基础设施效率更高。通过下面这幅图我们可以很直观的反映出这两者的区别所在。 Docker****的优势 Docker****相比于传统虚拟化方式具有更多的优势: · docker 启动快速属于秒级别。虚拟机通常需要几分钟去启动 · docker 需要的资源更少,docker在操作系统级别进行虚拟化, docker 容器和内核交互,几乎没有性能损耗,性能优于通过 Hypervisor 层与内核层的虚拟化 · docker 更轻量, docker 的架构可以共用一个内核与共享应用程序库,所占内存极小。同样的硬件环境, Docker 运行的镜像数远多于虚拟机数量,对系统的利用率非常高 · 与虚拟机相比, docker 隔离性更弱, docker 属于进程之间的隔离,虚拟机可实现系统级别隔离 · 安全性: docker 的安全性也更弱。

简单的Dockerfile 构建jdk+tomcat镜像

浪子不回头ぞ 提交于 2020-01-16 19:44:06
作为一个docker小白,在学习中总结了一些经验分享给大家。本节是简单介绍如何通过Dockerfile 构建jdk+tomcat镜像。 准备步骤: 首先把jdk压缩包和tomcat压缩包放到指定的目录下面。如图: 然后新建一个空文件Dockerfile。 准备步骤完成,下面正式开始构建镜像。 1、编辑Dockerfile内容 #基础镜像 FROM centos:latest #创建者信息 MAINTAINER wangpengfei #添加tomcat和jdk到镜像中 #我的jdk 和 tomcat压缩包在当前目录下 ADD jdk-8u181-linux-x64.tar.gz /usr/local/ ADD apache-tomcat-8.5.38.tar.gz /usr/local/ #设置环境变量 ENV JAVA_HOME /usr/local/jdk1.8.0_181/ ENV PATH $JAVA_HOME/bin:$PATH ENV CLASSPATH .:$JAVA_HOME/lib #配置启动文件的权限 RUN chmod +x /usr/local/apache-tomcat-8.5.38/bin/*.sh #指定于外界交互的端口 EXPOSE 8080 #定义在容器启动之后的运行程序 ENTRYPOINT /usr/local/apache-tomcat-8

获取docker容器的ip地址

烈酒焚心 提交于 2020-01-16 18:45:22
获取单个容器的ip docker inspect <container id> ###输出容器的详细信息,需要逐行查看寻找ip,也可以配合grep等过滤,下面两个语句可以直接显示ip docker inspect --format '{{ .NetworkSettings.IPAddress }}' <container-ID> docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' container_name_or_id 上面方法的函数实现 将下面内容写到 ~/.bashrc中 function docker_ip() { sudo docker inspect --format '{{ .NetworkSettings.IPAddress }}' $1 } source ~/.bashrc 然后: $ docker_ip <container-ID> 获取所有容器的ip 以下三条命令都可以 docker inspect -f '{{.Name}} - {{.NetworkSettings.IPAddress }}' $(docker ps -aq) docker inspect -f '{{.Name}} - {{range .NetworkSettings.Networks}}

docker部署数据库

ε祈祈猫儿з 提交于 2020-01-16 15:15:40
   搜索数据库镜像images     docker search mysql   搜索结果如下图所示:      选择合适自己的mysql版本   因为mysql新版本出来了,很多特性没有学习,所以笔者安装了mysql:5.6 这个版本比较友好   使用docker pull进行下载 docker pull mysql:5.6   等待下载完成之后,使用 docker run 进行部署 docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root --name mysql mysql:5.6   参数解析:     -d : 表示后台运行     -p : 表示端口映射 服务器端口:docker 内部mysql暴露的端口 即 你想自定义的端口号:3306     -e : 环境变量或者参数设置 这里设置的是mysql 的root密码     --name : 此容器的名字 可以通过 docker ps -a 进行查看 对容器的操作可以通过容器id 也可以通过容器名     mysql:5.6 指的是使用那一个镜像(image) 进行部署   如此mysql就部署成功了   进入容器,使用mysql,使用docker exec进入容器内部 docker exec -it mysql /bin/bash   参数解析:     -it

关于对docker run --link的理解

别说谁变了你拦得住时间么 提交于 2020-01-16 13:40:48
原文: 关于对docker run --link的理解 前言 在实践中,自己会遇到2个容器之间互相访问通信的问题,这个时候就用到了docker run --link选项。自己也花了一段时间泡官网研究了--link的用法,把自己对--link的理解分享下。注意!docker官方已不推荐使用docker run --link来链接2个容器互相通信,随后的版本中会删除--link,但了解其原理,对如何使2个容器之间互相通信还是有帮助的。 1. docker run --link的作用 docker run --link可以用来链接2个容器,使得源容器(被链接的容器)和接收容器(主动去链接的容器)之间可以互相通信,并且接收容器可以获取源容器的一些数据,如源容器的环境变量。 --link的格式: --link <name or id>:alias 其中,name和id是源容器的name和id,alias是源容器在link下的别名。 eg: 源容器 docker run -d --name selenium_hub selenium/hub 创建并启动名为selenium_hub的容器。 selenium_hub容器 接收容器 docker run -d --name node --link selenium_hub:hub selenium/node-chrome-debug

elk-filebeat收集docker容器日志

时光总嘲笑我的痴心妄想 提交于 2020-01-16 08:59:31
目录 使用docker搭建elk filebeat安装与配置 docker容器设置 参考文章 首发地址 使用docker搭建elk 1、使用docker-compose文件构建elk。文件如下: version: '3' services: elk: image: sebp/elk:640 ports: - "5601:5601" - "9200:9200" - "5044:5044" environment: - ES_JAVA_OPTS=-Xms512m -Xmx512m volumes: - ~dockerdata/elk:/var/lib/elasticsearch 2、执行docker-compose up -d 启动elk。可以使用docker logs 命令查看elk启动日志。启动成功后打开浏览器访问 http://127.0.0.1:5601 filebeat安装与配置 关于filebeat本文也不做过多介绍。只讲解安装与配置。 1、filebeat的docker-composep version: '3' services: filebeat: image: prima/filebeat:6 #restart: always volumes: - ./config/filebeat.yml:/filebeat.yml - ~/dockerdata/filebeat

(亲测有效)Docker 搭建 nginx + mysql + php 开发环境

旧巷老猫 提交于 2020-01-16 08:18:40
一、下载安装 Docker 访问 这里 进行下载 下载安装包并安装成功后,菜单栏会出现 Docker 的标识,可以开始搭建我们的环境了。如下图: 二、拉取 mysql-5.6 / php-fpm-5.6 / nginx 镜像文件并安装 拉取镜像 $ docker pull mysql:5 . 6 $ docker pull php:5 . 6 - fpm $ docker pull nginx 等待全部拉取完成后,使用 docker images 查看所有镜像 安装、启动mysql docker run -- name mysql - e MYSQL_ROOT_PASSWORD=123456 - p 33267:3306 - v ~ / web / mysql / data : / var / lib / mysql - v ~ / web / mysql / conf: / etc / mysql / conf . d - v ~ / web / mysql / mysql_sock: / var / run / mysqld - d mysql:5 . 6 –name mysql 指定容器名称为 mysql -e MYSQL_ROOT_PASSWORD=123456 初始化 root 用户的密码为 123456 -p 33267:3306 将容器的 3306 端口映射到主机的

Ball

微笑、不失礼 提交于 2020-01-16 06:40:05
図のように二股に分かれている容器があります。1 から 10 までの番号が付けられた10 個の玉を容器の開口部 A から落とし、左の筒 B か右の筒 C に玉を入れます。板 D は支点 E を中心に左右に回転できるので、板 D を動かすことで筒 B と筒 C のどちらに入れるか決めることができます。 開口部 A から落とす玉の並びを与えます。それらを順番に筒 B 又は筒 Cに入れていきます。このとき、筒 B と筒 C のおのおのが両方とも番号の小さい玉の上に大きい玉を並べられる場合は YES、並べられない場合は NO と出力するプログラムを作成してください。ただし、容器の中で玉の順序を入れ替えることはできないものとします。また、続けて同じ筒に入れることができるものとし、筒 B, C ともに 10 個の玉がすべて入るだけの余裕があるものとします。 Input 複数のデータセットが与えられます。1行目にデータセット数 N が与えられます。つづいて、 N 行のデータセットが与えられます。各データセットに 10 個の番号が左から順番に空白区切りで与えられます。 Output 各データセットに対して、YES または NO を1行に出力して下さい。 Sample Input 2 3 1 4 2 5 6 7 8 9 10 10 9 8 7 6 5 4 3 2 1 Output for the