centos Install Docker

时间:2023-03-08 23:27:08
centos Install Docker
  1. 安装必备软件
    $ yum -y install iptables  iptables-services net-tools vim wget
    $ wget -P ~ https://github.com/yeasy/docker_practice/raw/master/_local/.bashrc_docker;
    $ echo "[ -f ~/.bashrc_docker ] && . ~/.bashrc_docker" >> ~/.bashrc; source ~/.bashrc

    centos Install Docker
    运行如上命令可使用docker-enter命令进入容器
    下载的脚本代码如下:

    # Some useful commands to use docker.
    # Author: yeasy@github
    # Created:2014-09-25 alias docker-pid="sudo docker inspect --format '{{.State.Pid}}'"
    alias docker-ip="sudo docker inspect --format '{{ .NetworkSettings.IPAddress }}'" #the implementation refs from https://github.com/jpetazzo/nsenter/blob/master/docker-enter
    function docker-enter() {
    #if [ -e $(dirname "$0")/nsenter ]; then
    #Change for centos bash running
    if [ -e $(dirname '$0')/nsenter ]; then
    # with boot2docker, nsenter is not in the PATH but it is in the same folder
    NSENTER=$(dirname "$0")/nsenter
    else
    # if nsenter has already been installed with path notified, here will be clarified
    NSENTER=$(which nsenter)
    #NSENTER=nsenter
    fi
    [ -z "$NSENTER" ] && echo "WARN Cannot find nsenter" && return if [ -z "$1" ]; then
    echo "Usage: `basename "$0"` CONTAINER [COMMAND [ARG]...]"
    echo ""
    echo "Enters the Docker CONTAINER and executes the specified COMMAND."
    echo "If COMMAND is not specified, runs an interactive shell in CONTAINER."
    else
    PID=$(sudo docker inspect --format "{{.State.Pid}}" "$1")
    if [ -z "$PID" ]; then
    echo "WARN Cannot find the given container"
    return
    fi
    shift OPTS="--target $PID --mount --uts --ipc --net --pid" if [ -z "$1" ]; then
    # No command given.
    # Use su to clear all host environment variables except for TERM,
    # initialize the environment variables HOME, SHELL, USER, LOGNAME, PATH,
    # and start a login shell.
    #sudo $NSENTER "$OPTS" su - root
    sudo $NSENTER --target $PID --mount --uts --ipc --net --pid su - root
    else
    # Use env to clear all host environment variables.
    sudo $NSENTER --target $PID --mount --uts --ipc --net --pid env -i $@
    fi
    fi
    }

    docker-enter

    安装后可以使用如下命令
    docker-pid <container> 获取容器的pid
    docker-ip <container> 获取容器的ip
    docker-enter <container>  进入容器
    docker exec -it 92f5506946e7 /bin/bash
    docker-enter <container> ls 在容器中执行命令
    备用地址:wget -p ~ https://github.com/mycheryhr/mycheryhr.github.io/blob/master/.bashrc_docker
    centos Install Docker

  2. 安装Docker
    yum -y install docker
  3. 下载centos镜像
    docker pull centos
  4. 查看centos 镜像
    docker images centos
  5. 运行一个Docker容器
    docker run -itd centos /bin/bash
    -t 选项让Docker分配一个伪终端(pseudo-tty)并绑定到容器的标准输入上
    -i 则让容器的标准输入保持打开
    -d 让 Docker 容器在后台以守护态(Daemonized)形式运行
    -p 创建端口映射,指定宿主机端口和容器端口,添加映射关系
    -v 挂载一个本地主机目录到容器中 (一次可挂载多个)
  6. 搜索Ubuntu镜像
    docker search Ubuntu
  7. 显示正在运行的容器(需要先创建容器)
    docker ps
    docker ps –a  显示所有的容器(包括关闭或已经退出的容器)
  8. 停止后台运行的容器
    docker stop "容器ID"
  9. 删除容器
    docker rm "容器ID"
  10. 强制删除一个镜像
    docker rmi -f "镜像ID"
  11. 导出和导入容器
    将容器快照导出到本地文件:
    centos Install Docker
    将容器快照导入到镜像:
    cat centos.tar | docker import - Test/centos:v1.1
    备注:Test/centos 为Repository仓库  centos:v1.1为Tag
    也可以指定URL导入
    docker import http://example.com/exampleimage.tgz example/imagerepo

  12. Docker升级
    yum remove docker \
    docker-client \
    docker-client-latest \
    docker-common \
    docker-latest \
    docker-latest-logrotate \
    docker-logrotate \
    docker-selinux \
    docker-engine-selinux \
    docker-engine yum remove docker-ce yum install -y yum-utils \
    device-mapper-persistent-data \
    lvm2 yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    yum makecache fast
    yum install docker-ce systemctl start docker