docker部署

docker部署

  1. 网络限制全部关闭
    systemctl stop firewilld.service
    systemctl disable firewilld.service
    setenforce 0
    sed -i ‘/^SELINUX=/c SELINUX=disabled’ /etc/selinux/config
  2. 安装所需的软件包 yum-utils提供了yum-config-manager 效用,并device-mapper-persistent-data和lvm2由需要devicemapper存储驱动程序。
    yum install -y yum-utils device-mapper-persistent-data lvm2
  3. 添加镜像源
    yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
  4. 将软件包添加至本地缓存
    yum makecache fast
  5. 安装docker-ce
    yum -y install docker-ce
  6. 启动docker
    systemctl start docker
    systemctl enable docker
    **注意:Job for docker.service failed because the control process exited with error code. See “systemctl status docker.service” and “journalctl -xe” for details.
    do
    docker部署_第1张图片
    Error starting daemon: SELinux is not supported with the overlay2 graph …alse)
    此linux的内核中的SELinux不支持 overlay2 graph driver ,解决方法有两个,要么启动一个新内核,要么就在docker里禁用selinux,–selinux-enabled=false
    解决办法:
    yum update xfsprogs
    vi /etc/sysconfig/docker
    在–selinux-enabled后面添加=false即可!
    ###docker-ce私有仓库搭建###
  7. pull registry镜像
    docker pull registry
  8. docker iamges命令查看本地镜像;
  9. 然后使用
    mkdir -pv /docker-Hub/registry
    mkdir -pv /docker-Hub/data
    docker run -d -ti --restart always --name docker-Hub -p 5000:5000 -v /docker-Hub/registry:/var/lib/registry -v /docker-HA/data:/tmp/registry registry
  10. 查看容器运行/
    docker ps -a
  11. 由于仓库与客户端的https问题,需要修改/usr/lib/systemd/system/docker.service文件,添加
    ExecStart=/usr/bin/dockerd --registry-mirror= http://4f73427d.m.daocloud.io --insecure-registry 192.168.211.153:5000
    (systemctl daemon-reload)
    systemctl restart docker

###docker-ce私有仓库客户端###
12. 配置docker信任私有仓库地址(http)
需要修改/usr/lib/systemd/system/docker.service文件,添加
ExecStart=/usr/bin/dockerd --registry-mirror= http://4f73427d.m.daocloud.io --insecure-registry 192.168.211.153:5000
(systemctl daemon-reload)
systemctl restart docker

  1. 注意查看方法
    镜像:
    #curl -XGET http://registry_ip:5000/v2/_catalog
    标签:
    #curl -XGET http://registry_ip:5000/v2/image_name/tags/list

Buildfile(Dockerfile)构建和语法###

  1. 创建Dockerfile脚本
    vi Dockerfile
    例如: FROM CentOS:7.2 #选择基础镜像
    MAINTAINER name #镜像创建者和邮箱
    LABEL version=“1.0” #给镜像添加信息
    RUN apt-get install -y software-properties-common #安装软件
    CMD echo hello word #设置容器启动时执行的命令
    #该指令只能在文件中存在一次,如果有多个,则只执行最后一条。
    ENTRYPOINT ls –l #设置容器启动时执行的命令
    #可以多次设置,但是只有最后一个有效。
    USER root #容器启动用户
    EXPOSE 80 #指定容器映射宿主机的端口
    ENV JAVA_HOME /usr/lib/jvm/java-8-openjdk-amd64 #设置变量
    ADD nginx.conf /etc/nginx/nginx.conf #从宿主机当前文件夹复制到容器里
    VOLUME ["/tmp/data"] #指定挂载点
    WORKDIR /path/to/workdir #切换目录(cd)
    ONBUILD #在子镜像中执行
  2. 执行构建命令:
    docker build -t second:v1.0 .
    注意最后有个点,代表使用当前路径的 Dockerfile 进行构建 ,
    -t second : v1.0 给新构建的镜像取名为 second, 并设定版本为 v1.0 。
    docker build: 用 Dockerfile 构建镜像的命令关键词。
    [OPTIONS] : 命令选项,常用的指令包括 -t 指定镜像的名字, -f 显示指定构建镜像的 Dockerfile 文件(Dockerfile 可不在当前路径下),如果不使用 -f,则默认将上下文路径下的名为 Dockerfile 的文件认为是构建镜像的 “Dockerfile” 。
    上下文路径|URL: 指定构建镜像的上下文的路径,构建镜像的过程中,可以且只可以引用上下文中的任何文件 。
  3. Supervisor: supervisord.conf
    [supervisord]
    nodaemon=true

[program:sshd]
command=/usr/sbin/sshd -D

[program:apache2]
command=/bin/bash -c “source /etc/apache2/envvars && exec /usr/sbin/apache2 -DFOREGROUND”

Docker 基础命令基础命令

  1. 从 Docker Hub 搜索镜像
    docker search
    用法: docker search TERM
    参数:
    –automated=false 仅显示自动创建的镜像
    –no-trunc=false 输出信息不截断显示
    -s, --stars=0 指定仅显示评价为指定星级以上的镜像

  2. docker info //查看当前信息

  3. docker pull //下载镜像
    docker push //上传镜像
    docker images //显示当前系统镜像
    docker rmi //删除一个或多个镜像, -f 强制删除
    docker save |load //存储镜像|载入镜像

  4. 导入本地容器快照
    cat 本地容器快照名|docker import - 自定义容器名:自定义标记名

  5. 运行一个容器
    docker run
    -i 交互式
    -t 获得一个终端-
    -d 守护进程

  6. docker logs 464 //查看容器内标准输出的内容
    docker ps //查看容器,-a 查看所有容器,-q 只查看容器ID
    docker rm //删除一个容器
    docker create //创建一个容器,但不运行
    docker start|stop|restart|kill //运行已停止的容器|停止一个正在运行的容器|重启一个容器|杀死一个正在运行的容器
    docker export //导出容器快照

  7. 退出容器
    exit 或 ctrl + d //退出并停止容器
    先按 ctrl + p再按 ctrl + q //退出伪终端,容器后台运行
    docker attach 8d //输入容器ID,若没有重名的,输入第一个字母即可

  8. 将容器变成镜像
    docker commit 容器名字 镜像名

    docker几个常用的命令

  9. 令查看容器
    docker ps

  10. 检查Docker的安装是否正确,如果没有找到此命令,则表示Docker没有正确安装
    docker info

  11. 拉取一个预建的镜像
    docker pull busybox

  12. 以后台进程的方式运行hello docker
    sample_job命令会隔一秒打印一次Docker,使用Docker logs可以查看输出。如果没有起名字,那这个job会被分配一个id,以后使用命令例如Docker logs查看日志会变得比较麻烦
    sample_job=$(docker run -d busybox /bin/sh -c “while true; do echo Docker; sleep 1; done”)

  13. 所有Docker命令
    docker help

  14. 运行Docker logs命令来查看job的当前状态:
    docker logs $sample_job

  15. 停止名为sample_job的容器
    docker stop $sample_job

  16. 重新启动该容器
    docker restart $sample_job

  17. 如果要完全移除容器,需要将该容器停止,然后才能移除
    docker stop $sample_job docker rm $sample_job

  18. 将容器的状态保存为镜像
    docker commit $sample_job job1

  19. 令查看所有镜像的列表
    docker images

你可能感兴趣的:(Linux)