• docker简单使用和遇到的坑


    安装环境: alios7.2 

    安装:

    1安装源

    # yum install epel-release –y
    # yum clean all
    # yum list
    

    2:安装docker

    # yum install docker-io –y
    # systemctl start docker
    

    3:检查docker

    # docker info
    

    4启停查看

    # systemctl start docker     #运行Docker守护进程
    # systemctl stop docker      #停止Docker守护进程
    # systemctl restart docker   #重启Docker守护进程

    使用

    1创建dockerfile

    FROM reg.docker.alibaba-inc.com/alibase/alios7u2:latest #这里是使用alios作为基础镜像
    
    #下载一个yum源
    RUN yum clean all
    RUN yum install -y python-devel mysql-devel zlib-devel opnssl-devel
    RUN rpm -ivh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
    RUN wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
    RUN yum makecache
    
    #下面部分是docker启动后会运行的命令
    CMD systemctl start nginx
    CMD systemctl start redis
    CMD rabbitmq-server start
    

    2:根据daockerfile创建daocker镜像

    docker build <path> #path代表dockerfile所在的文件夹路径
    

    3:

    基础命令 sudo docker images

    这一条是查看当前设备宿主机中有几个docker 镜像 当然这些是没有启动

    repository 代表docker的名字

    tag 代表当前版本号

    image id 代表当前宿主机内镜像的唯一id

    created 代表创建了多久了

    size 代表镜像的大小

    基础命令 sudo docker ps 

    查看当前正在运行的docker

    container id 代表运行中的唯一id

    4:

    启动命令

    需要知道docker images id

    sudo docker run -d -p 宿主机端口:docker端口 -p 宿主机端口2:docker端口2 -p 宿主机端口3:docker端口3<docker image id> /usr/sbin/init

    这里的/usr/sbin/init 是为了开启之后可以使用systemctl方法

    5:

    进入docker容器中

    docker exec -i -t <docker_name>  bash
    

     为什么要用bash呢 因为bash后 里面的是彩色的呀,因为好看呀

    6:daocker上传这个可以找一个dockerhub看看

    7:

    从主机复制到容器

    ​ sudo docker cp host_path containerID:container_path

    sudo docker cp 我是宿主机的路径   docker ps能够看到的id:我是容器中的路径

    从容器复制到主机

    ​ sudo docker cp containerID:container_path host_path

    sudo docker cp  docker ps能够看到的id:我是容器中的路径 我是宿主机的路径

    启动一个容器

    ​ sudo docker start <docker_name>

    停止一个容器

    ​ sudo docker stop <docker_name>

    删除一个容器

    sudo docker rm <docker_name>

    通过docker的docker <image id> 删除容器

    ​ sudo docker rmi -f <image id>>

    8:问题

    为什么我们在安装好docker.io启动的时候启动不起来

    首先确认是否是阿里云的ecs中安装docker

    如果是的 可以route查看是否使用了172.16.0.0网段 如果有那么删除了

    虽然不知道为啥 阿里ecs出现这个问题但是删了之后systemctl start docker之后应该就可以了

    注意事项

    dockerfile中的cmd命令通常在build的时候是检测不出来错误的

    但是当你run的时候发现docker ps 没有起来

    是不是很蒙逼, 你可以docker ps -a 来查看所有的 

    然后在docker logs containerID

    关于 docker build报错/bin/sh: 1: ./configure: not found 问题

    docker build命令根据Dockerfile文件构建镜像的过程中,除了FROM指令外,其他的每一条指令都是在一个新的容器里面运行

    今天把Dockerfile文件写成了如下的样子

    1. RUN cd /app
    2. RUN ./configure

    结果就报configure文件不存在,但是文件的的确确是存在的,原因就是运行第2条指令时在新的容器里面,第1条指令的切换目录失效了

    解决的办法就是将上面的2条指令合并在一起    

    在就没啥 要说的

    有啥要说的我会补充

  • 相关阅读:
    MySQL5.6 单列、多列索引以及IN语句的优化(翻译)
    curl
    HTML meta
    access limit
    document、location、body 属性方法
    ASP对Excel的基本操作
    IE6/IE7/FF(火狐Firefox)及其他浏览器的兼容性通用解决方法
    CSS兼容IE与Firefox要点分析
    PHP函数
    vs2005 修改新增文件时的默认编码方式(转)
  • 原文地址:https://www.cnblogs.com/935415150wang/p/8628822.html
Copyright © 2020-2023  润新知