1. 前言

写本文的原因很简单是因为每次自己使用docker或多或少会去查一下教程之类,还会遇到很多问题,因此将自己平时使用频率最高的操作和遇到的问题记录下来。

镜像和容器部分出自acwing-yxc老师的linux课程讲义,我将其进行了精简和归纳。

2. 镜像

  • docker pull ubuntu:20.04 拉取镜像
  • docker images 列出所有镜像
  • docker rm ubuntu:20.04 删除镜像

3. 容器

  • docker ps -a 查看本地所有容器

创建容器完整连招:

docker run -p 25000:22 -p 80:80 -p:443:443 --name blog -itd ubuntu:20.04

其中,-p为指定端口映射,每个-p对应一个映射。--name之后的是给容器起的名字(例子中的名字是blog),docker run xxx -itd 就是创建并运行这个容器,-itd之后的ubuntu:20.04 为镜像名。

下文均使用”blog“作为容器的名字

如果容器处于关闭的状态,以下两个连招能够启动并进入容器:

  1. docker start blog
  2. docker attach blog
  • 先按Ctrl-p,再按Ctrl-q(Mac将ctrl替换为command) 就能够挂起容器(退出容器界面但保持容器运行)

如果容器处于正常运行的情况,以下两个连招能够关闭并删除容器:

  • docker stop blog
  • docker rm blog

4. 实际使用遇到的问题

初次创建容器并且挂起后,想通过ssh来登录,出现”connection denied“。

首先尝试重启容器,不行就重启云服务器,如果还不行,参考下列方法

方法来自:https://blog.csdn.net/piaopu0120/article/details/120550181

进入容器输出以下命令:

apt-get update
apt-get install openssh-server
apt-get install vim
vim /etc/ssh/sshd_config

通过搜索,只找到一行这样的

#PermitRootLogin prohibit-password

由于已经是打了注释的,因此就没管,直接添加一行PermitRootLogin yes

最后运行service ssh restart。之后如果还出现类似登录不上的情况,直接重启ssh服务即可

centos

报错信息:Failed to get D-Bus connection: Operation not permitted

创建:docker run -d --name blog --privileged=true centos:7 /usr/sbin/init

进入:docker exec -it centos7 /bin/bash

systemctl restart sshd

usermod -aG sudo jimmy

Sudo whoami

最后修改:2024 年 02 月 15 日
如果觉得我的文章对你有用,请随意赞赏