我尝试在全新安装的 Ubuntu Server 14.04(在 docker 上)上安装 aptitude,我得到:
Step 2 : RUN apt-get install aptitude
---> Running in 257ad5947629
Reading package lists...
Building dependency tree...
Reading state information...
The following extra packages will be installed:
apt-xapian-index aptitude-common iso-codes libboost-iostreams1.54.0
libclass-accessor-perl libcwidget3 libept1.4.12 libio-string-perl
libparse-debianchangelog-perl libpython-stdlib libpython2.7-minimal
libpython2.7-stdlib libsigc++-2.0-0c2a libsub-name-perl libtimedate-perl
libxapian22 python python-apt python-apt-common python-chardet python-debian
python-minimal python-six python-xapian python2.7 python2.7-minimal xz-utils
Suggested packages:
app-install-data python-xdg aptitude-doc-en aptitude-doc tasksel debtags
isoquery libcwidget-dev libhtml-parser-perl libhtml-template-perl
libxml-simple-perl xapian-tools python-doc python-tk python-apt-dbg
python-gtk2 python-vte …Run Code Online (Sandbox Code Playgroud) 在 Ubuntu Gnome 15.10 中,Docker 几乎是开箱即用的,但有一个微妙之处。在我重新启动 docker 服务之前,容器似乎无法访问网络。
启动主机后,docker0 接口没有任何 IP 地址。
$ ifconfig docker0
docker0 Link encap:Ethernet HWaddr ea:03:cc:9c:7a:cd
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:2 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:108 (108.0 B)
Run Code Online (Sandbox Code Playgroud)
如果我然后启动一个容器,docker0 接口只会获得一个 ipv6 地址,据我所知,容器无法连接网络。我无法 ping 主机 IP、LAN IP 或 Internet IP。我正在使用 ubuntu:trusty 映像并运行 bash 作为容器的主进程。
$ ifconfig docker0
docker0 Link encap:Ethernet HWaddr 00:00:00:00:00:00
inet6 addr: fe80::7801:6eff:fe86:6dd8/64 Scope:Link
UP BROADCAST MULTICAST MTU:1500 Metric:1 …Run Code Online (Sandbox Code Playgroud) 我正在尝试让 docker 使用现有的 zpool。根据Docker 文档,我应该将存储驱动程序设置为/etc/default/docker:
DOCKER_OPTS="--storage-driver=zfs"
Run Code Online (Sandbox Code Playgroud)
但是,当我重新启动服务时,Docker 不会启动:
level=fatal msg="启动守护进程时出错:初始化图形驱动程序时出错:不满足驱动程序的先决条件(错误的文件系统?)"
尝试时,docker daemon --storage-driver=zfs我收到类似的错误。
我在 Xenial 中使用 Docker 1.5-1。
我的计算机在端口 1234 上托管了一个应用程序,除了我的机器之外,任何东西都不能访问该应用程序。但是,我的 Docker 容器(运行 Apache)应该能够访问它。同样,我的 Docker 容器在各种端口上托管了许多资源,这些资源同样只能从我的计算机访问。现在,由于我的系统为该特定网络使用网桥这一事实,情况变得更加复杂:
NETWORK ID NAME DRIVER SCOPE
4d4b5e752963 bridge bridge local
c387eb42698a project_default bridge local
6818c0eb94bf host host local
f7e4ed6c05a2 none null local
Run Code Online (Sandbox Code Playgroud)
这个桥(令人讨厌)总是有一个随机生成的 ID,每次我重新启动我的 Docker Compose 设置时都会改变:
br-c387eb42698a Link encap:Ethernet HWaddr 02:42:29:95:fd:2c
inet addr:172.18.0.1 Bcast:0.0.0.0 Mask:255.255.0.0
inet6 addr: fe80::42:29ff:fe95:fd2c/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:405753 errors:0 dropped:0 overruns:0 frame:0
TX packets:530699 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:85147217 (85.1 MB) TX bytes:75260996 (75.2 MB)
Run Code Online (Sandbox Code Playgroud)
简而言之,我需要以下内容:
br-c387eb42698a(或任何网络名称)都可以访问我本地机器上的端口 …我有这个 Dockerfile:
FROM ubuntu:17.04
# Must have packages
RUN apt-get update && apt-get install -y nano zsh curl git
# Instal Oh my Zsh
RUN bash -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
RUN sed -i -- 's/robbyrussell/sonicradish/g' /root/.zshrc
# Add none root user
RUN adduser admin
USER admin
Run Code Online (Sandbox Code Playgroud)
我正在使用 zsh shell 与管理员用户连接。
docker exec -ti linux zsh
Run Code Online (Sandbox Code Playgroud)
我正在添加一个非 root 用户(管理员)。
我仍然想sudo用这个用户执行一个命令,但它出错了:
$ sudo apt-get install vim
zsh: command not found: sudo
Run Code Online (Sandbox Code Playgroud)
与 bash shell 相同的消息。
如何sudo使用非 root 用户运行命令? …
在 Ubuntu 16.04 上
sudo nano /etc/ssh/sshd_config
Run Code Online (Sandbox Code Playgroud)
改变
PermitRootLogin prohibit-password
Run Code Online (Sandbox Code Playgroud)
到
PermitRootLogin yes
Run Code Online (Sandbox Code Playgroud)sudo service ssh restart
仍然被拒绝
更新到 ubuntu 20.04 后,当我访问 docker 中的容器时,我看不到任何文件或输入任何命令,这没什么用。那么是否与新版 ubuntu 中的 docker 或 docker 有关系?
我遇到了 docker-compose 的问题,它在已安装的硬盘驱动器上的文件夹中安装了一个卷。我见过很多解决方案,并且诚实地尝试了所有这些解决方案。
我在各自的组中更改了我正在使用的用户、root、docker 的权限。没有什么
写入操作工作正常,我可以通过 python 写入文件,我不受限制,但是当我运行 docker compose 来创建 sql db 时,它给了我这个:
错误:对于 mysql_db 无法启动服务 mysql_db:创建安装源路径“/db-path-mount”时出错:chown /db-path-mount/db-volume-folder/db-one:不允许操作
错误:对于 mysql_db 无法启动服务 mysql_db:创建安装源路径 '/db-path-mount' 时出错:chown /db-path-mount/db-volume-folder/db-one:不允许操作 错误:遇到错误提出该项目。
那里的故障排除似乎很少,我尝试了 docker-compose up -d 和 sudo docker-compose up -d,没有任何真正的改变。
drwxr-xr-x 3 myUser docker 4028276 Jul 26 04:47 db-volume-folder/
Run Code Online (Sandbox Code Playgroud)
和我的挂载点(etc/fstab):
UUID=MY_UUID /home/user/my_mount_point auto uid=1001,gid=122,umask=022,defaults 0 1
(gid=122 is docker)
(uid=1001 is user)
Run Code Online (Sandbox Code Playgroud)
我使用的是ubuntu 20服务器
docker-compose.yml:
version: "3.7"
services:
my_sql_db:
container_name: my_sql_db
user: root
image: mysql/mysql-server:latest
ports:
- "1533:3306"
env_file:
- secrets/sqlserver.env
- secrets/sqlpassword.env
volumes: …Run Code Online (Sandbox Code Playgroud) 我已将 Docker 安装到 WSL Ubuntu 20.04 distr。为了让它运行我需要:
sudo dockerd
Run Code Online (Sandbox Code Playgroud)
它运行但它阻止了我的终端选项卡。要使用容器,我需要打开第二个选项卡。我尝试使用sudo dockerd &- 它似乎在后台运行 dockerd,但是当我更改目录时,它会停止。
如何在后台运行 dockerd 并在不停止的情况下更改目录?
运行 20.04 LTS 的 VPS 以及一些已经存在多年的 Docker 镜像。
\n我刚刚更新了安全性,以及应该是不间断的升级 ( apt-get update && apt-get upgrade),但该过程破坏了 Docker 安装。我已经尝试过删除并重新安装sudo dpkg --configure -a以及类似的命令,但它无法启动。我避免了清除,因为我不确定我了解哪些配置文件将被删除。
系统控制状态:
\n\xe2\x97\x8f docker.service - Docker Application Container Engine\n Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)\n Active: failed (Result: exit-code) since Mon 2023-02-06 10:06:22 EST; 12s ago\nTriggeredBy: \xe2\x97\x8f docker.socket\n Docs: https://docs.docker.com\n Process: 1231 ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock (code=exited, status=1/FAILURE)\n Main PID: 1231 (code=exited, status=1/FAILURE)\nRun Code Online (Sandbox Code Playgroud)\nsudo journalctl -xe没有提供任何有用的东西。
系统日志中最明显的消息:
\ndockerd[1231]: failed to …