容器内安装curl_Docker安装和使用

本文详细介绍了Docker的基础概念,包括镜像、容器、客户端、仓库和主机等,并提供了Ubuntu上安装Docker的步骤。接着讲解了Docker常用命令,如登录、推送镜像、查看和管理容器等。此外,还介绍了Dockerfile的使用和Docker Compose的安装及基本操作。最后,给出了一个实例,展示了如何创建一个与宿主机共享JDK的Ubuntu镜像并运行容器。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

5c373f1b1a15e34cd42f435c68b86616.png

一.简介

docker镜像:用来创建docker容器的核心模板

docker容器:容器独立运行的一个或一组命令

docker客户端:客户端通过命令行或者工具使用docker

docker仓库:docker从仓库用来保存镜像,代码控制中的代码仓库

docker主机:一个物理或者虚拟机器用于执行docker的守护进程和容器

二.安装Docker

以前ubuntu安装docker只需要 sudo apt-get install -y http://docker.io

那是旧版本了,需要卸载的需要执行命令

sudo apt-get remove docker docker-engine http://docker.io containerd runc
然后官方的安装方式:

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
也可以使用国内daocloud一键安装:

curl -sSL https://get.daocloud.io/docker | sh

菜鸟安装教程:

https://www.runoob.com/docker/ubuntu-docker-install.html

启动docker systemctl start docker

启动docker systemctl enable docker

查看docker版本 docker version/-v

停止docker systemctl stop docker

三.docker命令和应用

1.基本使用

登录自己的帐号: docker login

退出帐号: docker logout

推送自己的镜像: docker push xxxx<用户名>/xxx<镜像名>

查看已经下载的镜像: docker images

搜索镜像: docker search xxxx<镜像名>

拉取镜像: docker pull xxxx<镜像名>

为镜像运行容器: docker run -t -i ubuntu:15.10 /bin/bash-i: 交互式操作-t: 终端 -d: 后台运行 -p: 5000:5000 : 端口绑定 -v: 挂载目录ubuntu:15.10: 镜像/bin/bash: 放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash
删除镜像: docker rmi xxxx<镜像名>
容器生成镜像: docker commit -m="update content" -a="zhenghuachen"<容器ID> xxx/xxxx<新的镜像名>:v2


查看容器: docker ps -a
启动已经停止的容器: docker start xxxx<容器ID>
停止容器: docker stop xxxx<容器ID>
重启容器: docker restart xxxx<容器ID>
后台运行容器: docker run -itd --name ubuntu-test ubuntu /bin/bash
进入容器: docker exec -it xxxx<容器ID> /bin/bash
删除容器: docker rm -f xxxx<容器ID>

清理掉所有处于终止状态的容器: docker container prune

导出容器快照: docker export xxxx<容器ID> > xxxx.tar

导入容器快照: cat docker/xxxx.tar | docker import - xxxxx<新的镜像名>:v1

2. docker file使用

FROM:格式为FROM image或FROM image:tag,并且Dockerfile中第一条指令必须是FROM指令,且在同一个Dockerfile中创建多个镜像时,可以使用多个FROM指令。

MAINTAINER:格式为MAINTAINER user_name user_email,指定维护者信息

RUN:格式为RUN command或 RUN ["EXECUTABLE","PARAM1","PARAM2".....],前者在shell终端中运行命令,后者使用exec执行

CMD:用于指定容器启动时执行的命令,每个Dockerfile只能有一个CMD命令,多个CMD命令只执行最后一个。若容器启动时指定了运行的命令,则会覆盖掉CMD中指定的命令

EXPOSE:格式为 EXPOSE port [port2,port3,...] 暴露端口

ENV:格式为:EVN key value 用于指定环境变量

ADD:格式:ADD src dest 该命令将复制指定本地目录中的文件到容器中

COPY:格式为:COPY src desc 复制本地主机src目录或文件到容器的desc目录,desc不存在时会自动创建

ARG: 格式为ARG name=xxxx ,在Dockerfile中定义变量name,在下方或build时使用${name}

ENTRYPOINT: 格式有两种:ENTRYPOINT ["executable","param1","param2"], ENTRYPOINT command param1,param2 会在shell中执行 用于配置容器启动后执行的命令,这些命令不能被docker run提供的参数覆盖。和CMD一样,每个Dockerfile中只能有一个ENTRYPOINT,当有多个时最后一个生效。

docker build: 通过docker build命令来创建镜像,该命令首先会上传Dockerfile文件给Docker服务器端,服务器端将逐行执行Dockerfile中定义的指令, 通过 -t 指定镜像的标签信息,例如:docker build -t chenhuadk/ubuntu . ##"."指定的是Dockerfile所在的路径,如果自己文件名不是Dockerfile,那需要用 -f 参数指定文件路径

3. docker compose使用

linux安装: sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose (版本可以更换 1.24.1)

将可执行权限应用于二进制文件: sudo chmod +x /usr/local/bin/docker-compose
创建软链:sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

测试是否安装成功: docker-compose --version

<持续更新中···>

四.实用

1. chenhuadc/ubuntu

和宿主机共用jdk的ubuntu镜像

de1fd97b255d37e8dcf5bdec6c635879.png

拉下来一个ubuntu镜像,在ubuntu的镜像基础上进行构建

找个位置创建文件夹docker_file,用来放docker file,比如: ~/data/docker/docker_file/


然后在下面创建编写Dockerfile(使用其他的名字,要使用-f指定文件名)文件: vim Dockerfile

Dockerfile

  # 镜像巴巴
  From ubuntu:latest

  # 作者邮箱
  MAINTAINER huachen xxxxxxxx@163.com

  #定义容器默认的JAVA的根目录
  ARG jdk=/usr/local/java/jdk

  # 创建jdk文件映射宿主机的目录
  RUN mkdir -p ${jdk}

  # 配置环境变量
  ENV JAVA_HOME ${jdk}
  ENV JRE_HOME ${JAVA_HOME}/jre
  ENV CLASSPATH .:${JAVA_HOME}/lib:${JRE_HOME}/lib
  ENV PATH ${PATH}:${JAVA_HOME}/bin:${JRE_HOME}/bin

然后执行构建命令,构建自己的镜像: docker build -t chenhuadk/ubuntu .

查看镜像是否构建完成: docker images

35e114bb903273913b611d38fafbfbc9.png

运行容器并挂载jdk目录: docker run -itd --name chenhuadk/ubuntu -v /usr/local/java/jdk1.8.0_231:/usr/local/java/jdk chenhuadk/ubuntu /bin/bash

查看容器: docker ps

e904644e62d043a32a9f3445ff401b45.png

进入容器执行 docker exec -it chenhuadk-ubuntu /bin/bash

查看环境: java

57f55d24dfe8f3cf6de7e447e28e7c44.png

OK 再复杂也基本就是这样的使用方式,下面上传到docker hub

登录 docker login

提交 dokker push chenhua/ubuntu

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值