• docker常用操作


    一、安装docker

    1.CentOS7安装Docker

    使用yum安装

    卸载老版本的Docker:

    sudo yum remove docker docker-common docker-selinux docker-engine

    安装仓库

    1.安装所需的包


    sudo yum install -y yum-utils device-mapper-persistent-data lvm2

    2.安装stable仓库。必须安装stable仓库,即使你安装edge或test仓库中Docker构建版本


    sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

    3、(可选)启用edge及test仓库。默认是禁用的


    sudo yum-config-manager --enable docker-ce-edge
    sudo yum-config-manager --enable docker-ce-test

    再次禁用:


    sudo yum-config-manager --disable docker-ce-edge

    安装Docker CE

    1.更新yum的包索引


    sudo yum makecache fast

    2.安装最新版本的Docker CE


    sudo yum install docker-ce

    3.列出当前可用的Docker版本


    yum list docker-ce.x86_64 --showduplicates|sort -r

    可以选择想安装的docker CE版本


    sudo yum install docker-ce-<VERSION>

    4.启动Docker


    sudo systemctl start docker

    5.验证安装是否正确


    sudo docker run hello-world

    卸载

    1.删除Docker软件包


    sudo yum remove docker-ce

    2.删除Docker存储的文件


    sudo rm -rf /var/lib/docker

    设置开机启动docker


    systemctl enable docker

    二、docker常用命令

    1.docker镜像常用命令

    1.搜索镜像


    docker search [OPTIONS] TERM

    展示列表:

    NAME:镜像仓库名称

    DESCRIPTION:镜像仓库描述

    STARS:镜像仓库收藏数

    OFFICIAL:表示是否为官方仓库

    AUTOMATED:表示是否是自动构建的镜像仓库

    2.下载镜像


    docker pull [OPTIONS] NAME[:TAG][@DIGEST]

    示例:


    docker pull reg.itmuch.com/java:7

    3.列出镜像


    docker images [OPTIONS] [REPOSITORY[:TAG]]

    示例:


    docker images java

    展示列表:

    REPOSITORY:镜像所属仓库名称

    TAG:镜像标签,默认是latest

    IMAGE ID:镜像ID,表示镜像唯一标识

    CREATED:镜像创建时间

    SIZE:镜像大小

    4.删除本地镜像

    docker rmi [OPTIONS] IMAGE[IMAGE ...]

    示例:删除所有镜像


    docker rmi -f $(docker images)

    5.保存镜像


    docker save [OPTIONS] IMAGE [IMAGE...]

    示例:


    #将busybox保存为busybox.tar
    docker save busybox > busybox.tar
    docker save --output busybox.tar busybox

    6.加载镜像


    docker load [OPTIONs]

    示例:


    #从busybox.tar文件中加载镜像
    docker load < busybox.tar
    docker load --input busybox.tar

    7.构建镜像


    docker build [OPTIONS] PATH | URL|-

    示例:


    docker build -t itmuch/some-repo:some-tag

    2.docker容器常用命令

    1.新建并启动容器


    docker run

    2.列出容器


    docker ps [OPTIONS]

    展示列表:

    CONTAINER_ID:表示容器ID

    IMAGE:表示镜像名称

    COMMAND:表示启动容器时运行的命令

    CREATED:表示容器的创建时间

    STATUS:表示容器运行的状态。Up表示运行中,Exited表示已停止

    PORTS:表示容器对外的端口号

    NAMES:表示容器名称

    3.停止容器


    docker stop [OPTIONS] CONTAINER [CONTAINER...]

    4.强制停止容器


    docker kill [OPTIONS] CONTAINER [CONTAINER...]

    5.启动已停止的容器


    docker start [OPTIONS] CONTAINER [CONTAINER...]

    6.重启容器


    docker restart [OPTIONS] CONTAINER[CONTAINER...]

    7.进入容器


    ##所有窗口会同步显示
    docker attach CONTAINER
    ##使用nsenter进入容器
    docker inspect --format "{{State.Pid}}" $CONTAINDER_ID
    nsenter --target "$PID" --mount --uts --ipc --net --pid
    #使用docker exec进入
    docker exec -it 容器id /bin/bash

    8.删除容器


    docker rm [OPTIONS] CONTAINER [CONTAINER..]

    示例:


    docker rm -f $(docker ps -a -q)

    9.导出容器


    docker export [OPTIONS] CONTAINER

    示例:


    #将red_panda容器导出成latest.tar文件
    docker export red_panda > latest.tar
    docker export --output="latest.tar" red_panda

    10.导入容器


    docker import [OPTIONS] file|URL|-[REPOSITORY[:TAG]]
    #从nginx2.tar文件导入,并创建nginx镜像
    docker import nginx2.tar nginx

    三、docker安装jenkins

    1、使用docker命令下载Jenkins 获取镜像


    sudo docker pull jenkins

    2、创建用于存放jenkins的文件夹


    mkdir /home/var/jenkins

    3、cd进入/home/var/目录,设置jenkins文件夹的归属用户UID为1000


    sudo chown -R 1000:1000 jenkins/

    4、启动Jenkins


    sudo docker run -itd -p 8080:8080 -p 50000:50000 --name jenkins --privileged=true  -v /home/var/jenkins:/var jenkins

    (Jenkins重启命令)


    docker restart jenkins

    出现问题

    1.错误:

    touch: cannot touch ‘/var/jenkins_home/copy_reference_file.log’: Permission denied Can not write to /var/jenkins_home/copy_reference_file.log. Wrong volume permissions?

    问题:在从 https://c.163.com/hub#/m/repository/?repoId=3093 下载镜像 docker pull hub.c.163.com/library/jenkins:latest后,启动容器时,报错:

    [admin@3-29 ~]$ sudo docker run --name myjenkins-slave1 -p 8080:8080 -v /var/lib/jenkins:/var/jenkins_home hub.c.163.com/library/jenkinstouch: cannot touch ‘/var/jenkins_home/copy_reference_file.log’: Permission deniedCan not write to /var/jenkins_home/copy_reference_file.log. Wrong volume permissions?

    解决办法:修改路径

    [admin@3-29 ~]$ sudo docker run --name myjenkins-slave1 -p 8080:8080 -v /var/lib/jenkins:/var 4bb0a1bd398dRunning from: /usr/share/jenkins/jenkins.warwebroot: EnvVars.masterEnvVars.get("JENKINS_HOME")Jul 14, 2017 9:24:49 AM Main deleteWinstoneTempContentsWARNING: Failed to delete the temporary Winstone file /tmp/winstone/jenkins.warJul 14, 2017 9:24:49 AM org.eclipse.jetty.util.log.JavaUtilLog infoINFO: Logging initialized @382ms

  • 相关阅读:
    mapreduce 函数入门 三
    *hiho 1475
    hiho 1571
    hiho 1620
    hiho 1613
    centos下nginx配置
    hiho 1617
    hiho 172周
    uva 11584
    hiho1605
  • 原文地址:https://www.cnblogs.com/mufeng07/p/12626065.html
Copyright © 2020-2023  润新知