-
#mkdir d2
#cd d2
#touch Dockerfile
FROM ubuntu
MAINTAINER smilevt
RUN sed -i 's/archive.ubuntu.com/mirros.ustc.edu.cn/g' /etc/apt/sources.lise
RUN apt-get update
RUN apt-get install -y nginx
COPY index.html /var/www/html
ENTRYPOINT ["/usr/sbin/nginx","-g","daemon off"]
EXPOSE 80
#touch index.html
#docker build -t smilevt/hello-nginx .
#docker run -d -p 80:80 smilevt/hello-nginx
#curl http://localhost
Dockerfile语法
FORM 基于镜像
RUN 执行命令
ADD 添加文件,可以是远程文件
COPY 拷贝文件
CMD 执行命令
EXPOSE 暴露端口
WORKDIR 指定路径
MAINTAINER 维护者
ENV 设定环境变量
ENTRYPOINT 容器入口,如果和CMD同时存在,则CMD会成为参数
USER 指定用户,一般容器不会让root用户直接执行
VOLUME mount point 指定容器挂在的卷
查看全部 -
Dockerfile创建镜像
#mkdir d1
#cd d1
#touch Dockerfile
FROM alpine:latest
MAINTAINER smilevt
CMD echo "Hello Docker!"
#docker build -t hello_docker .
查看全部 -
#docker ps 查看docker进程
#docker run -p 8080:80 -d nginx 启动nginx服务
#docker stop 容器ID 停止服务
#docker cp index.html 177sdafdikdffdd://usr/share/nginx/html
#docker commit -m 'fun' 容器ID nginx-fun 保存改动生成一个新的镜像
#docker images 查看已有镜像
#docker rmi 镜像id 根据镜像ID删除镜像
#docker ps -a 查看所有运行过的镜像
#docker rm 镜像ID 删除镜像
#docker pull 获取镜像
#docker build 创建镜像
查看全部 -
Linux 安装
查看全部 -
安装docker命令 :
$ sudo wget -qO- https://get.docker.com/ | sh
默认情况下不能使用非root用户直接运行Docker命令,将当前用户(your_user)加入docker用户组:
$ sudo usermod -aG docker your_user
查看全部 -
docker不是虚拟机
查看全部 -
什么是docker
查看全部 -
国内仓库
daocloud 时速云 aliyun
查看全部 -
dockerfile:通过编写简单的文件自创Docker镜像
查看全部 -
多APP撘建使用查看全部
-
dockerfile的语法:
查看全部 -
https://docs.docker.com/compose/install/#install-compose
查看全部 -
命令小结为:
查看全部 -
# Docker 简介
预备知识:
Linux命令行
bash
云计算(最好)
粗糙地理解为轻量级的虚拟机
开挂的 chroot (chroot 对应用程序做了文件系统的分离,和 Docker 有相似支持)
确实不是虚拟机
Mac安装:下载-安装-配置
```bash
#
docker info
# Linux 下载安装
# wget 下载 -q0 输出不要那么多
sudo wget -q0- https://get.docker.com | sh
sudo usermod -aG docker imooc
# 运行
docker run ubuntu echo hello docker
docker run -p 8080:80 -d daocloud.io/nginx
# 获取 image
docker pull
# 创建 image
docker build
# 运行 container
docker run nginx
# 查看镜像 列出本地已有的 image
docker images
# 列出 container ,查找容器的 id ,查看正在运行的程序
docker ps
docker ps -a
# 删除 container
docker rm
# 删除 image
docker rmi
# 在 host 和 container 之间拷贝文件
docker cp
# 保存改动为新的 image
docker commit
```
> 通过 Dockerfile 创建 docker 镜像
```bash
# 创建的新镜像,有一个基础镜像
FROM alpine:latest
# 共享的时候告诉其他人这是我写的
MAINTAINER xbf
# 运行容器产生的效果
CMD echo 'hello docker'
# 使用 Dockerfile 创建 image
docker build -t hello_docker .
docker images hello_docker
docker run hello_docker
```
创建 docker
```bash
docker_demo docker build -t hello_docker .
Sending build context to Docker daemon 2.048kB
Step 1/3 : FROM alpine:latest
latest: Pulling from library/alpine
ff3a5c916c92: Pull complete
Digest: sha256:e1871801d30885a610511c867de0d6baca7ed4e6a2573d506bbec7fd3b03873f
Status: Downloaded newer image for alpine:latest
---> 3fd9065eaf02
Step 2/3 : MAINTAINER xbf
---> Running in acc2605f5a54
Removing intermediate container acc2605f5a54
---> 6f1e21aef2f8
Step 3/3 : CMD echo 'hello docker'
---> Running in 2f3cfde96400
Removing intermediate container 2f3cfde96400
---> 981b1f27eac9
Successfully built 981b1f27eac9
Successfully tagged hello_docker:latest
```
查看创建的 docker 镜像
```bash
docker_demo docker images hello_docker
REPOSITORY TAG IMAGE ID CREATED SIZE
hello_docker latest 981b1f27eac9 38 seconds ago 4.15MB
```
运行 docker
```bash
docker_demo docker run hello_docker
hello docker
```
第二个 Dockerfile
```bash
FROM ubuntu
MAINTAINER xbf
RUN apt-get update
RUN apt-get install -y nginx
COPY index.html /var/www/html
ENTRYPOINT ["/usr/sbin/nginx", "-g", "daemon off;"]
EXPOSE 80
```
Dockerfile 语法
```bash
# 指定 base image
FROM
# 执行命令
RUN
# 添加文件
ADD
# 拷贝文件
COPY
# 执行命令
CMD
# 暴露端口
EXPOSE
# 指定路径
WORKDIR
# 维护者
MAINTAINER
# 设定环境变量
ENV
# 容器入口
ENTRYPOINT
# 指定用户
USER
# mount point
VOLUME
```
> 镜像分层
Dockerfile 中的每一行都产生一个新层。
每一层都有一个特定的独立的 id
> Volume
提供独立于容器之外的持久化存储。
```bash
docker run -v /usr/share/nginx/html nginx
```
# Registry
镜像仓库。
术语:
```
host 宿主机
image 镜像
container 容器
registry 仓库
daemon 守护进程
client 客户端
```
```
# 从远程仓库
# 搜索镜像
docker search whalesay
# 拉取镜像
docker pull whalesay
# 推送镜像
docker push myname/whalesay
```
官方 dockerhub 仓库。
国内:
daocloud 、时速云、aliyun
```
# 拉取镜像
docker pull docker/whalesay
# 运行 docker/whalesay
docker run docker/whalesay cowsay Docker很Cool!
docker tag docker/whalesay mengcoder/whalesay
docker images # 查看 名字不同 id 相同的两个镜像
docker_demo2 docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mengcoder/whalesay latest 6b362a9f73eb 3 years ago 247MB
docker/whalesay latest 6b362a9f73eb 3 years ago 247MB
# 登录远程仓库
docker login
# 推送镜像到远程仓库
docker push mengcoder/whalesay
```
> 多容器 app
Mac 上 docker 已经带了 docker-compose 。
user -> nginx -> ghost app -> mysql
docker-compose.yaml : 配置文件。
常用命令:
```
build 本地创建镜像
command 覆盖缺省命令
depends_on 连接容器
ports 暴露端口
volumes 卷
image pull镜像
```
docker-compose 命令
```
up 启动服务
stop 停止服务
rm 删除服务中的各个容器
logs 观察各个容器的日志
ps 列出服务相关的容器
```
# 镜像与容器
# 多容器 app
# 容器存储
Docker 介绍
如何制作镜像
如何分享镜像
如何持久化容器数据(卷挂在)
如何编排一个多容器的应用(yaml文件)
查看全部 -
curl -L https://github.com/docker/compose/releases/download/1.9.0/docker-compose-$(uname -s )-$(uname -m) > /usr/local/bin/docker-compose
直接将对应平台的程序下载到本地输出成为文件
查看全部
举报