Docker入门实践(CentOS7)

前提:   虚拟机1  CentOS7:192.168.0.19(与物理机桥接方式)

              虚拟机2  CentOS7:192.168.0.21(与物理机桥接方式)

              本机:192.168.0.5
1. Docker安装与启动

1.1 安装Docker

    (1)yum包更新到最新

  (2)安装需要的软件包,yum-util提供yum-config-manager功能,另外两个是devicemapper屈都依赖的

        sudo yum install -y  yum-utils devicemapper-persistent-data lvm2

    (3) 设置yum源为阿里云

        sudo yum-coonfig-manager --add-repo        http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

    (4) 安装docker

        sudo yum install docker-ce

    (5) 查看版本

        docker -v

1.2 设置ustc的镜像

    编辑该文件

        vi /etc/docker/daemon.json

    该文件中输入如下内容:

        {

        “registry-mirrors”:["https://docker.mirrors.ustc.edu.cn"]

        }


1.3 Docker的启动与停止

      systemctl 命令是系统服务管理器指令

        启动docker

            systemctl start docker

        停止docker

            systemctl stop docker

        重启docker

            systemctl restart docker

        查看docker状态

            systemctl status docker

        开机启动

            systemctl enable docker

        查看docker概要信息

            docker  info



2. 常用命令

2.1 镜像相关命令

2.1.1 查看镜像

        docker images

2.1.2 搜索镜像

        docker search 镜像名称

2.1.3 拉取镜像

        docker pull  镜像名称

        例如  docker  pull  centos:7

2.1.4 删除镜像

        docker  rmi  镜像ID

        删除所有镜像:docker rmi  'docker  images  -q'


2.2 容器相关命令

2.2.1 查看容器

        查看正在运行容器:  docker  ps

        查看所有容器: docker  ps  -a

        查看最后一次运行容器: docker ps -1

        查看停止容器: docker ps -f status=exited

2.2.2 创建与启动容器

        创建容器命令:docker run

        (1) 交互式方式创建容器

            docker  run  -it  --name=容器名称  镜像名称:标签  /bin/bas

              此时,创建完毕后直接进入。

              进入容器后exit退出,容器状态自动变为exited.

        (2) 守护式方式创建容器

                docker  run  -di  --name=容器名称  镜像名称:标签

                此时,创建完毕后未进入容器

                登陆守护方式容器:docker exec -it 容器名称(或者ID) /bin/bash

                注意:本次创建容器时,即使上面交互式方式创建的容器mycentos已经关闭,此时仍然不能本次容器也为mycentos!!!


2.2.3 停止与启动容器

        停止容器:docker  stop  容器名称(或者ID)

        启动容器:docker  start  容器名称(或者ID)


2.2.4 文件拷贝

将文件拷贝到容器内:docker  cp  需要拷贝文件或目录  容器名称:容器目录

将文件拷贝出容器外:docker  cp  容器名称:容器目录  需要拷贝文件或目录


2.2.5 目录挂载

2.2.6 查看容器IP地址

            docker  inspect 容器名称(或者ID)

直接查找到IP地址方式:


2.2.7 删除容器

        docker  rm  容器名称(或者ID)

        注意:1. 与删除镜像区别(删除镜像:docker  rmi  镜像ID)

                  2. 在删除镜像时,要把对应全部创建的容器删除才可以删除镜像!



3. 应用部署

3.1 MySQL部署

    (1) 拉取mysql镜像

                docker  pull centos/mysql-57-centos7

    (2) 创建容器

                docker  run  -di  --name=tensquare_mysql  -p  33306:3306  -e  MYSQL_PASSWORD=123456  mysql

                -p  代表端口映射,格式为  宿主机映射端口:容器运行端口

                -e 代表添加环境变量 MYSQL_ROOT_PASSWORD 是root用户的密码

    (3) 进入mysql容器

                  docker  exec  -it  tensquare_mysql  /bin/bash

    (4) 登陆mysql

                mysql  -u  root  -p

    (5) 远程登陆mysql

                连接宿主机IP并指定端口为33306,这样就可以操作容器的3306端口。


3.2 tomcat部署

    (1) 拉取镜像

                    docker  pull  tomcat:7-jre7

        (2) 创建容器

                    创建容器  -p 表示地址映射

                    docker  run  -di  --name=mytomcat  -p  9000:8080  -v /usr/local/webapps:/usr/local/tomcat/webapps  tomcat:7-jre7

      (3) 进入mysql容器

                    docker  exec  -it  mytomcat  /bin/bash

      (4) 远程访问:192.168.0.19:9000/index.jsp


3.3 Nginx部署

        (1) 拉取镜像

                    docker  pull  nginx

        (2) 创建容器

                    创建容器  -p 表示地址映射

                    docker  run  -di  --name=mynginx  -p  80:80  nginx


