docker基本命令

docker run -d -p 80:80 --name webserver nginx 运行容器并起别名
docker ps 展示目前启动的容器
docker ps -a 展示所有容器
docker start 启动容器
docker stop 停止容器
docker rm -f webservr 停止并删除容器,但不会删除镜像
docker images 显示本地拥有的镜像
docker rmi nginx 删除本地images

创建自己的docker镜像

编辑Dockerfile文件,填入以下内容:

FROM docker/whalesay:latest
RUN apt-get -y update && apt-get install -y fortunes
CMD /usr/games/fortune -a | cowsay

运行以下命令创建名为docker-whale的镜像:

docker build -t docker-whale .
  • -t: 给tag命令
  • .: Dockerfile文件所在路径

docker tag push pull

docker tag 8e15421920b1 xulingfeng/docker-whale:latest

上传操作

docker push xulingfeng/docker-whale

下载操作

docker pull centos

交互式的操作

docker run -t -i ubuntu /bin/bash
  • -t 分配了一个终端在新的容器中
  • -i 允许你和容器进行交互操作
  • /bin/bash 启动容器中的Bash shell

docker的守护状态,也就是后台运行

docker run -d ubuntu /bin/sh -c "while true; do echo hello world; sleep 1; done"
  • docker run 运行容器
  • -d 让容器在后台运行
  • ubuntu 你希望运行容器的镜像

查看docker容器运行日志

docker logs -f 容器名
  • -f 类似与 tail -f

使用docker运行web应用

docker run -d -P training/webapp python app.py
  • -d:代表后台运行该容器
  • -P:映射容器中的web应用端口号到你的主机上32768-61000中的某一个端口。这样你可以访问该容器中的web应用
  • training/webapp: 一个已经构建好的镜像,包含一个简单的python flask框架web应用
  • python app.py:这个命令用来启动容器中的web

成功运行以上命令后,运行:

docker ps

查看到容器的5000端口号映射到了本地的32768,浏览器访问http://127.0.0.1:32768 看到helloworld 成功提示

自定义主机端口号

docker run -d -p 80:5000 training/webapp python app.py
  • -p 80:5000 将本机的80端口绑定容器内的5000端口,本地直接访问 http://127.0.0.1 即可

查看容器的进程

docker top 容器名

检查容器的状态信息

docker inspect 容器名

镜像搜索

docker search 内容

创建一个给pycharm开发用的镜像,包含python3,Django, Flask, requests, PyMySQL, ldap3, jira,celery, simplejson

centos镜像,分解步骤如下

首先添加额外源

yum install -y epel-release

安装编译环境

yum install -y gcc automake autoconf libtool make gcc-c++

安装wget命令

yum install -y wget

安装openssl-devel python的pip命令依赖

yum install -y openssl-devel

下载python3.5.2最新包

wget https://www.python.org/ftp/python/3.5.2/Python-3.5.2.tgz -P /software/

解压python3.5.2压缩包并编译安装

tar -zxvf /software/Python-3.5.2.tgz -C /software/

./configure && make -j2&& make install -j2

更新pip

pip install --upgrade pip
pip install --upgrade setuptools

安装所需的第三方包

pip install Django Flask requests PyMySQL ldap3 jira celery simplejson

通过Dockerfile构建镜像

Dockerfile:

FROM centos:latest
RUN yum install -y epel-release
RUN yum install -y gcc automake autoconf libtool make gcc-c++
RUN yum install -y wget
RUN yum install -y openssl-devel
RUN wget https://www.python.org/ftp/python/3.5.2/Python-3.5.2.tgz -P /software/
RUN tar -zxvf /software/Python-3.5.2.tgz -C /software/
RUN cd /software/Python-3.5.2/ && ./configure python3 && make -j2&& make install -j2
RUN pip install --upgrade pip
RUN pip install --upgrade setuptools
RUN pip install Django Flask requests PyMySQL ldap3 jira celery simplejson

在Dockerfile目录中执行:

docker build -t 名字:版本 .

兼容docker for mac 和 pycharm

brew install socat
socat TCP-LISTEN:2376,reuseaddr,fork,bind=127.0.0.1 UNIX-CLIENT:/var/run/docker.sock

