zoukankan      html  css  js  c++  java
  • Docker镜像-拉取并且运行

    1.docker search : 从Docker Hub查找镜像

    docker search [OPTIONS] 镜像名

      OPTIONS说明:

    • --automated :只列出 automated build类型的镜像;

    • --no-trunc :显示完整的镜像描述;

    • -s :列出收藏数不小于指定值的镜像。

    可以看到返回了很多包含关键字的镜像,其中包括镜像名字、描述、收藏数(表示该镜像的受关注程度)、是否官方创建(OFFICIAL)、是否自动构建 (AUTOMATED)。

    2.拉取镜像

    docker pull 镜像:版本号


    如果不指定版本号,默认拉下来是最新的

    3.运行

    镜像是容器的基础,每次执行 docker run 的时候都会指定哪个镜像作为容器运行的基础

    现在让我们以定制一个 Web 服务器为例子,来讲解镜像是如何构建的。 

    $ docker run --name webserver -d -p 80:80 nginx

    这条命令会用 nginx 镜像启动一个容器,命名为 webserver,并且映射了 80 端口(左边的也可以改成其他端口为对外暴露的,右边的是docker中的),这样我们可以用浏览器去访问这个 nginx 服务器。 输入localhost

    现在,假设我们非常不喜欢这个欢迎页面,我们希望改成欢迎 Docker 的文字,我们可以使用 docker exec 命令进入容器,修改其内容。

    $ docker exec -it webserver bash
    root@3729b97e8226:/# echo '<h1>Hello, Docker!</h1>' > /usr/share/nginx/html/index.html
    root@3729b97e8226:/# exit
    exit

    我们以交互式终端方式进入 webserver 容器,并执行了 bash 命令,也就是获得一个可操作的 Shell。

    然后,我们用 <h1>Hello, Docker!</h1> 覆盖了 /usr/share/nginx/html/index.html 的内容。

    现在我们再刷新浏览器的话,会发现内容被改变了。

    现在我们定制好了变化,我们希望能将其保存下来形成镜像。

    要知道,当我们运行一个容器的时候(如果不使用卷的话),我们做的任何文件修改都会被记录于容器存储层里。而 Docker 提供了一个 docker commit 命令,可以将容器的存储层保存下来成为镜像。换句话说,就是在原有镜像的基础上,再叠加上容器的存储层,并构成新的镜像。以后我们运行这个新镜像的时候,就会拥有原有容器最后的文件变化。

    $ docker commit 
        --author "Tao Wang <twang2218@gmail.com>" 
        --message "修改了默认网页" 
        webserver 
        nginx:v2

    其中 --author 是指定修改的作者,而 --message 则是记录本次修改的内容。这点和 git 版本控制相似,不过这里这些信息可以省略留空。

    新的镜像定制好后,我们可以来运行这个镜像。

     docker commit 命令,手动操作给旧的镜像添加了新的一层,形成新的镜像

    4.运行的参数

    -d :代表后台运行容器,返回容器ID
    --name: 自定义容器的名称,不加这命令docker会随便给一个名给你,所以建议打上这命令
    -p :代表映射的端口 本地端口:镜像的默认端口(注意,每个软件默认端口是不同的)
    -e: 配置mysql的root密码

    -i: 以交互模式运行容器,通常与 -t 同时使用;

    -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;

    -P: 随机端口映射,容器内部端口随机映射到主机的高端口

    --volume , -v: 绑定一个卷

     docker run -p 12345:3306 --name mysqlyf -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.6

    使用镜像centos:latest以交互模式启动一个容器,在容器内执行/bin/bash命令。

    runoob@runoob:~$ docker run -it centos:latest /bin/bash
    root@b8573233d675:/#
  • 相关阅读:
    vuex之store拆分即多模块状态管理
    vue项目中使用vueX
    vue中父子组件的参数传递和应用
    VUE中使用vue-awesome-swiper
    VUE真实项目中常用的生命周期和参数
    VUE生命周期
    vue+mockjs 模拟数据,请求回调的应用
    Vue项目搭建与部署还有调试插件Vue.js devtools
    tableTD中添加对角斜线
    前端面试题及答案,理论知识
  • 原文地址:https://www.cnblogs.com/yuanfang0903/p/11231222.html
Copyright © 2011-2022 走看看