docker基础命令

使用docker镜像

  • 获取镜像

    从docker registry获取镜像的命令是docker pull。命令格式是:
    docker pull [选项][docker registry地址] 仓库名:标签
    docker register地址:地址的格式一般是 域名:端口,默认地址是docker hub
    仓库名:仓库名是两段格式,用户名/软件名,如果不写用户,默认docker hub用户名是library,也就是官方镜像
  • 列出服务器所有的镜像文件

    # 列出所有的imaga文件
    docker image ls
    等同与
    docker images
    删除所有的image文件
    docker image rm [imagename]

docker命令学习

  1. 删除docker镜像(必须删除依赖这个镜像的容器记录)

    docker rmi 镜像id/镜像名
  2. 运行镜像,且产生一个容器记录,且进入容器空间内

    docker run  -it  centos  /bin/bash
    -it 交互式的终端,代表我可以在容器中输入命令
    /bin/bash 指定shell解释器
  3. 创建一个容器,在容器内安装一个vim工具

    # 运行镜像,
    docker run -it centos /bin/bash
    # 安装vim
    yum install vim #退出
    exit
  4. 提交这个容器,创建新的image

    docker commit 059fdea031ba chaoyu/centos-vim
    # 059fdea031ba 为上述容器id, 后面的是新的image文件名
  5. 查看已提交的镜像记录

    docker images
  6. 基于这个拥有vim的镜像,创建新的容器

    docker run -it 479  /bin/bash
    # 479 为拥有vim的镜像id, 后续为路径
  7. 导出当前系统的镜像文件,可以传输给其他人

    docker save shenzhenqishi1qi/centos-vim    > /opt/centos-vim.tar.gz
  8. .其他人或者自己可以导入这个镜像文件

    docker load < /opt/centos-vim.tar.gz
  9. 创建启动容器的方式有2种

    1.基于镜像创建新的容器
    2.对于已运行的容器,进行启停
    docker stop 容器id
    docker start 容器id
  10. 运行centos镜像生成容器并执行 echo hehe

    #这条命令意思是:创建一个只运行一次的容器
    docker run centos /bin/echo "hehe"
  11. 运行一个容器记录,且给与名字

    docker run --name mydocker -it centos /bin/bash#启动一个bash终端,允许用户进行交互
  12. 运行一个ubuntu容器

    1.查看系统的版本信息
    cat /etc/redhat-release #这个命令查看红帽系列的系统
    cat /etc/os-release
    2.运行一个ubuntu容器
    docker run -it ubuntu /bin/bash
  13. 删除容器记录

    docker rm  容器id
    docker -aq #列出所有容器记录的id
    docker stop `docker ps -aq` #停止所有正在运行的容器
    docker rm `docker ps -aq` #一次性删除所有容器记录
    docker rmi `docker images -aq` #一次性删除所有本地的镜像记录
  14. 暴露容器端口,端口映射

    	-P 参数会随机映射端口到容器开放的网络端口
    docker run -d -P training/webapp python app.py
    -d 后台运行
    -P 端口映射, 随机映射 ,物理机的随机端口:容器内暴露的端口 如果本地没有镜像文件,docker run会自动帮我们下载镜像
    在docker run centos [root@qishione ~]# docker ps
    CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
    e3e0be2b22a8 training/webapp "python app.py" 2 seconds ago Up 1 second 0.0.0.0:32769->5000/tcp qishiweb 只要我访问宿主机的32769端口也就是访问到了容器内的5000端口
  15. 指定端口映射,启动容器应用

    docker run -d -p 9999:5000 --name my9999webapp training/webapp python app.py
  16. training/webapp 这个镜像文件,我们基于这个镜像,运行了一个flask web app

    1.基于ubuntu 14.04的操作系统   FROM ubuntu:14.04
    2.默认进入了/opt/webapp目录 RUN cd /opt/webapp
    3.在这个目录下存放了Procfile app.py requirements.txt tests.py
    4.通过容器内的命令,运行一个后台程序 python app.py
    5.最终这个镜像,生成了一个web容器
    6.数据挂载
    -v 宿主机的文件夹:容器内的文件夹
    -p 端口映射 宿主机的端口:容器内的端口
    7. docker port 82e 查看容器的端口映射关系
  17. 发布docker镜像到docker hub

    1.登录odcker hub仓库,注册一个用户,用于存放自己的docker镜像
    2.在linux中登录docker
    docker login #输入账号密码 3.修改本地镜像的名字,推送到docker hub
    docker tag docker.io/hello-world yuchao163/qishi1qi-hello-docker 4.推送本地镜像到共有仓库
    docker push yuchao163/qishi1qi-hello-docker 5.仍和人都可以随意下载这个镜像
    docker pull yuchao163/qishi1qi-hello-docker
  18. 搭建私有docker仓库,提交本地镜像

    1.下载一个docker官方私有仓库镜像
    docker pull registry
    2.运行一个docker私有容器仓库
    docker run -d -p 5000:5000 -v /opt/data/registry:/var/lib/registry registry
    -d 后台运行
    -p 端口映射 宿主机的5000:容器内的5000
    -v 数据卷挂载 宿主机的 /opt/data/registry :/var/lib/registry
    registry 镜像名
    3.修改docker的配置文件,让他支持http方式,上传私有镜像
    vim /etc/daemon.json
    写入如下内容
    {
    "registry-mirrors": ["http://f1361db2.m.daocloud.io"],
    "insecure-registries":["192.168.11.37:5000"]
    }
    4.修改docker的服务配置文件
    vim /lib/systemd/system/docker.service
    找到[service]这一代码区域块,写入如下参数
    [Service]
    EnvironmentFile=-/etc/docker/daemon.json
    5.重新加载docker服务
    systemctl daemon-reload
    6.重启docker服务
    重启docker服务,所有的容器都会挂掉
    重启docker服务,所有的容器都会挂掉
    重启docker服务,所有的容器都会挂掉 systemctl restart docker 7.修改本地镜像的tag标记,往自己的私有仓库推送
    docker tag docker.io/yuchao163/hello-world-docker 192.168.11.37:5000/xiayuhao
    8.下载私有仓库的镜像
    docker pull 192.168.11.37:5000/xiayuhao
  19. 编写dockerfile,构建自己的镜像,运行flask程序

    1.在宿主机中,编写一个flask代码文件,和Dockerfile
    cd /opt/dockertest/
    touch flasktest.py
    from flask import Flask
    app=Flask(__name__)
    @app.route('/')
    def hello():
    return "i love china"
    if __name__=="__main__":
    app.run(host='0.0.0.0',port=8080) 2.构建dockerfile
    1.指引一个基础的系统镜像centos
    2.定义作者标签
    3.解决环境依赖关系,安装python-setuptools
    4.安装flask模块 easy_install flask
    5.准备代码文件到容器中 COPY flasktest.py /opt/
    6.切换到/opt目录下 workdir /opt
    7.运行代码 python flasktest.py 3.dockerfile内容如下
    [root@qishione dockertest]# cat Dockerfile
    FROM centos
    LABEL maintainer="深圳骑士1期"
    RUN yum install python-setuptools -y
    RUN easy_install flask
    COPY flasktest.py /opt/
    WORKDIR /opt
    EXPOSE 8080
    CMD ["python","flasktest.py"] 4.构建镜像文件,找到当前目录的Dockerfile,开始构建
    docker build -t qishi1qi/flask-web . 5.基于这个镜像,生成容器实例
    docker run -d -p 7777:8080 945 6.推送这个镜像到私有仓库
    docker tag qishi1qi/flask-web 192.168.11.37:5000/qishi1qi-flaskweb
    docker push 192.168.11.37:5000/qishi1qi-flaskweb

