cinder

centos7.5

安装docker依赖
yum install -y yum-utils \
device-mapper-persistent-data \
lvm2

添加docker软件库
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

查看现支持的docker版本
yum list docker-ce --showduplicates

默认安装最新版
yum install docker-ce

用来使用国内镜像
阿里云docker仓库 https://dev.aliyun.com/search.html

启动docker服务
systemctl restart docker


docker images #拉取镜像
docker search centos #搜索镜像
docker rmi ubuntu #删除镜像

docker run -it ubuntu /bin/bash #创建容器
-i:开启stdin标准输入
-t:分配一个伪tty终端

docker start dd003a4033bd #启动容器
docker run --name daemon_ub -d ubuntu /bin/bash -c "while true; do echo 1; sleep 1; done"#创建守护容器
-d:将容器放入后台运行
不指定标签会默认使用latest标签的镜像

docker attach dd003a4033bd #附着到容器
docker ps -a #查看容器
-n:最后
docker rm --force c851339cbb9 #删除容器 -f

docker logs daemon_ub -ft #查看守护式容器日志
-f:跟踪
-t:时间戳

docker top 4c #查看容器内的进程
docker stats 4c 88 #查看容器统计信息

docker exec -d daemon_ub touch /ttttttttt #运行后台任务
docker exec -ti daemon_ub /bin/bash #运行交互命令

docker stop 4c #停止容器
docker inspect 4c94 #检查容器信息

docker rm -f `docker ps -a -q` #删除所有容器

docker tag 80b0 cinder10086/static_web:v1 #更改容器名


什么是docker镜像
docker镜像是由文件系统叠加而成,最底端是一个引导文件系统,bootfs
docker用户不会和引导文件系统有交互,实际上当一个容器启动后,它会被移动到内存中,引导文件系统会被卸载
第二层是rootfs,位于bootfs之上,rootfs可以是多种操作系统,永远只能是只读状态
docker利用联合加载(union mount)技术又会在rootfs文件系统层上加载更多文件系统

docker将这样的文件系统称为镜像,一个镜像可以放到另一个镜像的顶部,位于下面的镜像称为父镜像,可以以此类推,直到镜像栈的最底部,最底部的镜像为基础镜像,当一个镜像启动容器时,docker会在该镜像的最顶层加载一个读写文件系统
当第一次启动一个容器时,初始的读写层是空的。当文件系统发生变化时,这些变化都会应用到这一层上(写时复制 copy on write)
每个只读镜像层都是只读的,并且以后永远不会变化。当创建一个新容器时,docker会构建一个镜像栈,并在镜像栈的最顶端添加一个读写层。这个读写层加上其下面的镜像层以及一些配置数据,就构成了一个容器

/var/lib/docker/

registry
TAG 为了区分同一个仓库的不同镜像docker提供了标签的功能

docker pull ubuntu:12.04 #拉取镜像(冒号后为标签
docker login #登陆docker hub
docker logout #登出
docker commit b2bc3e74a20e ub/apache #创建定制容器
docker commit -m "new docker" -a "oldwang" b2bc3e74a20e ubuntu/apache2:web
-m:描述信息
-a:作者信息

#Dockerfile
mkdir /static_web
vim Dockerfile
#version 0.1 #注释信息
FROM ubuntu:14.04 #基础镜像
MAINTAINER james Turnbull "netlodwang@gmail.com" #作者信息
RUN apt-get update && apt-get install -y nginx
RUN echo "I am in your container" >>/usr/share/nginx/html/index.html
EXPOSE 80


docker build -t="ubuntu/static_web:web" /root/static_web/ #构建镜像
-t:指定标签

docker run -d -p 80 --name static_web ubuntu/static_web:web nginx -g "daemon off"
-d:后台运行
-p:映射端口(32768-61000)
nginx -g "daemon off;"
docker run -d -p 8080:80 --name web ubuntu/static_web:web nginx -g "daemon off;"
docker run -d -p 192.168.150.12:9999:80 --name web 60389eef7f3c nginx -g "daemon off;"

docker port 5ec59 #查看映射


docker运行一个静态网站

mkdir web && cd web
mkdir www && mkdir conf && cd conf
vim nginx.conf
user www-data;
worker_processes 4;
pid /run/nginx.pid;
daemon off;

events { }

http {
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
include /etc/nginx/mime.types;
default_type application/octet-stream;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
gzip on;
gzip_disable "msie6";

server {
listen 0.0.0.0:80;
server_name _;

root /var/www/html/website;
index index.html index.htm;

access_log /var/log/nginx/default_access.log;
error_log /var/log/nginx/default_error.log;
}

include /etc/nginx/conf.d/*.conf;

cd ..
vim dockerfile
FROM ubuntu:14.04
MAINTAINER james turnbull "netoldwang@gmail.com"
ENV REFRESHED_AT 2014-06-01
RUN apt-get -yqq update && apt-get -yqq install nginx
RUN mkdir -p /var/www/html/website
ADD conf/nginx.conf /etc/nginx/nginx.conf
EXPOSE 80

docker build -t static_web:v1 /root/static_web/
docker run -d -p 80:80 --name web -v /root/web/www:/var/www/html/website ub/web:v1 nginx
-v:将宿主机的目录作为卷,挂载到容器
-v /root/web/www:/var/www/html/website:ro 控制卷的写状态

 

docker官方文档 https://docs.docker.com/

分类:

docker

技术点:

相关文章: