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“作为容器的名字
如果容器处于关闭的状态,以下两个连招能够启动并进入容器:
- docker start blog
- 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