1.Docker的安装

这里给一个比较通用的教程

Ubuntu 14.04 16.04 (使用apt-get进行安装)

 # step : 安装必要的一些系统工具

 sudo apt-get update

 sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common

 # step : 安装GPG证书

 curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -

 # Step : 写入软件源信息

 sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"

 # Step : 更新并安装 Docker-CE

 sudo apt-get -y update

 sudo apt-get -y install docker-ce

 # 安装指定版本的Docker-CE:

 # Step : 查找Docker-CE的版本:

 # apt-cache madison docker-ce

 # docker-ce | 17.03.~ce-~ubuntu-xenial | http://mirrors.aliyun.com/docker-ce/linux/ubuntu xenial/stable amd64 Packages

 # docker-ce | 17.03.~ce-~ubuntu-xenial | http://mirrors.aliyun.com/docker-ce/linux/ubuntu xenial/stable amd64 Packages

 # Step : 安装指定版本的Docker-CE: (VERSION 例如上面的 17.03.~ce-~ubuntu-xenial)

 # sudo apt-get -y install docker-ce=[VERSION]

CentOS 7 (使用yum进行安装)

 # step : 安装必要的一些系统工具

 sudo yum install -y yum-utils device-mapper-persistent-data lvm2

 # Step : 添加软件源信息

 sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

 # Step : 更新并安装 Docker-CE

 sudo yum makecache fast

 sudo yum -y install docker-ce

 # Step : 开启Docker服务

 sudo service docker start

 # 注意:

 # 官方软件源默认启用了最新的软件,您可以通过编辑软件源的方式获取各个版本的软件包。例如官方并没有将测试版本的软件源置为可用,你可以通过以下方式开启。同理可以开启各种测试版本等。

 # vim /etc/yum.repos.d/docker-ee.repo

 # 将 [docker-ce-test] 下方的 enabled= 修改为 enabled=

 #

 # 安装指定版本的Docker-CE:

 # Step : 查找Docker-CE的版本:

 # yum list docker-ce.x86_64 --showduplicates | sort -r

 # Loading mirror speeds from cached hostfile

 # Loaded plugins: branch, fastestmirror, langpacks

 # docker-ce.x86_64 17.03..ce-.el7.centos docker-ce-stable

 # docker-ce.x86_64 17.03..ce-.el7.centos @docker-ce-stable

 # docker-ce.x86_64 17.03..ce-.el7.centos docker-ce-stable

 # Available Packages

 # Step2 : 安装指定版本的Docker-CE: (VERSION 例如上面的 17.03..ce.-.el7.centos)

 # sudo yum -y install docker-ce-[VERSION]

新版的 Docker 使用 /etc/docker/daemon.json(Linux) 或者 %programdata%\docker\config\daemon.json(Windows) 来配置 Daemon。

请在该配置文件中加入(没有该文件的话,请先建一个):

{"registry-mirrors": ["https://h2htys9o.mirror.aliyuncs.com", "https://docker.mirrors.ustc.edu.cn"]}

2.Docker常用命令

这里给出一篇文档:https://doc.yonyoucloud.com/doc/docker_practice/image/create.html

列举一些常用命令

构建,运行,停止容器

docker build -it test_tag .       //-it是为了给容易命名新的tag,.为dockerfile的路径

docker run -itdp 80:80 test_tag  //-it是容器的tag,-d是后台运行,-p是端口映射

docker stop 容器id

进入容器

docker exec -it 容器id /bin/bash //这里使用/bin/bash进入容器

docker exec -it 容器id sh            // /bin/bash用不了的情况可以使用该命令进入容器

删除容器或镜像

docker rm 容器id

docker rmi 镜像id

docker stop `docker ps -aq`       //关闭所有容器

docker rm `docker ps -aq`          //删除所有容器

docker rmi `docker images`   //删除所有镜像,只有先执行前两个命令才可用第三个命令,不然会报错

重命名镜像

docker tag IMAGEID(镜像id) REPOSITORY:TAG(仓库:标签)

查看容器ip

docker inspect --format '{{ .NetworkSettings.IPAddress }}' <container-ID>

docker inspect <container id>

docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' container_name_or_id

3.常用Dockerfile案例

(1)Ubuntu14:04+lamp

 FROM ubuntu:14.04

 RUN sed -i 's/archive.ubuntu.com/mirrors.ustc.edu.cn/g' /etc/apt/sources.list
