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条指令合并在一起    

 

在就没啥 要说的

有啥要说的我会补充

 

转载于:https://www.cnblogs.com/935415150wang/p/8628822.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值