docker基本命令
镜像
下载镜像
-
命令:
docker pull [name][:tag] 如:
$ docker pull ubuntu:18.04
注意:
- 如果不加版本号信息,则默认下载最新的镜像信息。并且如果最新镜像有所更新,本地镜像会同步更新。因此这种方式不稳定。
- 为了防止不同仓库下镜像的name重复,在镜像的name前面会加上仓库地址的前缀。只是默认情况,我们使用docker官方hub服务,地址被省略了。例如从网易蜂巢的镜像源来下载ubuntu:18.04镜像,可以使用如下命令,此时下载的镜像名称为hub.c.163.com/public/ubuntu:18.04:
$ docker pull hub.c.163.com/public/ubuntu:18.04
子命令:
-a : 下载所有版本镜像
-disable-content-trust:取消镜像内容校验。设置镜像代理:
修改Docker配置文件/etc/default/docker如下:
DOCKER_OPTS="--registry-mirror=http://aad0405c.m.daocloud.io"
查看镜像信息
删除镜像
实现ssh登录docker容器
下载linux镜像
- 下载ubuntu镜像
docker pull ubuntu:18.04
- 更新软件源
apt-get update
如果不是国外服务器,可以设置国内网易软件源
安装和配置ssh服务
-
安装ssh服务
直接使用apt命令,从软件源中下载安装软件。
root@fc1936ea8ceb:/# apt-get install openssh-server
如果需要正常启动SSH服务,则目录/var/run/sshd必须存在。下面手动创建它,并启动SSH服务:
// 创建目录 root@fc1936ea8ceb:/# mkdir -p /var/run/ // 启动服务 root@fc1936ea8ceb:/# /usr/sbin/sshd -D
此时查看容器端口,可以看到22号端口已被监听
root@fc1936ea8ceb:/# netstat -tunlp
如果发现找不到
netstat
命令,可以安装net 工具:
apt-get install net-tools
-
修改ssh配置文件
-
编辑配置文件:
root@fc1936ea8ceb:/# vi /etc/ssh/sshd_config
- 修改SSH服务的安全登录配置,取消pam登录限制:
在文件中添加UsePAM no
- 允许root登录,在文件添加
PermitRootLogin yes
- 修改SSH服务的安全登录配置,取消pam登录限制:
-
添加公钥(公钥登录需要,口令登录不用)
- 在主机生成公钥:
一般为本地主机用户目录下的.ssh/id_rsa.pub文件,可由ssh-keygen-t rsa命令生成。若使用xshell登录,在xshell上也可以生成公钥。 - 将公钥注册到服务器:
root用户目录下创建.ssh目录,并复制需要登录的公钥信息到authorized_keys文件中:
root@fc1936ea8ceb:/# mkdir root/.ssh root@fc1936ea8ceb:/# vi /root/.ssh/authorized_keys
创建自动启动SSH服务的可执行文件run.sh:
root@fc1936ea8ceb:/# vi /run.sh
内容如下:#!/bin/bash /usr/sbin/sshd -D
添加可执行权限:
root@fc1936ea8ceb:/# chmod +x run.sh
- 在主机生成公钥:
退出容器
exit
-
保存容器为新的镜像
// fc1 为容器名
$ docker commit fc1 sshd:ubuntu
将容器端口绑定到主机
-
创建并启动容器。将容器的22端口,绑定到主机的10022端口。
docker run -p 10022:22 -d new-image /root/.ssh/run.sh
-
查看容器状态
可以看到容器端口已经和主机的端口绑定成功。
使用xshell登录
-
口令登录
如下图,使用口令登录,输入用户名和密码即可登录成功。
-
公钥登录
使用xshell生成公钥,并将公钥信息添加到/root/.ssh/authorized_keys文件中
-
设置authorized_keys权限
$ chmod 600 authorized_keys
-
设置.ssh目录权限
$ chmod 700 -R .ssh