部署维护docker环境

其实前面已经用salt,安装部署了docker应用环境了,过程中还是遇到了不少问题,所以这里再相对仔细的记录一下,docker手机安装过程应注意的事情 安装过程部分参考了刘天斯大师文档部署

1,安装环境说明

系统环境:centos6.6
服务应用了:  haproxy  confd   etcd   docker

主机名               ip      服务角色
dockerha-152      192.168.36.152    haproxy confd
dockerEtcd-153     192.168.36.153      etcd
dockermain-154    192.168.36.154    docker

2,安装依懒包,关闭冲突的服务

官方文档要求Linux kernel至少3.8以上,且docker只能运行在64位的系统中。由于RHEL6和CentOS6的内核版本为2.6,因此必须要先升级内核。

cd /etc/yum.repos.d
wget http://www.hop5.in/yum/el6/hop5.repo
yum install kernel-ml-aufs kernel-ml-aufs-devel -y

修改grub的主配置文件/etc/grub.conf,设置default=0,表示第一个title下的内容为默认启动的kernel(一般新安装的内核在第一个位置)。
然后重启,重启系统,这时候你的内核就成功升级了,版本应该在3.8以上了,
uname -r
[[email protected] shell]# uname -r
3.10.5-3.el6.x86_64

sed -i ‘/^SELINUX=/c\SELINUX=disabled‘ /etc/selinux/config
setenforce 0

在Fedora EPEL源中已经提供了docker-io包,下载安装epel:
rpm -ivh http://mirrors.sohu.com/fedora-epel/6/x86_64/epel-release-6-8.noarch.rpm
sed -i ‘s/^mirrorlist=https/mirrorlist=http/‘ /etc/yum.repos.d/epel.repo

3,安装组件

(1)haproxy confd

dockerha-152上操作

1、haproxy
# yum –y install haproxy  

2、confd
# wget https://github.com/kelseyhightower/confd/releases/download/v0.6.3/confd-0.6.3-linux-amd64
# mv confd /usr/local/bin/confd
# chmod +x /usr/local/bin/confd
# /usr/local/bin/confd -version

(2)etcd

dockerEtcd-153上操作

# mkdir -p /home/install && cd /home/install
# wget https://github.com/coreos/etcd/releases/download/v0.4.6/etcd-v0.4.6-linux-amd64.tar.gz
# tar -zxvf etcd-v0.4.6-linux-amd64.tar.gz
# cd etcd-v0.4.6-linux-amd64
# cp etcd* /bin/
# /bin/etcd -version
etcd version 0.4.6

(3)docker

# yum -y install docker-io
# service docker start
# chkconfig docker on

4,docker命令使用

(1)查看帮助

docker COMMAND --help

(2)搜索可用的境像

docker search name 如示例:

