Ubuntu 22.04 docker基础开发环境搭建

1. 安装docker

sudo apt install docker.io;echo $?

2. 拉取Ubuntu 22.04的镜像

sudo docker pull ubuntu:22.04;echo $?

$ sudo docker pull ubuntu:22.04
22.04: Pulling from library/ubuntu
Digest: sha256:34fea4f31bf187bc915536831fd0afc9d214755bf700b5cdb1336c82516d154e
Status: Image is up to date for ubuntu:22.04
docker.io/library/ubuntu:22.04

3. 启动Ubuntu 22.04容器(容器内可使用gdb)

sudo docker run -itd --net host --name ubuntu22.04 --security-opt seccomp=unconfined --privileged --cap-add sys_ptrace -v `pwd`:/mnt ubuntu:22.04 /bin/bash;echo $?

 $ sudo docker run -itd --net host --name ubuntu22.04 --security-opt seccomp=unconfined --privileged --cap-add sys_ptrace -v `pwd`:/mnt ubuntu:22.04 /bin/bash
0547e87a5e0c9e1a42a610caa5edcb0baa852f123818edf4262cc723f73da8f5

$ sudo docker ps -a
CONTAINER ID   IMAGE          COMMAND       CREATED              STATUS              PORTS     NAMES
0547e87a5e0c   ubuntu:22.04   "/bin/bash"   About a minute ago   Up About a minute             ubuntu22.04

 4. 将终端附加到容器内

sudo docker exec -it <CONTAINER ID> /bin/bash

例如:

$ sudo docker exec -it 0547e87a5e0c9e1a42a610caa5edcb0baa852f123818edf4262cc723f73da8f5 /bin/bash
root@penghao-ThinkBook-14-G3-ITL:/#

5. 初始化开发环境

apt update -y;apt upgrade -y
apt clean -y;apt autoclean -y
apt remove --purge -y;apt autoremove --purge -y
apt install -y apt-transport-https ca-certificates vim cpio squashfs-tools
mv -v /etc/apt/sources.list /etc/apt/sources.list.default
cp -rfv /etc/apt/sources.list.default /etc/apt/sources.list.tuna
ln -s /etc/apt/sources.list.tuna /etc/apt/sources.list
echo "# The source image is commented by default to improve the speed of apt update, you can uncomment it if needed" | tee /etc/apt/sources.list.tuna; \
echo "deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse" | tee -a /etc/apt/sources.list.tuna; \
echo "# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse" | tee -a /etc/apt/sources.list.tuna; \
echo "deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse" | tee -a /etc/apt/sources.list.tuna; \
echo "# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse" | tee -a /etc/apt/sources.list.tuna; \
echo "deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse" | tee -a /etc/apt/sources.list.tuna; \
echo "# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse" | tee -a /etc/apt/sources.list.tuna; \
echo "deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse" | tee -a /etc/apt/sources.list.tuna; \
echo "# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse" | tee -a /etc/apt/sources.list.tuna

 输入以上命令后,docker环境下的/etc/apt/sources.list文件内容如下:

# The source image is commented by default to improve the speed of apt update, you can uncomment it if needed
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
cat /etc/apt/sources.list

cat /etc/issue
apt update -y;apt upgrade -y
apt clean -y;apt autoclean -y
apt remove --purge -y;apt autoremove --purge -y
apt install -y gcc g++ make cmake gdb m4 libtool sqlite3 python2 python3 htop git git-lfs iputils-ping tree subversion
apt install -y binutils bison coreutils diffutils findutils gawk gcc-12 g++ build-essential libstdc++-9-dev \
    grep gzip m4 make patch perl python3 sed texinfo xz-utils gdb wget tree htop
apt clean -y;apt autoclean -y;apt remove --purge -y;apt autoremove --purge -y
rm -rfv /bin/sh
ln -s /usr/bin/bash /bin/sh
apt clean -y;apt autoclean -y;apt remove --purge -y;apt autoremove --purge -y

  6. 将容器保存为镜像

sudo docker ps -a

sudo docker image ls -a

sudo docker commit -a "ubuntu 22.04 base dev env." -m "zhangzg" <CONTAINER ID> <REPOSITORY>:<TAG>;echo $?

# sudo docker commit -a "ubuntu 22.04 base dev env." -m "ph" 3d5494f13dca387c428a45d6e451f543fbeb27a1652c557383b3d7cf56dd09d6 ubuntu:22.04-dev-1.0;echo $?

7. 启动Ubuntu 22.04-dev-1.0容器(容器内可使用gdb)

sudo docker run -itd --net host --name <CONTAINER NAME> --security-opt seccomp=unconfined --privileged --cap-add sys_ptrace -v `pwd`:/mnt ubuntu:22.04-dev-1.0 /bin/bash;echo $?

例如:

sudo docker run -itd --net host --name ubuntu22.04-dev-1.0 --security-opt seccomp=unconfined --privileged --cap-add sys_ptrace -v `pwd`:/mnt ubuntu:22.04-dev-1.0 /bin/bash;echo $?

sudo docker exec -it <CONTAINER ID> /bin/bash

例如:

sudo docker exec -it b92d002d0d2a65ff124f65a8a13d299f587ce55e1d77b539794beafb72f9b898

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蓝天居士

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值