docker学习记录
目录
入门
- from~菜鸟教程
目前学习的部分容
Ubuntu Docker 安装
- 指令
curl -fsSL https://test.docker.com -o test-docker.sh
sudo sh test-docker.sh
Docker Hello World
- 输出Hello world
runoob@runoob:~$ docker run ubuntu:21.04 /bin/echo "Hello world"
Hello world
各个参数解析:
- docker: Docker 的二进制执行文件
- run: 与前面的 docker 组合来运行一个容器
- ubuntu:15.10 指定要运行的镜像,Docker 首先从本地主机上查找镜像是否存在,如果不存在,Docker 就会从镜像仓库 Docker Hub 下载公共镜像
- /bin/echo "Hello world": 在启动的容器里执行的命令
- 以上命令完整的意思可以解释为:Docker 以 ubuntu15.10 镜像创建一个新容器,然后在容器里执行 bin/echo "Hello world",然后输出结果
运行交互式的容器
- 我们通过 docker 的两个参数 -i -t,让 docker 运行的容器实现"对话"的能力:
runoob@runoob:~$ docker run -i -t ubuntu:21.04 /bin/bash
root@0123ce188bd8:/#
- 相当于进了docker的命令行模式
Docker 安装 Python
- 我拉取的官方镜像版本是3.9.7,只用了一句指令,指令为
docker pull python:3.9.7
,不带~/python 会报错提示没有这个python
使用 python 镜像 - 运行指令:
docker run -v $PWD:/usr/src/myapp -w /usr/src/myapp python:3.9.7 python helloworld.py
,不带~/python 会报错提示没有这个python
进阶
怎么把文件放到docker容器里
docker进程隔离是什么意思
Docker资源限制
docker安装及优化详解 -----学习docker这一篇就够了!!
docker换源
- Docker 换源
- 步骤记录:
是在原主机里面去打开/etc/docker 不是在容器里面开
打开编辑daemon.json文件,源文件如下
更改为
重启docker
service docker restart
进入容器,执行apt-get update
更新源
docker配置ubuntu-python环境
- docker配置ubuntu-python环境
- 我拉取的是Ubuntu21.04,其他照做就行
- 然后就可以跟Ubuntu一样安装东西了
尝试记录
使用指定镜像生成指定名称的容器
docker images 查看拥有哪些镜像以及镜像的id
docker run -d --name client1 d662230a2592 使用指定镜像生成指定名称的容器
如用Ubuntu21.04镜像创建名叫client1的容器docker run -i -t -d --name client1 ubuntu:21.04
,进入该容器docker exec -it -u root 11498e440e95 /bin/bash
,其中11498e440e95是容器id
删除指定容器
命令为 docker rm {CONTAINER_ID},其中的 {CONTAINER_ID} 表示的是容器 ID。这条命令只能删除非运行状态的容器。如果需要删除正在运行的容器,可以带上 -f 命令参数,f 是 force 的单词简写形式。
一键全删容器
查看指定容器的ID
docker inspect 11498e440e95
其中11498e440e95是容器ID
限制已经创建的容器的CPU、内存、交换区大小,比如只想设置内存,那就只写memory
- from~docker如何限制已经在运行的容器cpu和内存
docker container update 容器名称或容器ID --cpus="2" --memory="8g" --memory-swap="-1"
查看容器的内存等信息设置
docker stats
容器复制迁移
- 把容器打包成镜像,就可以像原来从镜像创建容器一样的用了
- 打包指令 ,具体解释在 from~[4] docker容器打包成镜像、镜像备份、镜像迁移(恢复)、发布到阿里云仓库
docker commit -m "my_client" client1 my_client:1.0
容器网卡问题
- from~ubuntu-docker入门到放弃(五)docker网络管理
- 容器每次开关都会在主机上随机分配网卡名字,对应到容器里面的eth0 lo