docker 的常用命令:
docker pull 获取 image
docker build 创建 image
docker images 列出 image
docker run 运行 container
docker stop 停止 container
docker rmi 删除 image
docker ps 列出 container
docker ps -a 列出 container 的历史记录
docker rm ["idlist"] 删除 contain 多个历史记录
docker run -p 8080:80 -d daocolud.io/nginx 运行 nginx
docker cp index.html ["id"]://usr/share/nginx/HTML 暂时修改 nginx 首页
docker commit -m 'fun' ["id"] ['name'] 保存修改的 image
创建简单的 docker 镜像 Dockerfile
1. 创建 Dockerfiler 文件
2. 编辑文件, VIM Dockerfile
输入:
- FROM alpine:latest
- MAINTAINER yrg
- CMD echo "Hello Docker"
3. 创建镜像
docker build -t hello_docker .
-t: 给镜像一个 hello_docker 的标签,'.'是一个路径名, 把底下所有的内容都送给 docker engine 让他产生一个 image
4. 查看 image
5. 运行 image
Dockerfile 实战 (创建较复杂的 image)
1. 创建文件夹, 创建 Dockerfile 文件
2. 编辑文件, 在其中添加如下:
- FROM Ubuntu #名字
- MAINTAINER yrg #作者
- RUN sed -i 's/archive.ubuntu.com/mirrors.ustc.edu.cn/g' /etc/apt/sources.list #加速镜像
- RUN apt-get update #更新 Ubuntu 的库
- RUN apt-get install -y nginx #安装 nginx 的命令
- COPY index.HTML /var/www/HTML #拷贝准备的 index.HTML 到容器里 (不同 Ubuntu 是不一样的)
- ENTRYPOINT ["/usr/sbin/nginx","-g","daemon off;"] #容器的入点, 将 nginx 作为前台来执行
- EXPOSE 80 #端口
3. 创建镜像
docker build -t yrg/hello-nginx .
4. 运行镜像
- docker run -p 80:80 -d yrg/hello-nginx
- 5.curl http://localhost 进行查看
Dockerfile 语法
镜像分层
Volumo
介绍: 提供独立于容器之外的持久化存储
操作: 1.docker run -d --name nginx -v /usr/share/nginx/HTML nginx
2.docker inspect nginx 查看详情
3. 查看文件
ls /var/lib/docker/volumes/76db0f001f7675c41f511400dd09be16fe2e785f114c7f1a1e0f860c3b36f4fd/_data
4. 可以修改 index 文件进入容器中下查看
- docker exec -it /bin/bash
- cd /usr/share/nginx/HTML
cat index.HTML
方式二挂载:
docker run -p 80:80 -d -v $PWD/HTML:/usr/share/nginx/HTML nginx
三:
docker create -v $PWD/data:/var/mydata --name data_container Ubuntu
进入 Ubuntu
docker run -it --volumes-from data_container Ubuntu /bin/bash
输入 mount
进入 / var/mydata, 输入 ls, 可以看到为空
创建一个文本, whatever.txt, 然后退出
进入 data, 输入 ls, 可以看的当前目录下也创建了一个 whatever.txt 的文本
说明挂载成功
Registry(镜像仓库)
- # docker search whalesay : 从仓库中搜索镜像
- # docker pull whalesay : 从仓库中下载镜像
- # docker push myname/whalesay : 将自己做的镜像上传到仓库
国内的一些仓库:
daocloud
时速云
aliyun
实战:
docker search whalesay
下载镜像
docker pull docker/whalesay
查看镜像:
运行镜像
docker run docker/whalesay cowsay dockerisfun
docker tag docker/whalesay godyrg/whalesay : 产生一个新的 tag 的镜像
上传镜像:
进行登录
docker login
登录成功后 , 上传镜像
docker push godyrg/whalesay
进入 https://hub.docker.com/ , 可以看到上传的镜像
docker-compose(多容器)
Mac/Windows : 自带
Linux: 需要安装:
curl -L "https://get.daocloud.io/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose : 给文件夹赋予权限
输入
docker-compose --version
如果显示版本号, 安装成功
实战:
创建 ghost,nginx,data 文件夹
在 ghost 文件夹中创建 Dockerfile
编辑 Dockerfile 文件
- FROM ghost
- COPY ./config.JS /var/lib/ghost/config.JS
- EXPOSE 2368
- CMD ["npm","start","--production"]
接着
- var path = require('path'),
- config;
- config={
- prodution: {
- url: 'http://mytestblog.com',
- mail: {
- },
- database: {
- client: 'MySQL,
- connection: {
- host : 'db',
- user : 'ghost',
- password : 'ghost',
- database : 'ghost',
- charset : 'utf8'
- },
- debug:false
- },
- path:{
- contentPath:path.join(process.env.GHOST_CONTENT,'/')
- },
- server: {
- host: '0.0.0.0',
- port: '2368'
- }
- }
- } ;
- moudle.exports = config;
保存退出
进入刚刚创建的 nginx 目录
创建 Dockerfile 文件, 编辑
- FROM nginx
- COPY nginx.conf /etc/nginx/nginx.conf
- EXPOSE 80
保存退出
创建 nginx.conf 配置文件
- worker processes 4;
- events {
- worker_connections 1024
- }
- http {
- server{
- listen 80;
- loction / {
- proxy_pass http://ghost-App:2368;
- }
- }
- }
最后准备 docker-compose.YAML 文件
- version: '2'
- networks:
- ghost:
- services:
- ghost-App:
- build: ghost
- networks:
- - ghost
- depends_on:
- - db
- ports:
- - "2368:2368"
- nginx:
- build: nginx
- networks:
- - ghost
- depends_on:
- - ghost-App
- ports:
- - "80:80"
- db:
- image: "mysql :5.7.15"
- networks:
- - ghost
- enviroment:
- MYSQL_ROOT_PASSWORD: mysqlroot
- MYSQL_USER: ghost
- MSYQL_PASSWORD: ghost
- volumes:
- - $PWD/data:/var/lib/MySQL
- ports:
- - "3306:3306"
docker-compose up -d 进行挂起 (无镜像, 系统帮忙做一个镜像)
docker-compose stop 停止 (出现错误的不停止)
docker-compose rm 停止 (错误的也停止)
docker-compose build (自己构建一个镜像)
来源: http://www.bubuko.com/infodetail-3302274.html