docker 操作笔记

1.Docker 创建ubuntu系统更换 apt-get源

创建Dockerfile并且更新apt源

在Dockerfile中添加如下两句代码:

RUN  sed -i s@/archive.ubuntu.com/@/mirrors.aliyun.com/@g /etc/apt/sources.list
RUN  apt-get clean

 

Dockerfile 文件

复制代码
FROM ubuntu:latest
MAINTAINER itdream "itdream6@163.com"
RUN  sed -i s@/archive.ubuntu.com/@/mirrors.aliyun.com/@g /etc/apt/sources.list
RUN  apt-get clean
RUN apt-get update
RUN apt-get install sudo
RUN apt-get install vim
RUN apt-get install curl
RUN apt-get install wget
sudo apt install systemctl
RUN curl -sSL https://get.daocloud.io/docker | sh
复制代码

 

查看所有的容器命令如下:

sudo docker ps -a

 

 

 

 

进入某个容器

docker exec:推荐大家使用 docker exec 命令,因为此命令会退出容器终端,但不会导致容器的停止。

docker exec -it 8282cf35de22 /bin/bash

 

2.镜像打包

docker save ubuntu:22.04 > ubuntu.tar

3.镜像导入

docker load < ubuntu.tar

 

4.docker 删除已停止的容器

根据容器的状态,删除Exited状态的容器

复制代码
#根据容器的状态,删除Exited状态的容器
 sudo docker rm $(sudo docker ps -qf status=exited)

# 删除所有未运行的容器(已经运行的删除不了,未运行的就一起被删除了)
sudo docker rm $(sudo docker ps -a -q)


#查询所有的容器,过滤出Exited状态的容器,列出容器ID,删除这些容器
#显示所有的容器,过滤出Exited状态的容器,取出这些容器的ID,
sudo docker ps -a|grep Exited|awk '{print $1}'


#查询所有的容器,过滤出Exited状态的容器,列出容器ID,删除这些容器
sudo docker rm `docker ps -a|grep Exited|awk '{print $1}'`

手动清理 Docker 镜像/容器/数据卷
对于旧版的 Docker(版本 1.13 之前),是没有 docker system 命令的,因此需要进行手动清理。这里给出几个常用的命
删除所有关闭的容器
docker ps -a | grep Exit | cut -d ' ' -f 1 | xargs docker rm

删除所有 dangling 镜像(即无 tag 的镜像):
docker rmi $(docker images | grep "^<none>" | awk "{print $3}")

删除所有 dangling 数据卷(即无用的 volume):
docker volume rm $(docker volume ls -qf dangling=true)
复制代码

 

 

 

6.镜像创建容器

docker run -t -i ubuntu:15.10 /bin/bash

 

 

docker删除镜像

使用一段时间之后,可能堆积很多用不着的,或者编译错误的镜像,一个一个删除就很麻烦,需要一个批量删除的方法

docker rmi $(docker images | grep "latest" | awk '{print $3}') 

7.后台启动容器

docker run -itd --name ubuntu-test ubuntu /bin/bash

8.进入容器

docker exec -it 243c32535da7 /bin/bash

9.主宿机器和容器之间互相copy文件

# 容器copy到宿主机器 3c9bf1be70d3为容器id
sudo docker cp 3c9bf1be70d3:/train/123.txt .

# 宿主机器copy到容器
docker cp auto.sh 3c9bf1be70d3:/train/

 

10.镜像打包

# Docker 进入容器
sudo docker run -t -i smy20011/dreambooth:mmqi.1.2 /bin/bash

# 容器打包
sudo docker commit 0d5f160e393f smy20011/dreambooth:mmqi.1.2.1

 

11.dockerfile 编写

复制代码
FROM ubuntu:22.04

# 更换 apt-get 源为中国源
RUN sed -i 's/archive.ubuntu.com/mirrors.aliyun.com/g' /etc/apt/sources.list

# 安装必要的工具和 Python3.10
RUN apt-get update && \
    apt-get install -y python3.10 && \
    apt-get install -y python3-pip && \
    apt-get install -y wget && \
    apt-get clean && \
    rm -rf /var/lib/apt/lists/*

# 更换pip安装源为中国源
RUN mkdir ~/.pip && \
    echo '[global]' > ~/.pip/pip.conf && \
    echo 'index-url = https://pypi.mirrors.ustc.edu.cn/simple/' >> ~/.pip/pip.conf

CMD ["/bin/bash"]
复制代码

执行

docker build -t my-ubuntu-python:1.0 .

 

posted on   星河赵  阅读(121)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
历史上的今天:
2021-02-23 Linux 文件权限十位权限表示&&文件的拥有者及用户组(chown和chgrp)
2019-02-23 [python] ThreadPoolExecutor线程池 python 线程池
2019-02-23 python按行遍历一个大文件,最优的语法应该是什么?
2019-02-23 Mac 开发必备 利器 iterm2 oh-my-zsh
2018-02-23 django 线上线下使用不同的数据库 上线:mysql 线下sqlite3 以及debug模式的开和关
2018-02-23 django admin 或xdmin list_display search_fields list_filter 如果显示搜索外键或多对多字段
2018-02-23 django数据库操作-增删改查-多对多关系以及一对多(外键)关系

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示