(1)Docker的安装  官网安装链接 :https://yeasy.gitbooks.io/docker_practice/content/

卸载旧版本 旧版本的 Docker 称为 docker 或者 docker-engine

使用以下命令卸载旧版本:

$ sudo yum remove docker

\ docker-common

\ docker-selinux

\ docker-engine

使用 yum 安装 执行以下命令安装依赖包:

$ sudo yum install -y yum-utils

\ device-mapper-persistent-data

\ lvm2 鉴于国内网络问题,强烈建议使用国内源,官方源请在注释中查看。

执行下面的命令添加 yum 软件源:

$ sudo yum-config-manager

\ --add-repo

\ https://mirrors.ustc.edu.cn/docker-ce/linux/centos/docker-ce.repo

更新 yum 软件源缓存,并安装 docker-ce 。

$ sudo yum makecache fast $ sudo yum install docker-ce

启动 Docker CE

$ sudo systemctl enable docker

$ sudo systemctl start docker

建立 docker 组:

$ sudo groupadd docker

将当前用户加入 docker 组:

$ sudo usermod -aG docker $USER

测试 Docker 是否安装正确 $ docker run hello-world

Unable to find image 'hello-world:latest' locally latest:

Pulling from library/hello-world ca4f61b1923c: Pull complete Digest: sha256:be0cd392e45be79ffeffa6b05338b98ebb16c87b255f48e297ec7f98e123905c

Status: Downloaded newer image for hello-world:latest Hello from Docker! This message shows that your installation appears to be working correctly. To generate this message, Docker took the following steps: 1. The Docker client contacted the Docker daemon. 2. The Docker daemon pulled the "hello-world" image from the Docker Hub. (amd64) 3. The Docker daemon created a new container from that image which runs the executable that produces the output you are currently reading. 4. The Docker daemon streamed that output to the Docker client, which sent it to your terminal. To try something more ambitious, you can run an Ubuntu container with: $ docker run -it ubuntu bash Share images, automate workflows, and more with a free Docker ID: https://cloud.docker.com/ For more examples and ideas, visit: https://docs.docker.com/engine/userguide/

若能正常输出以上信息,则说明安装成功

默认配置下,如果在 CentOS 使用 Docker CE 看到下面的这些警告信息:

WARNING: bridge-nf-call-iptables is disabled

WARNING: bridge-nf-call-ip6tables is disabled

请添加内核配置参数以启用这些功能。

$ sudo tee -a /etc/sysctl.conf <<-EOF

net.bridge.bridge-nf-call-ip6tables = 1

net.bridge.bridge-nf-call-iptables = 1

EOF

然后重新加载 sysctl.conf 即可

$ sudo sysctl -p

docker run -itd -v /var/jenkins_home:/var/jenkins jenkins

这里的 -v /var/jenkins_home:/var/jenkins

是指将本地的数据卷内容挂在到容器。

/var/jenkins_home:为本地目的,这里需要先从容器中将需要的复制内容通过docker cp命令到本地,然后再重新使用docker run命令启动容器。

/var/jenkins:为容器的目录,这里会将本地的目录内容映射过来。

