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

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

 

在就没啥 要说的

有啥要说的我会补充

 

以上是关于docker简单使用和遇到的坑的主要内容,如果未能解决你的问题,请参考以下文章

我在部署docker的时候遇到的坑

docker compose简介+使用+遇到的坑

如何用ffmpeg截取视频片段&截取时间不准确的坑

Docker安装(阿里云服务器)和在虚拟机安装遇到的坑

Docker实践中遇到的坑

kubernetes从私有仓库下载遇到的坑