DOCKER笔记(1)

Docker:
先说缺点:
Docker是基于Linux 64bit的,没有window的。
网络管理方面比较简单。
云端的容器安全性有待考证。
容器随着用户进程的停止而销毁,容器中的log等用户数据不便收集。
特点:
轻量级虚拟机,是针对应用程序层次的虚拟机。
做好对应镜像 启动像是按钮一样,随开随关。
可以挂载主机的文件夹。
由于消耗小,利于集群搭建。

安装配置

  1. CentOS7 系统 CentOS-Extras 库中已带 Docker,可以直接安装:
    $ sudo yum install docker
  2. 安装之后启动 Docker 服务,并让它随系统启动自动加载。
    $ sudo service docker start

    $ sudo chkconfig docker on

  3. 配置/etc/sysconfig/docker 添加 (docker pull的时候有可能下载不了其他网站的镜像)
    OPTIONS=’–selinux-enabled –insecure-registry dl.dockerpool.com:5000’
    OPTIONS=’–selinux-enabled –insecure-registry /dockerfile/’

镜像获取
共两种方法 :别人做好的镜像拖下来,再就是用dockerfile文件直接自定义配置镜像。

  1. 镜像:
    命令 : docker pull (从docker官方下载镜像),docker pull 后面添加镜像地址。
    示例:docker pull unbuntu (从docker官网下载)
    docker pull dockerfile/Ubuntu (从dockerfile仓库下载)

  2. 有关docker镜像的操作查看:
    查看镜像: docker images

  3. 镜像更新:
    通过镜像 docker run -i -t mysql /bin/bash 进入shell
    安装软件包:Apt-get update apt-get install openssh-server
    mkdir /var/run/sshd
    passwd
    exit
    此时容器已经关闭。
    镜像更新:
    docker commit 51774a81beb3 mysql:latest 更新原来的镜像 id 是通过docker ps查看。
    再通过运行sshd启动容器
    docker run -d -p 22 -p 3306:3306 mysql /usr/sbin/sshd –D
    查看 docker 查看随机端口 0.0.0.0:32768->22/tcp,
    通过工具连接虚拟机

  4. dockerfile镜像文件:
    比较实用的dockerfile文件下载网站 https://github.com/dockerfile
    从dockerfile文件来创建镜像方法:
    Wget https://codeload.github.com/dockerfile/ubuntu/zip/master unbuntu镜像
    wget https://codeload.github.com/dockerfile/mysql/zip/master mysql的镜像dockerfile
    通过 dockerfile 创建镜像 docker build -t mysql . (dockerfile 文件位置)
    镜像中的from 改成 FROM dockerfile/Ubuntu
    dockerfile文件解析 详见http://blog.csdn.net/wsscy2004/article/details/25878223

        ```
        #
        # MySQL Dockerfile
        #
        # https://github.com/dockerfile/mysql
        #
    
        # Pull base image.
        FROM dockerfile/ubuntu
    
        # Install MySQL.
        RUN \
          apt-get update && \
          DEBIAN_FRONTEND=noninteractive apt-get install -y mysql-server && \
          rm -rf /var/lib/apt/lists/* && \
          sed -i 's/^\(bind-address\s.*\)/# \1/' /etc/mysql/my.cnf && \
          sed -i 's/^\(log_error\s.*\)/# \1/' /etc/mysql/my.cnf && \
          echo "mysqld_safe &" > /tmp/config && \
          echo "mysqladmin --silent --wait=30 ping || exit 1" >> /tmp/config && \
          echo "mysql -e 'GRANT ALL PRIVILEGES ON *.* TO \"root\"@\"%\" WITH GRANT OPTION;'" >> /tmp/config && \
          bash /tmp/config && \
          rm -f /tmp/config
    
        # Define mountable directories.
        VOLUME ["/etc/mysql", "/var/lib/mysql"]
    
        # Define working directory.
        WORKDIR /data
    
        # Define default command.
        CMD ["mysqld_safe"]
    
        # Expose ports.
        EXPOSE 3306
        ```
    

    这里说一点:Dockerfile 中RUN命令是执行docker build 做镜像跑的命令,CMD命令是docker run 起容器的时候跑的命令

  5. http镜像起容器:
    安装httpd镜像:
    下载 wget https://codeload.github.com/docker-library/httpd/zip/master
    解压 修改 dockerfile文件中的FROM dockerfile/Ubuntu
    在dockerfile目录下运行 docker build -t httpd .
    安装 httpd镜像

    docker run -d -p 80:8080 --name httpd --link mysql10:httpd httpd

