docker操作笔记

一、镜像操作
1、删除镜像(先删除容器):docker rmi mysql:latest / docker rmi 镜像id

2、创建镜像:

基于已有镜像创建 :docker  commit -m '提交信息'  -a  '作者信息'  容器id  别名

基于本地模板导入: cat 镜像.tar.gz | docker import  -  别名:版本

3、存出和载入镜像:

存出:docker save -o 导出目录和文件名.tar  源镜像id

载入:docker load  <  导入目录和文件名.tar

4、查看本地所有镜像:docker images

5、上传镜像:

创建镜像标签:docker tag 镜像id   用户名/别名:版本

上传镜像: docker push 用户名/别名:版本

二、容器操作
1、查看所有正在运行的容器或者查看所有容器: docker ps /docker ps -a / docker ps -a -q(停)

2、创建并运行容器:docker run -it 镜像id /bin/bash

docker run 常用属性

    -a stdin: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项;

    -d: 后台运行容器,并返回容器ID;

    -i: 以交互模式运行容器,通常与 -t 同时使用;

    -P: 随机端口映射,容器内部端口随机映射到主机的高端口

    -p: 指定端口映射,格式为:主机(宿主)端口:容器端口

    -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;

    --name="nginx-lb": 为容器指定一个名称;

    --dns 8.8.8.8: 指定容器使用的DNS服务器,默认和宿主一致;

    --dns-search example.com: 指定容器DNS搜索域名,默认和宿主一致;

    -h "mars": 指定容器的hostname;

    -e username="ritchie": 设置环境变量;

    --env-file=[]: 从指定文件读入环境变量;

    --cpuset="0-2" or --cpuset="0,1,2": 绑定容器到指定CPU运行;

    -m :设置容器使用内存最大值;

    --net="bridge": 指定容器的网络连接类型,支持 bridge/host/none/container: 

    --link=[]: 添加链接到另一个容器;

    --expose=[]: 开放一个端口或一组端口;

    --volume , -v: 绑定一个卷

3、终止/启动/重启容器:

终止:docker stop 容器id docker kill 容器id   

启动:docker start 容器id 

重启:docker start 容器id

4、进入容器:docker exec -it 容器id /bin/bash

5、删除容器:docker rm -f 容器id / docker rm -f name

6、导入导出容器:

导出:docker export 镜像id >文件路径.tar

导入:cat 文件路径.tar  | docker  import  -  用户/别名:版本

三、仓库
1、登录 docker login -u 用户名 -p 密码

2、搜索镜像:docker search mysql

3、下载镜像:docker pull mysql:latest

4.创建私有仓库:docker run -d -p 5000:5000 -v /docker/registry:/var/lib/registry registry

echo '{ "insecure-registries":["ip:5000"] }' > /etc/docker/daemon.json

docker push  ip:port/别名

docker pull  ip:port/别名

四、Dockerfile的使用
1.创建镜像

#第一行必须指定基础镜像

FROM centos:7

#维护者信息

MAINTAINER https://blog.51cto.com/andyxu

#镜像的操作命令

#1.ENV 指定一个环境变量 设置时区

ENV TIME_ZOME Asia/Shanghai

#2.ADD <SRC> <DEST> 添加本地文件到容器 压缩文件自动解压 src可以为一个url

ADD $NV.tar.gz /tmp

#3.COPY 拷贝本地文件到指定目录 目的文件不存在时自动创建

COPY nginx.conf /data/nginx/conf/

#4.RUN 运行命令

RUN yum -y install gcc gcc-c++ make openssl-devel pcre-devel \

    && mkdir -p /data \

    && cd /tmp/$NV \

    && ./configure --prefix=/data/nginx \

    && make -j 2 \

    && make install \

    && echo "${TIME_ZOME}" > /etc/timezone \

    && ln -sf /usr/share/zoneinfo/${TIME_ZOME} /etc/localtime \

    && rm -rf /tmp/nginx* \

    && yum clean all \

    && yum -y remove gcc gcc-c++ make

#5.ENTPYPOINT ["ZZZ"]	配置容器启动后执行的命令

#6.VOLUME ["/data"] 创建挂载点

#7.USER 指定运行容器的用户名字

#8.WORKDIR 设置工作目录 .多个可用于切换目录

#设置端口

EXPOSE 80 22 8443

#容器启动时执行命令 使用 exec执行 推荐使用 多个cmd只执行最后一个

CMD ["./sbin/nginx","-g","daemon off;"]

2.运行镜像:docker build -t 标签 文件路径

猜你喜欢

转载自www.cnblogs.com/liushuchen/p/12737127.html