(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. 消息队列rabitMq

    rabbitmq MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法.应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们.消息 ...

  2. 使用Qss设置QT程序界面的样式和皮肤

    1         使用Qss设置QT程序界面的样式和皮肤 1.1  Qss的功能 Qt程序界面中控件的背景图片.大小.字体颜色.字体类型.按钮状态变化等属性可以通过Qss文件来设置,美化UI界面.实 ...

  3. JAVA基础知识总结:十九

    一.多线程使用过程中的临界资源问题 1.临界资源:被多个线程同时访问的资源 临界资源产生的原因:有多个线程同时访问一个资源的时候,如果一个线程在取值的过程中,时间片又被其他的线程抢走了,临界资源问题就 ...

  4. vue 脚手架搭建新项目以及element-ui等vue组件的使用

    vue快速搭建项目(前提是你的电脑已经安装了node的环境和vue脚手架安装,不会的自行百度) 1:打开终端: 这里说下此时位置是在User下的lijuntao文件夹下面,我一般会在桌面新建一个文件夹 ...

  5. Pandas存储为Excel格式:单个xlsx文件下多sheet存储方法

    Notes If passing an existing ExcelWriter object, then the sheet will be added to the existing workbo ...

  6. Redis消息之发布与订阅

    "发布/订阅"可以实现进程间的消息传递 发布的消息不会持久化,只能收到订阅后的消息,执行subscribe命令后客户端会进入"订阅"状态,处于此状态下的客户端不 ...

  7. python 断言大全

    参考链接:https://blog.csdn.net/qq1124794084/article/details/51668672 1. 小数位模糊等于 自动化脚本最重要的是断言,正确设置断言以后才能帮 ...

  8. 雷林鹏分享:C# 判断

    C# 判断 判断结构要求程序员指定一个或多个要评估或测试的条件,以及条件为真时要执行的语句(必需的)和条件为假时要执行的语句(可选的). 下面是大多数编程语言中典型的判断结构的一般形式: 判断语句 C ...

  9. 关于如何获取Google 官方 NavgationView中的控件的方法

    最近在想要寻找一个好集成的SlidingMenu,看上了官方的DrawLayout,简单易集成 然后如果想动态改变DrawLayout头部的HeaderVIew的资源的话需要先获取到控件 方法如下 n ...

  10. hdu-3366 Passage 概率DP 读懂就能AC hhh

    http://acm.split.hdu.edu.cn/showproblem.php?pid=3366 读题的时候没发现这个P Q 1-P-Q是全集的划分,以为是独立事件,写错了转移方程233 先贪 ...