3.4 Redis部署

        (1) 拉取镜像

                    docker  pull redis

          (2) 创建容器

                    创建容器  -p 表示地址映射

                    docker  run  -di  --name=myredis  -p  6379:6379  redis



4. 迁移与备份

4.1  容器保存为镜像

            docker  commit  mynginx  mynginx_i

4.2  镜像备份

            docker  save  -o  mynginx.tar  mynginx_i

4.3  镜像恢复与迁移

            docker  load  -i  mynginx.tar

            -i  输入的文件

            docker  images  可看到镜像已恢复



5. Dockerfile

5.1 什么是Dockerfile

5.2 常用命令


5.3 使用脚本创建镜像

        (1)创建目录

                mkdir -p /usr/local/dockerjdk8

        (2)下载jdk-8u171-linux-x64.tar.gz并上传到服务器中/usr/local/dockerjdk8目录

        (3)在dockerjdk8目录下创建文件Dockerfile    vi  Dockerfile

                    #依赖镜像名称和ID

                    FROM centos7

                    #指定镜像创建者

                    MAINTAINER FENCO

                    #切换工作目录

                    WORKDIR  /usr

                    RUN  mkdir  /usr/local/java

                    #ADD  是相对路径jar,把java添加到容器

                    ADD  jdk-8u171-linux-x64.tar.gz  /usr/local/java/


                    #配置java环境变量

                    ENV  JAVA_HOME   /usr/local/java/jdk1.8.0_171

                    ENV  JRE_HOME   $JAVA_HOME/jre

                    ENV  CLASSPATH   $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH

                    ENV  PATH  $JAVA_HOME/bin:$PATH

                            注意:由于创建jdk1.8镜像用到了docker.io/centos镜像,所以必须保证本地有该镜像。

             (4) 执行命令构建镜像

                       在dockerjdk8目录下执行:    docker   build  -t='jdk1.8'  .           最后面的点,表示该根目录

            (5) 查看镜像是否建立完成

                        docker  images



6. Docker私有仓库

6.1 私有仓库的搭建及配置

    (1) 拉取私有仓库镜像

        docker pull registry

      (2)  启动私有仓库容器

            docker  run  -di  --name=registry  -p  5000:5000  registry

     (3) 用浏览器访问:http://192.168.0.19:5000/v2/_catalog看到{“repositories”:[]}表示私有仓库搭建成功内容为空。

  (4)修改daemon.json

            vi  /etc/docker/daemon.json

            添加以下内容并保存退出。

            {"insecure-registries":["192.168.0.19:5000"]}    此步用于让docker信任私有仓库地址

  (5) 重启docker服务

            systemctl restart  docker


6.2 镜像的上传及下载到私有仓库

6.2.1镜像的上传

    (1) 标记次镜像为私有仓库的镜像

                docker tag jdk1.8 192.168.0.19:5000/jdk1.8

      (2) 上传标记镜像

                首先,上一步重启了docker服务,所以里面的registry容器也需要启动下。

                然后执行上传:docker  push  192.168.0.19:5000/jdk1.8

成功!


6.2.2 镜像的下载

在另外一台虚拟机中安装docker(192.168.0.21)

    (1)修改daemon.json

                vi  /etc/docker/daemon.json

                添加以下内容并保存退出。

                {"insecure-registries":["192.168.0.19:5000"]}    此步用于让docker信任私有仓库地址

    (2) 重启docker服务

                systemctl restart  docker

     (3) 下载标记镜像

                然后执行下载:docker  pull  192.168.0.19:5000/jdk1.8

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,539评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,911评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,337评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,723评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,795评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,762评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,742评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,508评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,954评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,247评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,404评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,104评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,736评论 3 324
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,352评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,557评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,371评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,292评论 2 352

推荐阅读更多精彩内容

  • Docker 学习目标: 掌握Docker基础知识,能够理解Docker镜像与容器的概念 完成Docker安装与启...
    执笔梦一场阅读 3,216评论 2 10
  • Docker是一种容器技术,它的存在就是为了解决容器技术本身的复杂性。Docker容器拥有很高的性能,同时同一台宿...
    四条眉毛陆小鸡阅读 563评论 0 0
  • Docker 掌握Docker基础知识,理解Docker镜像与容器的概念 完成Docker安装与启动 掌握Dock...
    32a08e1b7af0阅读 986评论 0 18
  • (一) 薄云溽暑芳菲在, 赤紫橙白径自开。 笑靥一绽心仪之, 清风四面幽香来。 ​​​ (二) 无以驱烦暑, 唯觉...
    69届知青李焱阅读 330评论 3 3
  • 小时候的孤独 是因为上特长班不能和小朋友一起玩 是睡醒之后发现家里只有自己一个人 是不能按自己的喜好进行选择 是最...
    南风丫阅读 606评论 0 1