[[email protected] src]# docker search centos
NAME                                DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
centos                              The official build of CentOS.                   817       [OK]
ansible/centos7-ansible             Ansible on Centos7                              30                   [OK]
tutum/centos                        Centos image with SSH access. For the root...   13                   [OK]
jdeathe/centos-ssh-apache-php       CentOS-6 6.5 x86_64 / Apache / PHP / PHP m...   8                    [OK]
blalor/centos                       Bare-bones base CentOS 6.5 image                8                    [OK]
jprjr/centos-php-fpm                                                                6                    [OK]
steeef/graphite-centos              CentOS 6.x with Graphite and Carbon via ng...   6                    [OK]
tutum/centos-6.4                    DEPRECATED. Use tutum/centos:6.4 instead. ...   5                    [OK]
layerworx/centos                    A general CentOS 6 image with the EPEL6 an...   2                    [OK]
jr42/chef-solo-centos               Official CentOS base images with current c...   1                    [OK]
million12/centos-supervisor         Base CentOS-7 with supervisord launcher, h...   1                    [OK]
internavenue/centos-percona         Centos-based Percona image.                     1                    [OK]
jdeathe/centos-ssh                  CentOS-6 6.5 x86_64 / EPEL Repo. / OpenSSH...   1                    [OK]
jdeathe/centos-ssh-mysql            CentOS-6 6.5 x86_64 / MySQL. Image include...   1                    [OK]
yajo/centos-epel                    CentOS with EPEL and fully updated              1                    [OK]
nimmis/java-centos                  This is docker images of CentOS 7 with dif...   0                    [OK]
lighthopper/orientdb-centos         A Dockerfile for creating an OrientDB imag...   0                    [OK]
bbrietzke/centos-starter            CentOS 7 with EPEL and SupervisorD              0                    [OK]
tcnksm/centos-node                  Dockerfile for CentOS packaging node            0                    [OK]
insaneworks/centos                  CentOS 6.5 x86_64 + @update                     0                    [OK]
snowyday/centos                     Provide for emacs and Ricty font on X11 en...   0                    [OK]
dmglab/centos                       CentOS with superpowers!                        0                    [OK]
akroh/centos                        Centos 6 container that has been updated w...   0                    [OK]
timhughes/centos                    Centos with systemd installed and running       0                    [OK]
solict/provisionous-puppet-centos   CentOS provisions with Puppet included          0                    [OK]

(3)下载镜像

注意镜像名称要写全,就是用docker search name 搜出来的NAME列的名称。

docker pull name 如示例:
[[email protected] src]# docker pull jdeathe/centos-ssh-apache-php
Pulling repository jdeathe/centos-ssh-apache-php
........
62203f428b1f: Download complete
e1812755a4ca: Download complete
0910edda3736: Download complete
Status: Downloaded newer image for jdeathe/centos-ssh-apache-php:latest

(4)查看已安装的镜像

[[email protected] src]# docker images
REPOSITORY                      TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
centos                          latest              dade6cb4530a        10 days ago         210.1 MB
jdeathe/centos-ssh-apache-php   latest              f1a489312a4a        3 months ago        297.7 MB

(5)docker容器中运行命令

docker run命令有两个参数,一个是镜像名,一个是要在镜像中运行的命令。 注意:IMAGE=REPOSITORY[:TAG],如果IMAGE参数不指定镜像的TAG,默认TAG为latest。
[[email protected] run]# sudo docker run jdeathe/centos-ssh-apache-php echo ‘hello world!‘
hello world!

[[email protected] run]# sudo docker run jdeathe/centos-ssh-apache-php hostname
db7e1d2269fb

(6)列出容器

 查看最近生成的容器:docker ps -l
 查看正在运行的容器:docker ps

 [[email protected] run]# docker ps -l
CONTAINER ID        IMAGE                                  COMMAND             CREATED             STATUS                      PORTS               NAMES
db7e1d2269fb        jdeathe/centos-ssh-apache-php:latest   "hostname"          27 seconds ago      Exited (0) 26 seconds ago                       adoring_babbage

(7)显示容器标准输出

[[email protected] run]# docker ps -l
CONTAINER ID        IMAGE                                  COMMAND             CREATED             STATUS                      PORTS               NAMES
db7e1d2269fb        jdeathe/centos-ssh-apache-php:latest   "hostname"          27 seconds ago      Exited (0) 26 seconds ago                       adoring_babbage
[[email protected] run]# docker logs db7e1d2269fb
db7e1d2269fb

(8)给容器中安装程序或服务

[[email protected] run]# sudo docker run centos yum install -y httpd
Loaded plugins: fastestmirror
..........

Dependency Installed:
  apr.x86_64 0:1.4.8-3.el7
  apr-util.x86_64 0:1.5.2-6.el7
  centos-logos.noarch 0:70.0.6-1.el7.centos
  httpd-tools.x86_64 0:2.4.6-19.el7.centos
  mailcap.noarch 0:2.1.41-2.el7                                                 

