docker简单使用和遇到的坑
Posted 一锅煮不下
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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
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 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
文件写成了如下的样子
RUN cd /app
RUN ./configure
结果就报configure
文件不存在,但是文件的的确确是存在的,原因就是运行第2条指令时在新的容器里面,第1条指令的切换目录失效了
解决的办法就是将上面的2条指令合并在一起
在就没啥 要说的
有啥要说的我会补充
以上是关于docker简单使用和遇到的坑的主要内容,如果未能解决你的问题,请参考以下文章