From f627ee71da554196e99a9c1e00b25d2515efca0b Mon Sep 17 00:00:00 2001 From: hehaoyang Date: Thu, 7 Sep 2023 23:07:17 +0800 Subject: [PATCH] =?UTF-8?q?Ubuntu=20Docker=20=E5=AE=89=E8=A3=85=E5=8F=8A?= =?UTF-8?q?=E4=BD=BF=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Ubuntu/Docker.md | 123 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 123 insertions(+) create mode 100644 Ubuntu/Docker.md diff --git a/Ubuntu/Docker.md b/Ubuntu/Docker.md new file mode 100644 index 0000000..2cd9c10 --- /dev/null +++ b/Ubuntu/Docker.md @@ -0,0 +1,123 @@ +# Ubuntu Docker 安装及使用 + +- [安装](#安装) +- [创建镜像](#通过dockerfile文件创建镜像) + - [通过dockerfile文件创建镜像](#通过dockerfile文件创建镜像) + - [使用官网镜像](使用官网镜像) +- [常用命令](#常用命令) + - [查看镜像列表](#查看镜像列表) + - [删除镜像](#删除镜像) + - [创建容器](#创建容器) + - [查看所有容器](#查看所有容器) + - [删除容器](#删除容器) + - [启动容器](#启动容器) + - [连接容器](#连接容器) + +## 安装 + +##### 直接使用官方安装脚本自动安装即可 + +``` +curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun +``` + +##### 测试一下docker是否安装成功 +``` +sudo docker help +``` + +##### 为 hehaoyang 用户添加权限 +``` +sudo usermod -aG docker hehaoyang +sudo reboot +``` + +## 创建镜像 +### 通过dockerfile文件创建镜像 + +##### 创建dockerfile文件 +``` +mkdir docker && cd docker +vim dockerfile +``` + +* **dockerfile 文件内容** + +``` +FROM ubuntu:18.04 +MAINTAINER hehaoyang "1109196436@qq.com" + +RUN cp -a /etc/apt/sources.list /etc/apt/sources.list.bak +RUN sed -i 's@http://.*ubuntu.com@http://repo.huaweicloud.com@g' /etc/apt/sources.list + +RUN apt update + +RUN apt install -y build-essential crossbuild-essential-arm64 \ + bash-completion vim sudo locales time rsync bc python + +RUN apt update && apt install -y -f + +# language support +RUN locale-gen en_US.UTF-8 +ENV LANG en_US.UTF-8 + +# switch to a no-root user +RUN useradd -m -d /home/hehaoyang -s /bin/bash hehaoyang +RUN sed -i -e '/\%sudo/ c \%sudo ALL=(ALL) NOPASSWD: ALL' /etc/sudoers +RUN usermod -a -G sudo hehaoyang + +USER hehaoyang +WORKDIR /home/hehaoyang +``` +##### 创建镜像 +``` +docker build -t sdkcompiler . +# sdkcompiler 是镜像名称,可随意更改,注意命令最后有一个’.’ +``` + +##### 使用官网镜像 + +``` +docker pull ubuntu:18.04 +``` + +## 常用命令 + +##### 查看镜像列表 +``` +docker images +``` + +##### 删除镜像 +``` +docker rmi ubuntu:18.04 +``` + +##### 创建容器 +``` +# --privileged 使用该参数, 容器能够获取到主机的完整权限 +# --name 设置容器名 +# --mount type=bind,source=/root/target,target=/app # source= 填 SDK 所在目录;target= 填容器内的一个目录,必须是空目录 +# ubuntu 是上一步的镜像名 +docker run --privileged --mount type=bind,source=/home/hehaoyang/works/gogs,target=/home/hehaoyang/workspace --name="gogs" -d -i -t -p 3000:3000 ubuntu_18_04 +``` + +##### 查看所有容器 +``` +docker ps -a +``` + +##### 删除容器 +``` +docker rm -f gogs +``` + +##### 启动容器 +``` +docker start gogs +``` + +##### 连接容器 +``` +docker attach gogs +``` \ No newline at end of file