Failed:
  httpd.x86_64 0:2.4.6-19.el7.centos                                            

Complete!

(9)保存对容器中的修改并生成新的镜像

docker commit CONTAINERID [REPOSITORY[:TAG]]
REPOSITORY参数可以是新的镜像名字,也可以是旧的镜像名;如果和旧的镜像名和TAG都相同,会覆盖掉旧的镜像。

[[email protected] ~]# docker commit bd7cc4f4ac92 centos:httpd
1e0915f3247b86414ebc11fd994fc6abfb590ff3b1ab890949c845ee88b2d9f4
[[email protected] ~]# docker images
REPOSITORY                      TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
centos                          httpd               1e0915f3247b        9 seconds ago       320.8 MB
centos                          latest              dade6cb4530a        10 days ago         210.1 MB
jdeathe/centos-ssh-apache-php   latest              f1a489312a4a        3 months ago        297.7 MB

(10)停止正在运行的容器

(11)查看容器或镜像详情

下面是我刚保存提交产生的新的容器
[[email protected] ~]# docker inspect 943e45b6e5f3
[{
    "AppArmorProfile": "",
    "Args": [],
    "Config": {
        "AttachStderr": true,
        "AttachStdin": true,
        "AttachStdout": true,
        "Cmd": [
            "/bin/bash"
        ],
        "CpuShares": 0,
        "Cpuset": "",
        "Domainname": "",
        "Entrypoint": null,
        "Env": [
            "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
        ],
        "ExposedPorts": null,
        "Hostname": "943e45b6e5f3",
        "Image": "centos:httpd",
        "MacAddress": "",
        "Memory": 0,
        "MemorySwap": 0,
        "NetworkDisabled": false,
        "OnBuild": null,
        "OpenStdin": true,
        "PortSpecs": null,
        "StdinOnce": true,
        "Tty": true,
        "User": "",
        "Volumes": null,
        "WorkingDir": ""
    },

(12)删除容器

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

(13)删除镜像

docker rmi IMAGE

(14)查看docker的信息,包括Containers和Images数目、kernel版本等

[[email protected] ~]# docker info
Containers: 14
Images: 56
Storage Driver: aufs
 Root Dir: /var/lib/docker/aufs
 Dirs: 89
Execution Driver: native-0.2
Kernel Version: 3.10.5-3.el6.x86_64
Operating System: <unknown>
CPUs: 1
Total Memory: 989.6 MiB
Name: dockermain-154
ID: W4PW:W3XR:FQZE:SBAA:2DS2:BM6N:DV5B:ARF2:3SZM:XGST:5ZF7:DFZV
WARNING: No swap limit support

(15)创建容器,并像平常ssh登录一样使用

[[email protected] ~]# docker run -i -t centos /bin/bash
[[email protected] /]# ls
bin  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  selinux  srv  sys  tmp  usr  var
时间: 2024-10-18 23:27:49

部署维护docker环境的相关文章

Docker环境下使用SpringBootAdmin2.x教程

Spring Boot Admin 2.x是一个用于监测管理微服务应用的程序,通过Eureka注册中心发现服务,然后获取服务的运行状态.日志信息.并提供一套UI界面供系统运维人员检查,同时结合Spring Security进行登录权限认证 首先上完整的Github项目代码: liumapp/spring-boot-admin-in-docker 然后是完整的Wiki文档: 使用文档 所需依赖 spring boot 2.0.2 spring cloud Finchley.RELEASE code

.netcore mvc docker环境jenkins一键部署(DevOps)

[前言] DevOps方面的文章很早之前就想分享了,挤出一点时间把前段时间搭建的一些提高开发效率的东西给大家分享一下吧. 本文介绍了一个.netcore mvc web项目,从项目push到github开始 自动从github上拉取代码 编译,生成,发布 停止docker容器,删除docker镜像 通过项目的dockerfile新建docker镜像 Run容器,自动绑定ip,站点启动 整个过程只需要在jenkins这个自动化工具上点一个按钮.下面我们按顺序来简单介绍一下. 使用的内容都很基础,重

基于docker环境,搭建 jetty环境, 部署java项目

前提: 1.Ubuntu 系统. 2.docker环境已经安装好. 实现步骤: 1.上docker hub 下载jetty docker 镜像. 执行命令:$ sudo docker pull jetty 官方的镜像 ,jetty的部署目录是在:/usr/lib/jetty/webapps/下. 2.在系统中新建目录:~/webrz/basic/ 3.在上一步的新建的目录下新建三个文件: 1):basic.sh: #!/bin/bash sudo docker build --rm -f Doc

Centos 7部署docker环境、基本命令使用及简单实战

Docker是一个开源的应用容器引擎,属于Linux容器的一种封装,是目前最流行的Linux容器解决方案.docker可以为任何应用创建一个轻量级.可移植的容器,然后容器可以运行在任何安装有docker的平台上.Docker 的优势:1.更快速的交付和部署对开发和运维(devop)人员来说,最希望的就是一次创建或配置,可以在任意地方正常运行.开发者可以使用一个标准的镜像来构建一套开发容器,开发完成之后,运维人员可以直接使用这个容器来部署代码. docker 可以快速创建容器,快速迭代应用程序,大

docker环境部署

前言 开发未动环境先行,每次要换个系统或新环境搭开发环境总是令人十分痛苦. 趁着买新电脑的机会,熟悉下docker,将开发所依赖的数据库/队列/缓存等都装在docker,然后慢慢适应docker,k8s,jenkins等. 虚拟机安装linux的过程可以参考之前的文章: VirtualBox安装linux记录 由于现在打算将数据库/队列等装在虚拟机里,所以需要虚拟机里的ip可以对外访问.但今天安装的时候网络遇见了不少问题,下面这个提出了一些解决方案,但对我好像帮助不大: linux下rtnetl

docker环境部署nginx、tomcat、redis

centos7 部署docker 1.获取阿里docker yum源 wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce-staging.repo yum makecache yum repolist 2.移除旧版docker yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker

如何使用Docker部署PHP开发环境

本文主要介绍了如何使用Docker构建PHP的开发环境,文中作者也探讨了构建基于Docker的开发环境应该使用单容器还是多容器,各有什么利弊.推荐PHP开发者阅读.希望对大家有所帮助. 环境部署一直是一个很大的问题,无论是开发环境还是生产环境,但是 Docker 将开发环境和生产环境以轻量级方式打包,提供了一致的环境.极大的提升了开发部署一致性.当然,实际情况并没有这么简单,因为生产环境和开发环境的配置是完全不同的,比如日志等的问题都需要单独配置,但是至少比以前更加简单方便了,这里以 PHP 开

多个docker镜像部署lnmp开发环境

与其说是lnmp环境,还不如说是3个docker环境的mysql.php和nginx镜像.下面我们将以依次按照mysql.php和nginx镜像的顺序描述它们的搭建过程: 环境要求:docker-compose docker-cecentos7 2CPU 4Gb 50G 1.mysql 这里采用官方mysql:5.7的镜像,首先需要创建mysqld.conf文件,生产环境的mysql配置需要自行优化,这里囧供开发环境使用. [[email protected] lnmp]# cat /data/

NET Core Web 应用部署到 Docker 中运行

NET Core Web 应用部署到 Docker 中运行 环境介绍 : 虚拟机:VirtualBox 5.1.6 系 统:Ubuntu 16.04.1 LTS 系统准备完成后可以使用 sudo apt-get udpate 和 sudo apt-get upgrade 对系统进行更新,然后打开https://www.microsoft.com/net/core#ubuntu 这个网址,在ubuntu系统中安装 .net core 运行环境.直接复制/粘贴给出的命令就可以了. 安装 Docker