Skip to content

docker 使用

基本使用

将docker添加到用户组

# sudo
sudo groupadd docker
sudo usermod -aG docker $USER
newgrp - docker

搜索镜像

docker search [keyword]

创建一个容器,并可以使用bash交互

docker run -it <image> bash

列出容器

# 列出目前正在运行的docker容器
docker ps

# 列出所有 docker 容器(包括停止的容器)
docker ps -a

列出所有的镜像

docker image ls 

运行镜像, 创建容器,端口映射到80

docker run -p 80:8080 <image>

创建一个容器并后台运行

docker run -d [image]

获取并查看容器的日志

docker logs -f <container>

本地目录挂载到docker容器目录

docker run -v /本地文件夹路径:/容器内目标路径 <image>

指定容器内命令的工作目录

docker run -w /app myimage 命令

-w选项仅影响容器内部的命令。它不会改变容器本身的工作目录。

docker run

-i 获取STDIN -t 给予容器一个tty

重启容器

docker restart <container> 

修改docker默认使用的shell(需要容器正在运行),退出后容器不会停止运行

docker exec -it <container> /bin/bash

docker exec -it <container> /bin/bash -c "apt update" # 打开容器,并执行'apt update',随后退出
docker exec -it <container> /bin/bash -c "apt update; bash" # 打开容器,并执行'apt update',随后不会退出

连接容器(退出后,容器便会停止运行)

docker attach <container>

Ubuntu docker开发环境快速配置

sed -i 's@//.*archive.ubuntu.com@//mirrors.ustc.edu.cn@g' /etc/apt/sources.list ; #配置ustc镜像源 \
apt update;\
apt upgrade -y;\
apt install -y curl sudo ssh vim fish neofetch tree make git gcc gdb build-essential htop wget python3 tmux;

修改默认shell

chsh -s $(which fish)

debian 仅docker容器

参见: Debian - USTC Mirror Help

sudo sed -i 's/deb.debian.org/mirrors.ustc.edu.cn/g' /etc/apt/sources.list.d/debian.sources

非docker容器

sudo sed -i 's/deb.debian.org/mirrors.ustc.edu.cn/g' /etc/apt/sources.list

Dockerfile

Dockerfile示例

构建Ubuntu镜像

# Set the base image 
FROM ubuntu:latest

RUN sed -i 's@//.*archive.ubuntu.com@//mirrors.ustc.edu.cn@g' /etc/apt/sources.list

# Update the repository sources list
RUN apt update

# Upgrade any pre-installed packages
RUN apt upgrade -y

# Install necessary packages
RUN apt install -y curl sudo ssh vim fish neofetch tree make git gcc gdb build-essential htop wget python3 tmux
docker build --tag <image-name>:<image-version> -f /path/to/Dockefile .

国内linux环境相关配置

zsh 安装与配置,使用 oh-my-zsh 美化终端 | Leehow的小站