(2)docker 安装 jenkins (参照:http://blog.csdn.net/mmd0308/article/details/77206563?locationNum=6&fps=1)

docker pull jenkins #获取jenkins镜像

mkdir /home/jenkins  #创建目录作为数据卷

docker run -itd -p 8080:8080 -p 50000:50000 --name=jenkins  -v /home/jenkins:/var/jenkins_home jenkins  # 最后的jenkins ,是你pull下来的镜像名

  • -p 8080:8080 -p 50000:50000 进行端口映射

  • -v /home/jenkins:/var/jenkins_home 磁盘挂载

然后就可以通过 http://主机IP:8080访问jenkins了

(3)docker安装gogs (参照:https://github.com/gogits/gogs/tree/master/docker)

建议先创建 /var/gogs目录

# Pull image from Docker Hub.
$ docker pull gogs/gogs # Create local directory for volume.
$ mkdir -p /var/gogs # Use `docker run` for the first time.
$ docker run --name=gogs -p 10022:22 -p 10080:3000 -v /var/gogs:/data gogs/gogs # Use `docker start` if you have stopped it.
$ docker start gogs 然后可以通过 http://主机IP:10080访问gogs (4)docker安装tomcat(参照:https://hub.docker.com/_/tomcat/)
docker pull tomcat:8.0 #后面的版本号根据需求写
创建目录 mkdir /usr/local/tomcat
docker run -itd -p 8080:8080 --name tomcat --restart=always -v /usr/local/tomcat:/var/tomcat_home tomcat:8.0 #这里最后一定要写你pull后面的全名 tomcat:8.0
前面的参数都差不多
--restart=always #表示一直启动这个Tomcat (需要后台启动的软件运行时都可以加上这个参数)

Docker基本概念:

Union File System(Union FS) : 轻量级的高性能的分层文件系统,支持将文件系统中的修改进行提交和层层叠加,这个特性使得镜像可以通过分层实现和继承同时支持将不同目录挂载到同一个虚拟文件系统下。

镜像的构建:镜像构建时,会一层层构建,前一层是后一层的基础。每一层构建完就不会再发生改变,后一层上的任何改变只发生在自己这一层。比如,删除前一层文件的操作,实际不是真的删除前一层的文件,而是仅在当前层标记为该文件已删除。在最终容器运行的时候,虽然不会看到这个文件,但是实际上该文件会一直跟随镜像。因此,在构建镜像的时候,需要额外小心,每一层尽量只包含该层需要添加的东西,任何额外的东西应该在该层构建结束前清理掉。

Docker容器:容器的实质是进程,但与直接在宿主执行的进程不同,容器进程运行于属于自己的独立的
命名空间。因此容器可以拥有自己的 root 文件系统、自己的网络配置、自己的进程空间,甚至自己的用户 ID
空间。容器内的进程是运行在一个隔离的环境里,使用起来,就好像是在一个独立于宿主的系统下操作一样。这种特性使得容器封装的应用比直接在宿主运行更加安全。

镜像和容器的关系:镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的 类 和 实例 一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。

Docker 最佳实践的要求,容器不应该向其存储层内写入任何数据,容器存储层要保持无状态化。所有的文件写入操作,都应该使用 数据卷(Volume)、或者绑定宿主目录,在这些位置的读写会跳过容器存储层,直接对宿主(或网络存储)发生读写,其性能和稳定性更高。

数据卷的生存周期独立于容器,容器消亡,数据卷不会消亡。因此,使用数据卷后,容器删除或者重新运行之后,数据却不会丢失。

Docker仓库:一个 Docker Registry 中可以包含多个仓库(Repository);每个仓库可以包含多个标签(Tag);每个标签对应一个镜像。

原生应用程序: 外观和运行起来的性能是最佳的  (性能原生就是指性能最佳)

Docker镜像:Docker 镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包删除容器:可以使用 docker container rm 来删除一个处于终止状态的容器。例如
$ docker container rm trusting_newton
如果要删除一个运行中的容器,可以添加 -f 参数。Docker 会发送 SIGKILL 信号给容器。

镜像不包含任何动态数据,其内容在构建之后也不会被改变。

构建docker的连接:http://www.linuxidc.com/Linux/2015-07/120287.htm

查找某些特定的软件包:yum search vim

dangling images: 是指那些为 none的镜像,可以通过 docker image prune  来删除

docker删除本地镜像: docker image rm 【id】    docker image rm 7c1(ID前三位)

docker停止所有的镜像 docker stop $(docker ps -a -q)

docker删除所有的容器:docker rm $(docker ps -a -q)

运行Dockerfile创建的镜像:docker run --name web2 -d -p 81:80 nginx:v2

COPY和 ADD:此在 COPY 和 ADD 指令中选择的时候,可以遵循这样的原则,所有的文件复制均使用
COPY 指令,仅在需要自动解压缩的场合使用 ADD

Docker查看所有镜像:docker image ls

容器和镜像的删除:https://www.cnblogs.com/q4486233/p/6482711.html

构建镜像和启动容器:
使用 docker build 来构建这个镜像:
$ docker build -t myweb:v1 .
构建好了后,我们启动一个容器:
$ docker run -d --name web -p 80:80 myweb:v1

Docker主要命令:  (这是可以查看镜像的网址:https://hub.docker.com/explore/)

docker search nginx     #查询nginx,如果有可以直接pull

docker pull nginx    #从docker hub 中获取nginx的镜像

docker image ls  #查看本地所有的镜像    //docker images 等价于 docker image ls :列出所有镜像

docker run 命令可以使得镜像产生容器  ,启动程序

示例: docker run -itd -p 80:80 --name nginx -v /var/nginx:/var/nginx_home ngnix

-i 让容器的标准输入保持打开。

-t 选项让Docker分配一个伪终端(pseudo-tty)并绑定到容器的标准输入上。

-d: 需要让 Docker 在后台运行而不是直接把执行命令的结果输出在当前宿主机下。

-p: 指定端口,前面的80是你访问的端口,后面80是该程序本来的端口

--name : 是你的容器名

-v :定义数据卷  /var/nginx是数据卷的位置,/var/nginx_home是数据卷挂载目录

docker ps #列出所有在运行的容器

docker ps -a #列出所有的容器(运行、不运行)

docker rm 容器id #删除容器(正在运行的容器删除 需要先执行 docker stop 容器id 命令)

docker start 容器id :重新启动容器

Docker的安装以及使用Docker安装jenkins,gogs,tomcat(一)的更多相关文章

  1. Docker常用命令,Docker安装Nginx、Redis、Jenkins、tomcat、MySQL

    常用命令 拉取镜像:docker pull xxx启动镜像:docker run --name xxx 8080:8080 -d xxx查看容器:docker ps xxx 停止容器:docker s ...

  2. docker安装mysql、es、jenkins等一些步骤以及如何设置docker国内镜像

    CentOS7安装Docker步骤: (0)删除旧的可能安装过的包 yum remove docker \                   docker-client \              ...

  3. Docker安装MongoDB、MySQL、Jenkins、Gitlab、Nginx

    Docker安装MongoDB.MySQL.Jenkins.Gitlab.Nginx 安装MongoDB 1. 拉取镜像 $ sudo docker pull mongo 2. 运行镜像 $ sudo ...

  4. Docker学习(二)- Docker 安装 Jenkins

    一.拉取镜像 我这里安装的版本是2.222.3-centos,可以去这里获取你需要的版本: https://hub.docker.com/_/jenkins?tab=tags docker pull ...

  5. Docker DevOps实战:Docker+Jenkins+Python+Pytest+Allure(1)- 创建Jenkins容器、安装Python环境、安装项目依赖类库、安装Allure报告插件

    前言: 本文实操笔记参照菠萝笔记,安装过程中的坑大家可以参考下 创建Jenkins容器 # 下载Jenkins镜像 [root@localhost ~]# docker pull jenkins/je ...

  6. Jenkins教程——从安装到部署Docker服务(一)安装Jenkins

    前言 写了好久Jenkins的脚本了,写得虽然不是太好,但是可以基本满足需要,最近比较忙,这个月也没怎么更新博客,开始更新Jenkins这个系列的文章,打算从安装Jenkins -> 流水线工程 ...

  7. Docker学习3-简单shell脚本安装mysql5.7与docker小技巧

    前言 玩过Windows中的 .bat 的小伙伴是不是觉得很有意思呢,github中一键推送.同步拉取等等操作,哈哈,当然shell脚本也是很类似,可以运行一个脚本就可以自动给我们部署好环境啦!但是这 ...

  8. 安装和启动docker

    1.安装和启动docker yum update -y yum install -y yum-utils yum-config-manager --add-repo https://download. ...

  9. Rancher安装 - CentOS7(Docker)环境

    Rancher安装 - CentOS7(Docker)环境 对于开发和测试环境,我们建议通过运行单个Docker容器来安装Rancher.在此安装场景中,您将在单个Linux主机上安装Docker,然 ...

随机推荐

  1. 雷林鹏分享:XML - E4X

    XML - E4X E4X 向 JavaScript 添加了对 XML 的直接支持. E4X 实例 var employees= Tove 32 Jani 26 ; document.write(em ...

  2. spring boot ----> spring boot 和spring的联系

    1.自动配置的实现是基于spring 4.0的条件化配置,这是spring 4.0的新特性.比如,定义一个类A,它实现Condition接口,覆盖condition接口的match()方法,那么该类变 ...

  3. 20170922xlVBA_GetCellTextFromWordDocument

    Sub GetCellTextFromWordDocument() '应用程序设置 Application.ScreenUpdating = False Application.DisplayAler ...

  4. hdu-2639 Bone Collector II 背包第K优

    http://acm.hdu.edu.cn/showproblem.php?pid=2639 在背包的基础上维护一个size<=K的最大值集合,为什么维护K个就好了呢,因为如果当前状态有多余K个 ...

  5. 前端数据交互之json&ajax

    1.json json是 JavaScript Object Notation 的首字母缩写,单词的意思是javascript对象表示法,这里说的json指的是类似于javascript对象的一种数据 ...

  6. 『Re』正则表达式模块_常用方法记录

    『Re』知识工程作业_主体识别 一个比较完备的正则表达式介绍 几个基础函数 re.compile(pattern, flags=0) 将正则表达式模式编译成一个正则表达式对象,它可以用于匹配使用它的m ...

  7. python-思路整理-虚拟环境

    虚拟环境: 如需多个版本的django或其他框架开发代码时,就可以用虚拟环境 pip3 install virtualenv # 创建虚拟环境 virtualenv virtualenv env1 # ...

  8. 移除input框type="number"在部分浏览器的默认上下按钮

    input::-webkit-outer-spin-button, input::-webkit-inner-spin-button { -webkit-appearance: none !impor ...

  9. MIR7预制发票扣除已经预制的数量(每月多次预制,未即时过账)

    业务场景见抬头,有没有标准的解决方案就不说了,也没去考虑... 这个增强还是SAP老表提供的,感谢,省了不少时间. INCLUDE:LMR1MF6S 最后的位置 ENHANCEMENT ZMIR7_0 ...

  10. Linux下使用mail发送邮件

    邮件常常是Linux下监控报警手段之一.Linux下的mail命令可以方便,快速的完成发送邮件.下面以CentOS为例 1.安装 [root@vm8028 ~]# mail -bash: mail: ...