RUN sed -i 's/security.ubuntu.com/mirrors.ustc.edu.cn/g' /etc/apt/sources.list ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone # Update sources
RUN apt-get update -y # install http
RUN apt-get install -y apache2
RUN mkdir -p /var/lock/apache2 /var/run/apache2
RUN sed -i '$a\ServerName 127.0.0.1' /etc/apache2/apache2.conf RUN apt-get install -y mysql-client mysql-server
RUN apt-get install -y mysql-client mysql-server
RUN find /var/lib/mysql -type f -exec touch {} \; && service mysql start &&\ &&\
mysqladmin -u root password root &&\
mysql -u root -proot -e "create database mydata;" &&\
mysql -u root -proot mydata < /etc/mydata.sql RUN apt-get install -y software-properties-common
RUN LC_ALL=C.UTF- add-apt-repository ppa:ondrej/php
RUN apt-get update && apt-get install -y --no-install-recommends \
libapache2-mod-php5. \
php5. \
php5.-cli \
php5.-curl \
php5.-dev \
php5.-gd \
php5.-imap \
php5.-mysql \
&& apt-get clean \
&& rm -fr /var/lib/apt/lists/* COPY ./start.sh /start.sh
RUN chmod +x /start.sh
EXPOSE 80 CMD ["/start.sh"]

start.sh

#!/bin/bash

/etc/init.d/apache2 restart
find /var/lib/mysql -type f -exec touch {} \; && service mysql start
/usr/bin/tail -f /dev/null

全部放到一个目录执行即可

sudo docker build -t="lamp" .
sudo docker run -d -p : -it lamp /start.sh

(2)Ubuntu16:04+lamp

 FROM ubuntu:16.04

 ENV DEBIAN_FRONTEND noninteractive
RUN sed -i 's/archive.ubuntu.com/mirrors.aliyun.com/g' /etc/apt/sources.list
RUN sed -i 's/security.ubuntu.com/mirrors.aliyun.com/g' /etc/apt/sources.list RUN apt-get update # install http
RUN apt-get install -y apache2
RUN mkdir -p /var/lock/apache2 /var/run/apache2
RUN sed -i '$a\ServerName 127.0.0.1' /etc/apache2/apache2.conf #install mysql
COPY ./db.sql /db.sql
RUN apt-get install -y mysql-server &&\
chown -R mysql:mysql /var/lib/mysql &&\
find /var/lib/mysql -type f -exec touch {} \; && service mysql start &&\
mysqladmin -u root password "password" &&\
mysql -u root -ppassword -e "create database test;" &&\
mysql -u root -ppassword test < /db.sql RUN apt-get install -y software-properties-common
RUN LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/php
RUN apt-get update && apt-get install -y --no-install-recommends \
libapache2-mod-php5.6 \
php5.6 \
php5.6-cli \
php5.6-curl \
php5.6-dev \
php5.6-gd \
php5.6-imap \
php5.6-mysql \
&& apt-get clean \
&& rm -fr /var/lib/apt/lists/* ADD ./web.tar.gz /var/www/html/
RUN chmod +x /root/start.sh EXPOSE 80
ENTRYPOINT cd /root ; ./start.sh

start.sh

#!/bin/bash

/etc/init.d/apache2 restart
find /var/lib/mysql -type f -exec touch {} \; && service mysql start
/usr/bin/tail -f /dev/null #或者/bin/bash

(3)ubuntu16.04+lnmp

 FROM  ubuntu:16.04

 RUN sed -i 's/archive.ubuntu.com/mirrors.ustc.edu.cn/g' /etc/apt/sources.list
RUN sed -i 's/security.ubuntu.com/mirrors.ustc.edu.cn/g' /etc/apt/sources.list # Update sources
RUN apt-get update -y RUN apt-get install -y bash-completion unzip build-essential gcc g++ autoconf libiconv-hook-dev wget # nginx php
RUN apt-get install -y nginx php7.-fpm
RUN rm -rf /var/lib/apt/lists/* COPY ./default /etc/nginx/sites-available/default
COPY ./src/index.php /usr/share/nginx/html/index.php RUN chown -R www-data:www-data /usr/share/nginx/html \
&& ln -s /usr/share/nginx/html /html
COPY ./start.sh /start.sh
RUN chmod a+x /start.sh EXPOSE 80
CMD ["/start.sh"]

start.sh

 #!/bin/bash

 service nginx restart
service php7.-fpm start
find /var/lib/mysql -type f -exec touch {} \; && service mysql start /usr/bin/tail -f /dev/null

Docker小记的更多相关文章

  1. Docker小记 — Docker Engine

    前言 用了Docker方才觉得生产环境终于有了他该有的样子,就像集装箱普及之后大型货轮的价值才逐渐体现出来,Docker详细说明可查阅"官方文档".本篇为Docker Engine ...

  2. Docker 小记 — Compose & Swarm

    前言 任何相对完整的应用服务都不可能是由单一的程序来完成支持,计划使用 Docker 来部署的服务更是如此.大型服务需要进行拆分,形成微服务集群方能增强其稳定性和可维护性.本篇随笔将对 Docker ...

  3. Docker 小记 — MySQL 与 Redis 配置

    前言 本篇随笔是继 "Docker Engine" 与 "Compose & Swarm" 之后的一个实例补充,初衷是记录测试环境中的一次 MySQL ...

  4. Docker 小记 — Docker Engine

    前言 用了 Docker 方才觉得生产环境终于有了他该有的样子,就像集装箱普及之后大型货轮的价值才逐渐体现出来,Docker 详细说明可查阅"官方文档".本篇为 Docker En ...

  5. 虚拟机Centos安装docker小记

    本书记录是参考 <Spring Cloud 与 Docker 微服务架构实战(第二版)>这本书实现的. 记录简单几个命令,安装顺序如下: 1. 安装docker所需的包 sudo yum ...

  6. docker swarm 搭建与服务更新

    一,docker swarm 是什么 Docker Swarm.Docker Machine与Docker Compose号称Docker三剑客Docker Swarm 和 Docker Compos ...

  7. docker swarm和compose 的使用(阿里)

    基本的docker使用参考:Docker 入门 到部署Web 程序- (阿里面试常用的docker命令和优点) 昨天去阿里面试 问我如果给你5台服务器 如何部署docker,我说一个个拷贝,面试官听了 ...

  8. Docker 建站小记

    一,前言 Docker 建站小记,我使用了四个镜像来搭建:nginx,certbot,mysql,gradle.欢迎访问:https://www.zzk0.top 这个网页是从 github 上找的个 ...

  9. docker命令小记

    最近工作需要,对docker稍微了解了一下,大部分内容网上都有各种各样的教程.有两个稍微特殊的命令这里记录一下: 1. rename image的命令 从各种私有镜像下载后用docker images ...

随机推荐

  1. VBA学习资料分享-2

    想利用VBA自动创建/发送OUTLOOK邮件,可以借助MailItem的Body属性或HTMLBody属性,代码模板如下: Dim objOutlook As Outlook.Application ...

  2. Python应用范围seo

    Python有许多OOP概念,包括类.对象.数据和方法.抽象.封装.继承和多态性等原则也可以使用Python实现和表示.python有几个高级函数,包括迭代器.生成器.列表分析器.lambda表达式和 ...

  3. JavaScript特点有哪些

    JavaScript特点有哪些 JavaScript 文字脚本语言是一种动态的.弱类型的.基于原型的语言,具有内置的支持类型.它的解释器被称为javascript引擎,是浏览器的一部分,广泛用于客户端 ...

  4. 二、LinkList及其源码解析

    1.链表介绍 链表是一种物理单元上非连续,非顺序的存储结构.链表由一系列的姐点组成,结点可以在运行时动态生成.每个结点包含两个部分,一个是存储数据元素的数据域,一个是存储下一个结点的指针域 双链表是链 ...

  5. SmartBinding with kbmMW #4

    前言 在前面写过的文章中,详细介绍过如何将各种的控件与数据源进行绑定(Bind).在这篇文章中,将重点讨论如何绑定TImage和TListView.(同时支持VCL与Firemonkey). 将图形数 ...

  6. PAT Basic 1062 最简分数 (20 分)

    一个分数一般写成两个整数相除的形式:/,其中 M 不为0.最简分数是指分子和分母没有公约数的分数表示形式. 现给定两个不相等的正分数 / 和 /,要求你按从小到大的顺序列出它们之间分母为 K 的最简分 ...

  7. springboot2集成activiti出错

    报一个反射错误 java.lang.ArrayStoreException: sun.reflect.annotation.TypeNotPresentExceptionProxy 解决方案:http ...

  8. 牛客练习赛48 E 小w的矩阵前k大元素

    E 思路: 优先队列,将迭代器变量作为结构体的变量. 迭代器走的时候只能像一个方向走,另外一个方向只有最开始才走.如下图所示: 如果两个方向同时走,同一个值会被遍历多次,像上图那样就能保证每个位置都走 ...

  9. Linux如何判断自己的服务器是否被入侵

    如何判断自己的服务器是否被入侵了呢?仅仅靠两只手是不够的,但两只手也能起到一些作用,我们先来看看UNIX系统上一些入侵检测方法,以LINUX和solaris为例. 1.检查系统密码文件 首先从明显的入 ...

  10. Circular view path [mydemo]: would dispatch back to the current handler URL [/mydemo] again. Check your ViewResolver setup!

    简单创建一个springboot工程 pom.xml <?xml version="1.0" encoding="UTF-8"?><proje ...