docker基础命令,常用操作的更多相关文章

  1. docker基础命令和操作

    前言 之前在部署个人网站的时候,需要打包maven,在生产环境,需要使用到docker去做服务器和端口的守护. 于是在查阅了相关资料,学习了docker一些基本命令行操作,包括对镜像的查看,修改和添加 ...

  2. Docker基础和常用命令

    Docker基础和常用命令 一,Docker 简介 1.1,什么是 Docker Docker 使用 Google 公司推出的 Go 语言 进行开发实现,基于 Linux 内核的 cgroup,nam ...

  3. 1. Docker基础命令

    本文简要介绍Docker的基础命令,目的在于快速入门Dokcer,Docker的完整命令可以参考Docker官方手册. 0. 安装Docker Docker当前分为企业版(Docker Enterpr ...

  4. Linux - nginx基础及常用操作

    目录 Linux - nginx基础及常用操作 Tengine淘宝nginx安装流程 nginx的主配置文件nginx.conf 基于域名的多虚拟主机实战 nginx的访问日志功能 网站的404页面优 ...

  5. Docker - Docker基础命令及使用

    Docker Docker - 官网 Docker - Hub GitHub - Docker Docker中文社区 Docker基础命令 Docker 查看帮助信息:docker --help 查看 ...

  6. Linux 的基础命令的操作

    Linux 的基础命令的操作 显示日期和时间:date 显示日历:cal 简单好用的计算机:bc 1.显示日期: date +%Y/%m/%d 2018/09/01 date +%H:%M 14:26 ...

  7. Mac 下 Git 的基础命令行操作

    Mac 下 Git 的基础命令行操作 sudo apt-get install git-core //安装Git 用户配置 git config --global user.name "Yo ...

  8. Docker安装及常用操作

    Docker简介: Docker是一个轻量级容器技术,类似于虚拟机技术,但性能远远高于虚拟机,Docker支持将软件编译成一个镜像(image),在这个镜像中做好对软件的各种配置,然后可以运行这个镜像 ...

  9. 02-命令篇——基础命令&常用命令

    基础命令 docker 启动与停止 启动docker systemctl start docker 停止docker systemctl stop docker 重启docker systemctl ...

随机推荐

  1. 在VMware上安装Linux虚拟机

    1.新建虚拟机 2.选择典型安装 3.点击稍后安装操作系统 4.选择类型和版本 5.选择一个英文路径 6. 7.调整硬件 8. 9. 10.选择第一项 11.选择中文 12.选择最小安装 13. 14 ...

  2. 36、python并发编程之多线程(操作篇)

    目录: 一 threading模块介绍 二 开启线程的两种方式 三 在一个进程下开启多个线程与在一个进程下开启多个子进程的区别 四 练习 五 线程相关的其他方法 六 守护线程 七 Python GIL ...

  3. Solution -「多校联训」光影交错

    \(\mathcal{Description}\)   Link.   一个游戏包含若干次卡牌抽取,每次以 \(p_l\) 的概率得到 \(+1\),\(p_d\) 的概率得到 \(-1\),否则得到 ...

  4. JavaScript函数式编程(纯函数、柯里化以及组合函数)

    JavaScript函数式编程(纯函数.柯里化以及组合函数) 前言 函数式编程(Functional Programming),又称为泛函编程,是一种编程范式.早在很久以前就提出了函数式编程这个概念了 ...

  5. 黑客高端de浏览器使用秘籍

    搜索引擎已经成为上网必不可少的工具之一,聪明的黑客们发现,搜索引擎也能成为发动网络攻击的工具. Google Hacking,原指利用Google搜索引擎搜索信息来进行入侵的技术和行为,如今已不再局限 ...

  6. 数据库项目部署(nginx)

    1.在虚拟机2008server下载nginx http://nginx.org/download/nginx-1.17.10.zip 注1:此版本为window版本 linux版本 2. 解压软件至 ...

  7. msf常见命令

    msf命令全集 一.msfconsole ?   帮助菜单 back 从当前环境返回 banner   显示一个MSF banner cd   切换目录 color   颜色转换 connect   ...

  8. 使用fireworks解决图片隐写的问题

    同样也可以用ps来解决图层间隐写的问题

  9. Smartbi扩展性怎么样,是否方便扩展开发产品已有功能?

    Smartbi大数据分析工具具有很强的扩展性,通过"稳定内核+API扩展"的架构,通过报表插件扩展的方式,能满足很多应用项目的定制化需求,把新功能无缝集成到系统中. Smartbi ...

  10. 更快的网络文件系統 — Oxfs

    什麽时候需要网络文件系统 ? 做嵌入式的同学经常会使用 NFS 将 host 上的某个目录挂载到开发板上,方便 host 上编译构建后能直接在板子上运行,减少手工拷贝操作.网站开发时,在 host 上 ...