容器
容器是从镜像创建的运行实例,相当于aws的实例一样,但容器是一个相当简易的linux环境(包括root用户权限、进程空间、用户空间和网络空间等)和运行在其中的应用程序。当你启动一个容器时,在容器里面ps -ef 就能看到你运行的应用程序进程。

  1. 容器启动
    docker run [参数] 镜像文件
    示例:启一台mysql镜像:
    docker run -d –name mysql -p 3306:3306 mysql:latest (默认root 没密码 )
    -d 后台守护运行 –name 取一个名字 -p 端口映射(主机接受的3306转发到容器的3306)
    如果 docker run的时候最后面接的命令/bin/bash,创建完容器就直接进入到容器里面。但是你exit退出shell的时候这个容器就会停止了。更多的时候,需要让 Docker 容器在后台以守护态(Daemonized)形式运行,就得加上 -d 再加 类型于/usr/sbin/sshd –D这种后台进程。
  2. 容器的查看:
    docker ps 查看正在运行的容器

    id 用来进入 删除 停止。

  3. 容器的停止删除:
    Docker stop id 来停止容器,通过docker ps -a 来查看停止的容器,通过docker rm id 来删除停止容器。
    删除大量停止的docker容器:

        $ docker      rm      $(docker      ps      -a -q)
    
  4. 容器的进入:
    官方容器进入的步骤比较繁琐,可以通过写入shell脚本中来做一个命令。再通过 docker-enter id 来进入容器中。
    vi /usr/bin/docker-enter

    
    #!/bin/sh
    
    
      if [ -e $(dirname "$0")/nsenter ]; then
        # with boot2docker, nsenter is not in the PATH but it is in the same folder
        NSENTER=$(dirname "$0")/nsenter
      else
        NSENTER=nsenter
      fi
    
      if [ -z "$1" ]; then
        echo "Usage: `basename "$0"` CONTAINER [COMMAND [ARG]...]"
        echo ""
        echo "Enters the Docker CONTAINER and executes the specified COMMAND."
        echo "If COMMAND is not specified, runs an interactive shell in CONTAINER."
      else
        PID=$(docker inspect --format "{{.State.Pid}}" "$1")
        if [ -z "$PID" ]; then
          exit 1
        fi
        shift
    
        OPTS="--target $PID --mount --uts --ipc --net --pid --"
    
        if [ -z "$1" ]; then
          # No command given.
          # Use su to clear all host environment variables except for TERM,
          # initialize the environment variables HOME, SHELL, USER, LOGNAME, PATH,
          # and start a login shell.
          "$NSENTER" $OPTS su - root
        else
          # Use env to clear all host environment variables.
          "$NSENTER" $OPTS env --ignore-environment -- "$@"
        fi
      fi

    通过 docker-enter id 来进入容器中

数据卷
数据卷的好处:可以挂在宿主的文件夹当做数据卷,并且可以多容器挂载统一数据卷。
数据卷的使用类似于linux的mount。

  1. 创建数据卷
    在用 docker run 命令的时候,使用 -v 标记来创建一个数据卷并挂载到容器里。在一次 run 中多次使用可以挂载多个数据卷。

    $ sudo docker run -d -P --name web -v /webapp training/webapp python app.py
  2. 挂载主机目录作为数据卷

    $ sudo docker run -d -P --name mysql -v /opt:/opt mysql

容器之间通信

