ubuntu 64位操作系统终端安装docker镜像

sodo install docker

#查看是否安装docker -v

sudo su 进入root环境下

#下载ubuntu镜像
docker pull ubuntu:16.04

#下载mysql镜像
docker pull mysql:8.0(这是版本号)

#下载nginx镜像
docker pull nginx

#可以启动一个操作系统 但运行不了

docker run ubuntu:16.04

#启动一个指定容器 的虚拟环境

docker run -it --rm ubuntu:14.06

#关闭虚拟环境
docker stop 'docker ps -q'

#启动php虚拟环境
docker start php71

docker功能:快速 搭建环境
#1.很快的在一台主机上虚拟化多个环境
#2.不污染宿主机器,快速使用匹配的虚拟环境来运行程序
#3.持续集成,开源项目

#虚拟主机(ngix,apache)
#半虚拟机(docker)
#全虚拟化的差异(aliyun)

get hub #开源源代码
docker #开源产品镜像

#查看所有镜像
docker images

docker run -i(输入交互参数) -t(终端交互) ubuntu:16.04 /bin/bash(启动容器启动后的第一个程序的参数)
docker run -i -t ubuntu:16.04 /bin/bash
-i:本地的文件,本地的标准输入流 输入到容器里面去(有输入)
-t:容器需要有反馈-
i-t可以合并为-it,-it是启动既有输入又有终端交互的命令
bin/bash是启动后的第一个程序

root@080e89af34ff:/# 这就进入了linux的操作系统里面了

clear #可以清除之前所有的命令


#退出前端进程并且退出(默认关闭)当前运行容器
exit

#查看正在运行的docker容器
docker ps

#不管运行了的还是没有运行的容器都找出来
docker ps -a

#显示容器运行的id
docker ps -aq

#一次性删除所有的容器(通过容器id)
docker rm 'docker ps -aq'

#停止所有运行的容器(id)
docker stop 'docker ps -q'

#为什么启动一个容器立刻就退出了呢
#答:因为启动容器有一些特殊的要求

#删除容器
docker rm 容器id号

#删除镜像
docker rmi 容器id号

#启动容器不需要有终端不需要有交互,可以在后台启动(加-d参数)
如:docker run -d nginx:latest

#查看帮助命令
docker help

#把当前终端附加到其他容器(id)
docker attach id(其他容器id号)
#(无人访问就什么日志都没有)

#结束当前进程(容器也退出)
ctrl + c

#版本号后面什么参数都不加,默认器/bin/bash comment命令
docker run -it ubuntu:16.04

#启动容器输出一句话hello
docker run -it ubuntu:16:06 echo hello

#查找所有容器并且把他们删除掉
docker rm 'docker ps -aq'

#启动容器输出一句话hello(输出完自动就删除容器了)
docker run -it --rm ubuntu:16:06 echo hello

--m和-d不能同时运行
--rm:运行完就结束
-d:执行完,还在后台运行

#给容器起个名字
docker run -d --name nginx nginx:latest

#在启动容器可以使用起的容器名字
#启动nginx
docker start nginx

#重启
docker restart nginx

#停止
docker stop nginx

#删除
docker rm nginx

run #后的参数没有顺序影响(做了个外设,通过外面浏览器访问本地)
docker run --name nginx -d -p 8080:80 nginx:latest

-p:把本地的某个端口绑定容器里面端口
-p后面的80是本地端口
:冒号后面的是容器端口

#不用就停止在删除
docker stop nginx
docker rm nginx

#查询docker支持哪些命令
docker help
#查看docker中run方法支持哪些命令
docker run help

#容器名字不能重复
#启动容器服务器80端口后遇到一些错误,一直自动重启
docker run --name nginx2 -d -p 80:80 --restart=always nginx:latest

#查看内存,cpu,进程消耗
top

#查看进程消耗资源
ps -aux

#数据分析时运用浮点数计算显卡Gpu


#发布镜像
#公司,团体名/具体项目名称,程序名称


#制作一个镜像
docker run -it --name vimu ubuntu:16:04
apt-get update
apt-get install vim
[y/n] y
exit
docker ps -a
#查看就多了一个vimu容器

#测试提交一个镜像
docker commit vimu test/vimu:1.0

#查看就多了一个镜像test/vimu版本为1.0
docker images

#容器启动完就把它删掉
docker run -it --rm test/vimu:1.0

#新建a.txt,并可以编辑
vi a.txt

#做好的镜像别人也能使用要导出

docker export vimu > ~/vimu.taz(保存在家目录下)

#分享环境镜像
#进入到家目录下
cd /
mkdir vimu
ls
pwd #查看路径

#用vi创建一个文件
vi Dockerfile(除了D是大写,其他都是小写)
#用Dockerfile创建一个配置文件,用docker来读取配置文件,根据配置文件的内容来创建一个镜像

#在Dockerfile文件中
#这是一个测试文件(代表注释语句)
FROM ubuntu:16.04
MAINTAINER David chin "自己在阿里云注册的域名"
RUN apt-get update
RUN apt-get install -y vim
-y:是程序安装时弹出对话框你是否继续执行,我们选择-y 继续执行

:wq (退出并保存)

#执行Dockerfile
docker build -t test/vimu:1.1 .
-t:打个标记叫test/vimu:1.1
#.最后这个点必须写,表示当前路径位置

#就是把镜像放在镜像列表里,表示镜像创建结束

#用mysql+wordpress来搭建一个博客
step1:先把mysql和wordpress安装好
docker pull mysql
docker pull wordpress

step2:
#给数据库起名字设密码配置路径,建立mysql和wordpress之间的链接
docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:latest

docker run --name somewordpress --link some-mysql:mysql -p 8080:80 -d wordpress

(--link 把这两个容器链接起来)

ADD指令与copy指令
ADD var/www/index.html /var/www/html/index.html
#如果是目录结尾必有/ 如果是不是目录结尾必有扩展名
#与copy指令类似,但是他能自动解压
copy指令只做复制不会解压

env 环境变量的设置
echo $path 输出当前路径

#构建镜像
vi Dockerfile
docker run --rm -it ubuntu:16.04

docker build -t test/env:1.0 .

#创建并执行退出
docker run --rm -it test/env:1.0 /bin/bash

#输出自己定义的name名字
echo $name

#创建一个workdir,用切换路径
docker build -t test/workdir:1.0 .

vi Dockerfile文件中有
#Dockerfile 模板文件
FROM ubuntu:16.04
WORKDIR /OPT

#学习容器集群
docker compose

compose up 启动整个容器集群就相当于启动了多条--link 命令

#安装compose
apt-get install curl
curl -L "https://github.com/docker/compose/releases/download/1.11.2/docker-compose-$(uname -s)-$(unmae -m)" -o /usr/local/bin/docker-compose

#如果没有python环境就需要安装python了
#或者用python环境安装
#查看python版本
python --version

apt-get install python
[y/n] y
#安装python pip
apt-et install python-pip

#安装compose
pip install docker-compose

#查看安装版本
docker-compose -v

#创建一个文件夹
mkdir ror

vi Gemfile
touch Gemfile.lock
#这两个文件是rubygems需要

#帮助镜像做数据库的链接,帮助容器里命令的执行
#参考文档:https://docs.docker.com/compose/rails/#define-the-project
#启动所有
docker-compose up

#根据配置环境启动创建数据库命令
docker-compose run web rake db:crate

#搜镜像
https://hub.docker.com
#下载镜像
https://dev.aliyun.com/sarch.html

原文地址:https://www.cnblogs.com/xiaofei-bai/p/8657237.html