Windows11下Docker使用记录(二)

Docker使用记录(二)

    • [1. 常用指令](#1. 常用指令)
    • [2. Dockerfile示例](#2. Dockerfile示例)
    • [3. 构建docker image](#3. 构建docker image)

Docker中container,image,dockerfile

以及docker hub的关系如图所示,详细可见上一篇帖子。

本文主要记录Dockerfile相关。

1. 常用指令

常用指令(默认大写) 功能
FROM 指定基础镜像,位于Dockerfile第一行(必须有)FROM ubuntu:16.04
MAINTAINER 指定维护者信息(可以不写)MAINTAINER "test<test@outlook.com>"
COPY 和ADD相似,复制host中内容(必须与Dockerfile同级)至image指定路径中。COPY index.html /data/web/html/
ADD 同上。此外 ,如果source是URL或压缩包,会自动下载或自动解压 ADD http://nginx.org/download/nginx-1.15.8.tar.gz /usr/local/src/
WORKDIR 设置当前工作目录,为RUN,CMD等设置工作目录
ENV 定义所需的环境变量
RUN docker build过程中运行的程序,可以是任何命令 RUN cd ./src
EXPOSE 声明容器运行的服务端口,有tcp(默认)和udp EXPOSE 90/tcp
CMD 指定容器启动后默认运行的程序,CMD /usr/sbin/sshd -D(可以不写)

2. Dockerfile示例

python 复制代码
FROM ubuntu:16.04

# install ROS kinetic
RUN apt-get update \
    && apt-get -y install curl \
    && sh -c 'echo "deb http://packages.ros.org/ros/ubuntu xenial main" > /etc/apt/sources.list.d/ros-latest.list' \
    && curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | apt-key add - \
    && apt-get update \
    && apt-get -y install ros-kinetic-desktop-full \
    && echo "source /opt/ros/kinetic/setup.bash" >> /etc/bash.bashrc \
    && /bin/bash -c '. /etc/bash.bashrc' \
    && apt-get -y install python-rosdep python-rosinstall python-rosinstall-generator python-wstool build-essential \
    && rosdep init \
    && rosdep update 
# create catkin_ws
RUN mkdir -p ~/catkin_ws/src \
    && cd ~/catkin_ws \
    # # ...
    # # do what you need to do for example git clone something into ~/catkin_ws/src
    # # ...
    && /bin/bash -c '. /opt/ros/kinetic/setup.bash; cd ~/catkin_ws; catkin_make; . ./devel/setup.bash'

3. 构建docker image

docker build
. 非常重要

bash 复制代码
docker build -t ubuntu-16.04:kinetic .

保存docker image至本地tar文件

bash 复制代码
docker save -o ubuntu-16.04:kinetic kinetic.tar

加载 tar文件到镜像

bash 复制代码
docker load -i kinetic.tar

参考文献:
1. https://www.cnblogs.com/edisonchou/p/dockerfile_inside_introduction.html
2. https://www.cnblogs.com/along21/p/10243761.html
3. http://t.csdnimg.cn/itVtL
4. http://t.csdnimg.cn/brVnu

相关推荐
KIDULT°1 小时前
Docker 从 0 入门|吃透容器生态、架构与 Dockerfile 实战
docker·容器·架构
putItInYourHand3 小时前
Docker Compose 部署 Mosquitto MQTT Broker 完整实战指南
运维·docker·容器
生活爱好者!11 小时前
哇!影视新玩法!docker部署NEOWATCH NAS
运维·docker·容器
cpolar技术支持15 小时前
Docker 容器启动失败怎么查?端口、日志、权限与网络排障完整教程
linux·docker·容器·cpolar·网络排障
一技安身17 小时前
【大模型】Win11 部署 DeepSeek+ RAGFlow0.27.2 (Ollama方案,断网可用)
docker·ai·语言模型
新时代牛马17 小时前
docker run 起不来?从dockerd、containerd 到runc 一条线讲透
运维·docker·容器
JavaPub-rodert17 小时前
Docker 安装 MySQL 完整教程:从零部署数据库,到生产环境持久化配置
数据库·mysql·docker
努力努力再努力wz19 小时前
【Docker 入门系列】:从 Namespace、CGroup 到 LXC:理解容器运行时、rootfs 与 LXC 实战
运维·docker·容器
JavaPub-rodert20 小时前
Docker 多阶段构建:为什么生产环境镜像可以小 90%
运维·docker·容器
PC2005-cloud1 天前
Qdrant 连接失败排查:localhost 解析到 __1,而 Docker 只绑了 IPv4
运维·docker·容器