示例:
1,准备 先做好镜像
2,先启动数据库
docker run –name db001 -e MYSQL_ROOT_PASSWORD=admin -d -p 3306:3306 mysql
3,再启动应用类镜像
docker run -d -p 80:8080 –name tomcat001 –link db001:tomysql tutum/tomcat:8.0
–link @1:@2 @1表示要连接的数据库 @2 这个连接的别名

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要下载Docker笔记,首先需要了解Docker是什么以及其使用场景。 Docker是一种开源的容器化平台,可以帮助用户打包、部署和运行应用程序。通过使用容器化技术,用户无需担心运行环境的差异,可以将应用程序和其依赖项打包到一个可移植的容器中,随时在不同的环境中运行。 要下载Docker笔记,可以按照以下几个步骤进行操作: 1. 首先,需要在计算机上安装Docker。可以从Docker官方网站(https://www.docker.com/)上下载适合自己操作系统的Docker安装包,并按照安装指南进行安装。 2. 安装完成后,需要启动Docker服务。根据操作系统的不同,可以在启动菜单或终端中找到Docker应用程序,并点击打开。在Docker控制台中,可以查看、管理容器以及进行其他操作。 3. 接下来,需要搜索并下载Docker笔记的镜像。可以使用Docker Hub(https://hub.docker.com/)这个官方的镜像仓库,搜索关键词以找到合适的笔记镜像。在搜索结果中,会显示镜像的名称、描述、标签等信息,选择一个合适的镜像。 4. 找到想要下载的笔记镜像后,可以使用Docker命令行工具或Docker控制台中的图形界面来下载镜像。通过输入命令`docker pull 镜像名称:标签`,即可下载对应的笔记镜像到本地。 5. 下载完成后,可以使用`docker images`命令在本地查看已下载的镜像列表。根据下载的笔记镜像的名称和标签,可以使用`docker run`命令来创建并启动一个容器,从而运行笔记。 通过以上步骤,就可以成功下载Docker笔记并在本地运行。希望这些信息对您有帮助! ### 回答2: 要下载Docker笔记,首先需要知道从哪里获取这些笔记Docker有一个官方文档网站,其中包含了大量关于Docker的技术文档、教程和示例以及各种使用场景的说明。用户可以访问Docker官方网站,在文档部分进行浏览和搜索,找到所需的笔记。 在Docker官方文档网站上,用户可以按照主题、标签或关键字进行检索,以找到相关的笔记。网站还提供了各种文件格式的下载选项,包括PDF、EPUB和HTML版本,用户可以根据自己的使用习惯选择适合的格式进行下载。 此外,还有一些第三方资源库和网站提供了Docker相关的笔记下载。例如GitHub上有很多开源项目,其中包含了Docker的使用笔记和示例代码。用户可以通过在GitHub上搜索关键字"Docker笔记"或"Docker notes"来找到相关的项目,然后根据项目的说明进行下载。 总之,下载Docker笔记可以通过Docker官方文档网站或第三方资源库进行。用户可以根据自己的需求和偏好选择下载适合自己的格式和来源。 ### 回答3: 要下载 Docker 笔记,首先需要确保已经安装了 Docker 客户端工具。然后按照以下步骤进行下载: 1. 打开终端或命令提示符,输入以下命令来下载 Docker 笔记Docker 镜像: ``` docker pull [镜像名称] ``` 这里的 `[镜像名称]` 是 Docker Hub 上提供的 Docker 镜像名称,可以根据需要搜索并选择合适的镜像。 2. 等待镜像下载完成后,使用以下命令来创建和运行一个 Docker 容器,并将笔记下载到本地: ``` docker run -it --name [容器名称] [镜像名称] [下载命令] ``` 这里的 `[容器名称]` 是用于标识容器的名称,`[下载命令]` 是具体的下载命令,可以根据下载方式的不同进行相应的设置。 3. 等待下载完成后,可以使用以下命令来停止并删除容器: ``` docker stop [容器名称] docker rm [容器名称] ``` 这里的 `[容器名称]` 是之前创建容器时指定的名称。 通过以上步骤,你就可以成功下载 Docker 笔记到本地了。记得根据实际需求选择适合的 Docker 镜像和下载命令,同时也可以通过 Docker Hub 上的文档和社区提供的资源,了解更多有关 Docker 的使用方法和技巧。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值