Ubuntu Docker 安装及使用

This commit is contained in:
hehaoyang 2023-09-07 23:07:17 +08:00
commit f627ee71da

123
Ubuntu/Docker.md Normal file
View File

@ -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
```