我想通过 ssh 或 bash 进入正在运行的 docker 容器。请看例子:
$ sudo docker run -d webserver
webserver is clean image from ubuntu:14.04
$ sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
665b4a1e17b6 webserver:latest /bin/bash ... ... 22/tcp, 80/tcp loving_heisenberg
Run Code Online (Sandbox Code Playgroud)
现在我想得到这样的东西(进入正在运行的容器):
$ sudo docker run -t -i webserver(或者也许665b4a1e17b6相反)
$ root@665b4a1e17b6:/#
但是,当我运行上面的行时,我得到了新的 CONTAINER ID:
$ root@42f1e37bd0e5:/#
Run Code Online (Sandbox Code Playgroud)
我使用了 Vagrant,我想获得与vagrant ssh.
在最近的 c't(可悲的是付费墙)中有一篇关于 Snap 和 Flatpak 的文章。
这听起来与 Docker 非常相似,很多概念是相同的。现在我的问题是 Snap 和 Docker 之间有什么区别?这些是不同的用例吗?
thufir@dur:~$ sudo snap install docker
docker 17.06.1-ce from 'docker-inc' installed
thufir@dur:~$ sudo service docker start
Failed to start docker.service: Unit docker.service not found.
thufir@dur:~$ sudo systemctl status docker
Unit docker.service could not be found.
thufir@dur:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 17.10
Release: 17.10
Codename: artful
thufir@dur:~$ snap list
Name Version Rev Developer Notes
core 16-2.29.3 3440 canonical core
docker 17.06.1-ce 171 docker-inc -
hello-world 6.3 27 canonical - …Run Code Online (Sandbox Code Playgroud) Ubuntu 22.04 的存储库中仅包含Podman 3.4.4 ,并且最新 Podman 的前 PPA 已在 22.04 中停止使用
Ubuntu 22.04 LTS 中的 Kubic 软件包已停止使用。强烈建议 Ubuntu Kubic 存储库的当前用户在升级到 Ubuntu 22.04 LTS 之前从 Kubic 存储库卸载软件包。
因此,我很想知道如何以合理的方式在 Ubuntu 22.04 上安装当前的 Podman 版本,从而无需手动检查和安装二进制文件即可获取更新。
当我在内核为 3.8.0-19-generic 的 ubuntu 13.04 上运行 docker info 命令时
我收到警告
no swap limit support
Run Code Online (Sandbox Code Playgroud)
我该如何解决这个问题?
码头工人信息
Containers: 10
Images: 37
Driver: aufs
Root Dir: /var/lib/docker/aufs
Dirs: 59
WARNING: No swap limit support
Run Code Online (Sandbox Code Playgroud) 今天,当我登录 Ubuntu 18.04 docker 容器时,我注意到一条新消息。
通过删除用户不登录的系统上不需要的软件包和内容,该系统已被最小化。
要恢复此内容,您可以运行“取消最小化”命令。
然而,这是我不时登录的容器。
恕我直言,以这种方式在未经用户同意的情况下更改系统并不是一个非常明智的策略,但是暂时将其放在一边,我如何防止 Ubuntu 最小化我的系统?
最小化破坏了我的容器的功能,并且unminimize命令以内核错误结束。
我有一个从 Ubuntu 14.10 构建的 Docker 容器。当我登录到容器检查 Ubuntu 版本和内核版本时,我看到以下内容:
root@~$>> lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 14.10
Release: 14.10
Codename: utopic
root@~$>> uname -a
Linux ambiata-aws 3.13.0-24-generic #47-Ubuntu SMP Fri May 2 23:30:00 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
Run Code Online (Sandbox Code Playgroud)
我认为Ubuntu的14.10应该是内核版本3.16(为说明这里),所以为什么我的内核版本3.13.0-24泛型?
我问的原因是因为我想要在 3.13.0-29-generic 中有一个补丁(即,在我的 docker 容器中使用 fallocate 处理 AUFS),这在这里讨论。
我在 Ubuntu 20.04 中安装 docker 时遇到问题。
wolf@linux:~$ sudo apt install docker.io
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
docker.io : Depends: containerd …Run Code Online (Sandbox Code Playgroud) 实际上,我不确定这是否可以完成,但我知道总有一个 hack ,所以我对你们专家对此的看法充满热情。
我想在构建我的 docker 镜像时传递一个包作为参数,以便我可以使用相同的 dockerfile 部署不同的应用程序版本。
这是我想要实现的示例:
在构建图像时将包作为参数传递的能力(我知道语法是错误的,这只是一个示例)
docker build -t myapp/myapp:v1 . package_myapp_v1.tar
Run Code Online (Sandbox Code Playgroud)
然后使用ADDin 将Dockerfile其提取到容器中。
ADD passed_package ./
Run Code Online (Sandbox Code Playgroud)
因此,如果我想为我的应用程序的 v2 构建一个映像,我只需在docker build命令中指定新包,而无需更改Dockerfile.
任何人都知道让它工作的技巧是什么?
谢谢 :)
为什么容易切换docker从inactive到activeAWS上:
ubuntu@ip-172-31-14-19:~$
ubuntu@ip-172-31-14-19:~$ sudo snap services
Snap Service Startup Current
docker dockerd enabled active
ubuntu@ip-172-31-14-19:~$
ubuntu@ip-172-31-14-19:~$ sudo snap stop docker
Stopped.
ubuntu@ip-172-31-14-19:~$
ubuntu@ip-172-31-14-19:~$ sudo snap services
Snap Service Startup Current
docker dockerd enabled inactive
ubuntu@ip-172-31-14-19:~$
ubuntu@ip-172-31-14-19:~$ sudo snap start docker
Started.
ubuntu@ip-172-31-14-19:~$
ubuntu@ip-172-31-14-19:~$ sudo snap services
Snap Service Startup Current
docker dockerd enabled active
ubuntu@ip-172-31-14-19:~$
Run Code Online (Sandbox Code Playgroud)
但在我的家庭系统上它仍然显示为inactive尽管使用 sudo?
thufir@dur:~$
thufir@dur:~$ sudo snap services
Snap Service Startup Current
docker dockerd enabled inactive …Run Code Online (Sandbox Code Playgroud)