docker for mac 学习记录的更多相关文章

  1. Python学习记录day5

    title: Python学习记录day5 tags: python author: Chinge Yang date: 2016-11-26 --- 1.多层装饰器 多层装饰器的原理是,装饰器装饰函 ...

  2. 【Android】学习记录<1> -- 初识ffmpeg

    工作需要用到ffmpeg来进行Android的软编码,对这玩意儿一点都不了解,做个学习记录先. FFmpeg:http://www.ffmpeg.org Fmpeg is the leading mu ...

  3. docker on Mac

    贡献一篇: 云主机可以选择操作系统镜像快速创建主机,这比虚拟机更便捷了,我们本地也可以这么做了,因为有了 Docker 这个东西.它依赖于 LXC(Linux Container),能从网络上获得配置 ...

  4. java后端学习记录2019

    学习计划 2019年计划 1.学习计算机基础,并加以实践.包括LeetCode刷题.数据库原理(索引和锁.Sql优化等).网络协议(Http.Tcp).操作系统(加深Linux).<Http权威 ...

  5. Docker虚拟化实战学习——基础篇(转)

    Docker虚拟化实战学习——基础篇 2018年05月26日 02:17:24 北纬34度停留 阅读数:773更多 个人分类: Docker   Docker虚拟化实战和企业案例演练 深入剖析虚拟化技 ...

  6. ASP.NETCore学习记录(一)

    ASP.NETCore学习记录(一) asp.net core介绍  Startup.cs  ConfigureServices  Configure  0. ASP.NETCore 介绍 ASP.N ...

  7. 区块链Hyperledger Fabric 学习记录(一)开发环境搭建(ubuntu16.04/ubuntu18.04)

    目录 Fabric开发环境搭建 更新说明 教程环境及软件版本 Docker 安装Docker 配置用户组 配置Aliyun Docker加速器 安装docker-compose Go 下载源码 安装源 ...

  8. Python全栈工程师系列学习之学习记录

    @ 目录 前言 Day 01 一.python的历史和种类 二.安装python解释器以及配置环境变量 三.变量.常量和注释 Day 02 Day 03 Day 04 Day 05 Day 06 一. ...

  9. Java 8 学习记录

    Java 8 学习记录 官方文档 https://docs.oracle.com/javase/8/ https://docs.oracle.com/javase/8/docs/index.html ...

随机推荐

  1. 7.让网站支持http和https的访问方式

    平台之大势何人能挡? 带着你的Net飞奔吧!:http://www.cnblogs.com/dunitian/p/4822808.html#iis 怎么让网站在本地支持SSL?http://www.c ...

  2. C++中的const

    一,C++中const的基本知识 1.C++中const的基本概念 1.const是定义常量的关键字,表示只读,不可以修改. 2.const在定义常量的时候必须要初始化,否则报错,因为常量无法修改,只 ...

  3. SDWebImage源码解读 之 NSData+ImageContentType

    第一篇 前言 从今天开始,我将开启一段源码解读的旅途了.在这里先暂时不透露具体解读的源码到底是哪些?因为也可能随着解读的进行会更改计划.但能够肯定的是,这一系列之中肯定会有Swift版本的代码. 说说 ...

  4. Android 工具-adb

    Android 工具-adb 版权声明:本文为博主原创文章,未经博主允许不得转载. Android 开发中, adb 是开发者经常使用的工具,是 Android 开发者必须掌握的. Android D ...

  5. HTML 5 应用程序缓存manifest

    什么是应用程序缓存(Application Cache)? HTML5 引入了应用程序缓存,这意味着 web 应用可进行缓存,并可在没有因特网连接时进行访问. 应用程序缓存为应用带来三个优势: 离线浏 ...

  6. Android中Fragment与Activity之间的交互(两种实现方式)

    (未给Fragment的布局设置BackGound) 之前关于Android中Fragment的概念以及创建方式,我专门写了一篇博文<Android中Fragment的两种创建方式>,就如 ...

  7. docker4dotnet #4 使用Azure云存储构建高速 Docker registry

    使用Docker来构建应用程序最常见的操作就是 docker run 或者 docker pull了,但是由于众所周知的原因,在国内想要高速稳定的获取docker hub上面的资源并不是件容易的事情, ...

  8. 解决mysql插入数据时出现Incorrect string value: '\xF0\x9F...' for column 'name' at row 1的异常

    这个问题,原因是UTF-8编码有可能是两个.三个.四个字节.Emoji表情或者某些特殊字符是4个字节,而MySQL的utf8编码最多3个字节,所以数据插不进去. 我的解决方案是这样的 1.在mysql ...

  9. Jenkins的一个bug-同时build一个项目两次导致失败

    我们有一个job A, A只是配置了一些参数,它会去触发模板job B. 我一开始点击构建A, 马上发现参数配置不对,于是撤消了构建,但是我没有发现B已经被触发,我重新配置参数,然后再次构建A,这个时 ...

  10. QDEZ集训笔记【更新中】

    这是一个绝妙的比喻,如果青岛二中的台阶上每级站一只平度一中的猫,差不多站满了吧 自己的理解 [2016-12-31] [主席树] http://www.cnblogs.com/candy99/p/61 ...