Docker使用详解20200308

docker 常用命令

镜像地址 hub.docker.com

  • liunx 安装
sudo yum install docker
service  docker  start
chkconfig docker on 

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  • mac 安装 使用安装包安装

配置注册中心(阿里云)

进入阿里云 搜索 镜像服务 找到mac 配置镜像源方式
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

注: 镜像中的 https 协议不要因为报错修改为http

使用

  • docker pull 拉取镜像
  • docker images 查看本地镜像
  • docker rmi id 删除镜像
  • docker ps 查看现在启动的容器
  • docker ps -a 看所有容器
  • docker run ubuntu:16.04 /bin/echo "hello world "
  • docker run -i -t ubuntu:16.04 /bin/bash 通过bash 连接 -t 分配一个终端 -i 可以输入命令
  • docker stop 容器id
  • docker start 容器id
  • docker rm 删除容器
  • docker rm -f 不管容器是否是启动状态 删除
  • docker ps -q 列出正在运行的容器id
  • docker ps -a 列出所有的容器id
  • docker rm -f $docker ps -aq) 删除所有容器

Daemon 守护状态运行 (后台启动 -d)

  • docker run -d centos /bin/bash -c “while true;do echo hello world!;sleep 1;done”
  • docker logs 容器id
  • docker run -d tomcat:8.5

进入容器的两种方式

  • docker run -t -i centos /bin/bash
  • 方式1 docker attach 容器id
  • 方式2 docker exec -i -t 容器id /bin/bash
  • docker attach 容器id
  • docker exec -i -t 容器id /bin/bash
以上两只能方式 exit 退出时候  第一种 容器会退出  第二种容器不退出

  • 方式3 nsenser 解压 编译
    在这里插入图片描述

  • docker inspect 容器id

  • docker inspect -f {{.State.Pid}} 容器id 打印pid

  • nsenter --target pid --mount --uts --ipc --net --pid

  • exit 退出

  • 创建脚本 进入

#!/bin/bash
CNAME=$1
CPID=$(docker inspect --format "{{.State.Pid}}" $CNAME)
nsenter --target "$CPID" --mount --uts --ipc --net --pid

导入容器

导入容器

docker 网络配置

docker 端口映射

  • docker run -d -P nginx
    在这里插入图片描述
  • docker run -d -p 50000:80 nginx

数据卷

在这里插入图片描述

添加数据卷

  • docker run -it -v /宿主机绝对目录:/容器内目录 镜像名称
  • docker run --name d01 -it -v /HostDataVolume:/containerDataVolume centos
  • docker run -it --name d02 --volumes-from d01 centos //d02共享d01的数据卷

DockerFile

  • docker file =>(build)=> docker image =>(run)=>container
  • FROM 基础镜像
  • MAINTAINER 维护者信息
  • RUN 运行liunx命令
  • EXPOSE 暴露的端口 启动容器通过-p 设置端口
  • WORKDIR 落脚点目录
  • ENV key value 指定环境变量
  • ADD 复制宿主机指定目录到容器指定目录
  • COPY
  • VOLUME 数据卷
  • CMD 执行的命令
CMD ["executable","param1","param2"]    exec方式
CMD command param1 param2   bin/bash中执行
CMD ["param1",'param2'] 提供给ENTRYPOINT 使用

重点: 指定 每个docker file 只能有一个cmd  多个只执行最后一个
  • ENTRYPOINT 启动容器后执行的命令 切不可被docker run参数命令覆盖
  • docker run -it centos -i
  • ONBUILD RUN

自定义dockerfile

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

docker compose

curl -L https://github.com/docker/compose/releases/download/1.8.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

chmod +x /usr/local/bin/docker-compose
发布了10 篇原创文章 · 获赞 2 · 访问量 1005

猜你喜欢

转载自blog.csdn.net/wpaycn/article/details/104710584