linux运维之Docker基础(二)

1.docker初体验:

(1)安装Nginx步骤:

    官网下载Nginx源码包 进行:wget

    tar

    创建Nginx用户

(2)编译安装

    ./config...

    修改配置文件

    启动

(3)启动第一个容器

  ##配置docker镜像加速

      vi /etc/docker/daemon.json

      {

        "registry-mirrors": ["https://registry.docker-cn.com"]

      }

    重启一下docker:

    [root@docker ~]# systemctal restart docker

    [root@docker ~]# docker run -d -p 80:80 nginx

  解释:

    run:(创建并运行一个容器)

    -d :放在后台

    -p : 端口映射

    nginx docker 镜像的名字

============================================================= 

2.关于docker的镜像管理:

1)搜索镜像

    docker search

    选择镜像的建议:

      1.优先考虑官方的

      2.stars数量多的

  2)获取镜像

    docker pull(push)

    镜像加速器:阿里加速器,daocloud加速器,中科大加速器,Docker 中国官方镜像加速等:

    https://registry.docker-cn.com

  3)官方pull    docker pull centos:6.8(没有指定版本,默认会下载最新版)

    私有仓库pull docker pull daocloud.io/huangzhichong/alpine-cn:latest

  4)关于镜像的一些命令:

    查看镜像列表:

      docker images docker image ls

    删除镜像

      docker rmi 例子:docker image rm centos:latest

    导出镜像:

        docker save 例子:docker image save centos > docker-centos7.4.tar.gz

    导入镜像:

        docker load 例子:docker image load -i docker-centos7.4.tar.gz

=============================================================

3.docker的容器管理:

  1) docker run -d -p 80:80 nginx:latest

        run (创建并运行一个容器)

        -d :放在后台

        -p : 端口映射

        -v :源地址(宿主机):目标地址(容器)

  2)  nginx docker镜像的名字

          docker run -it --name centos6 centos:6.9 /bin/bash

          -it 分配交互式的终端

          --name 指定容器的名字

          /bin/sh 覆盖容器的初始命令

   3)启动容器***

          docker run image_name

          docker run -it image_name CMD

          docker run ===docker create + docker start

  4)停止容器

     docker stop CONTAINER_ID

     杀死容器

     docker kill container_name

查看容器列表

      docker ps

     docker ps -a

    5) 进入容器(目的,调试,排错)

          docker exec (会分配一个新的终端tty) *****

          docker exec [OPTIONS] CONTAINER COMMAND [ARG...]

          docker exec -it 容器id或容器名字 /bin/bash (/bin/sh)

         docker attach(使用同一个终端)

         docker attach [OPTIONS] CONTAINER

   nasenter(安装 yum install -y util-linux 弃用)

      注意:临时退出容器:容器回到 宿主机:

      同时: ctrl + p , q

    6)删除容器

          docker rm

  批量删除容器

        docker rm -f 'docker ps -a -q'

总结:docker容器内的第一个进程(初始命令)务必是一直处于前台运行的状态(必须夯住),否则这个容器,就会处于退出状态。   

注意:业务在容器中运行:夯住,启动服务 



4.docker容器 的网络访问(端口映射)

docker0:172.17.0.1  jumpserver:172.17.0.2  nginx: 172.17.0.3

指定映射(docker 会自动添加一条iptables规则来实现端口映射)

  -p hostPort:containerPort

  -P ip:hostPost:containerPort  多个容器都想使用80端口

  -p ip::containerPort(随机端口)

  -p hostPort:containerPort:udp

  -p 81:80 -p 443:443 可以指定多个-p

随机映射

    docker run -P (随机端口)

通过iptables来实现的端口映射

随机端口范围:内核参数决定的:32768 ---60999

5. docker的数据卷管理:

/usr/share/nginx/html

-v /opt/XXX:/usr/share/nginx/html

持久化:

数据卷(文件或目录)

  -v 卷名:/data

  -v src (宿主机的目录):dst(容器的目录)

数据卷容器

  --volumes-from (跟某一个已经存在的容器挂载相同的卷)

基于nginx启动一个容器,监听80或者81,访问80,出现nginx

默认欢迎首页,访问81,出现XXX。

-p 80:80 -p 81:81 -v XXX:  XXX -v  XXX:XXXX

eg: docker run -d -p 80:80 -v /opt/xiaoniao:/usr/share/nginx/html

nginx:latest

基于nginx多端口的多站点。

=================================================================

你可能感兴趣的:(linux运维之Docker基础(二))