docker实践

本文介绍了Docker的一些基本操作,包括使用`dockerrun`进行端口映射、容器与宿主机的文件复制,以及不同运行选项的设置。此外,还详细阐述了如何通过编写dockerfile创建一个Android编译环境的镜像,并提供了构建镜像的步骤。

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

一、常用命令

1.端口号映射

#docker run -itd -p 宿主机ip:宿主机端口:容器端口 --name 容器名 镜像名 /bin/bash
docker run -itd -p 8080:8080 --name dev-ubuntu ubuntu /bin/bash

2.Docker 容器与宿主服务器文件复制

#docker容器 -> 宿主服务器:docker cp 容器名/容器ID: 要拷贝的文件在容器里面的路径 要拷贝到宿主机的相应路径
docker cp 6c3380503df6:/home/libyuv/libyuv/out/libyuv.so /Users/zhoumohan/Desktop
#宿主服务器 -> Docker容器:docker cp 要拷贝的文件路径 容器名:要拷贝到容器里面对应的路径
docker cp /Users/zhoumohan/Desktop/libyuv.so  6c3380503df6:/home/libyuv/libyuv/out

3.docker run 选项设置

//在 docker run 的时候使用参数 --net=host 指定,启动的容器如果指定了使用 host 模式,
//那么新创建的容器不会创建自己的虚拟网卡,而是直接使用宿主机的网卡和 ip 地址,
//因此在容器里面查看到的 ip 信息就是宿主机的信息,访问容器的时候直接使用宿主机 ip+容器端口即可,
//不过容器的其他资源。
//如文件系统、系统进程等还是和宿主机保持隔离,此模式的网络性能最高,但是各容器之间端口不能相同

docker run --net=host


//运行完即清理调容器及容器内数据
docker run --rm


//主机与镜像进行文件映射
docker run -v  主机文件路径:容器内文件路径


//使用该参数,container内的root拥有真正的root权限。否则,container内的root只是外部的一个普通用//户权限。privileged启动的容器,可以看到很多host上的设备,并且可以执行mount。甚至允许你在docker//容器中启动docker容器。
docker run --privileged

4.docker 内存占用情况查看

docker system df -v

5.docker 清理cache

docker builder prune

 二、创建镜像

1.创建一个android编译环境的镜像

创建一个dockerfile文件(普通文本文件就行)

FROM ubuntu:22.04
RUN apt-get update \
    && apt-get upgrade \
    && apt-get install -y zip unzip dos2unix wget sudo \
    && mkdir -p /home/hanvon/android/sdk \
    && mkdir -p /home/hanvon/androidProject

RUN apt-get install -y openjdk-11-jdk \
    && cd /home/hanvon/android/sdk \
    && wget https://dl.google.com/android/repository/commandlinetools-linux-7583922_latest.zip \
    && mkdir -p /home/hanvon/android/sdk/cmdline-tools/latest/ \
    && unzip commandlinetools-linux-7583922_latest.zip -d /home/hanvon/android/sdk/cmdline-tools/latest/ \
    && mv /home/hanvon/android/sdk/cmdline-tools/latest/cmdline-tools/* /home/hanvon/android/sdk/cmdline-tools/latest/

RUN cd /home/hanvon/android/sdk/cmdline-tools/latest/bin \
    && yes | ./sdkmanager --licenses \
    && bash ./sdkmanager "platforms;android-33" \
    && bash ./sdkmanager "build-tools;30.0.3" \
    && bash ./sdkmanager "ndk;22.1.7171670"

2.构建镜像

#进到有dockerfile的目录
cd dockfileDir

#ubuntu-android-env:v1.0 是自定义的镜像名和版本号
docker build -t ubuntu-android-env:v1.0 .

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值