docker基础教程

下载镜像
docker pull mysql


从dockerpull社区下载镜像
docker pull dl.dockerpoll.com:5000/ubuntu


创建一个容器运行bash应用
docker run -t i ubuntu /bin/bash


列出本地镜像
docker images


保存镜像
docker commit fc1dfgt5d23423d3 sshd:ubuntu


给镜像添加一个ubuntu:lastest标签
docker tag al.dockerpool.com:5000/ubuntu:lastest ubuntu:lastest


查看镜像的详细信息
docker inspect 5506de2b43b


搜索镜像
docker search mysql


删除镜像
docker rmi dl:dockerpool.com:5000/ubuntu


根据标签删除镜像
docker rmi mysql:lastest


强制删除镜像
docker rmi -f ubuntu


列出本地上存在的所有容器
docker ps -a


删除容器
docker rm e81(e81是docker ps -a 里的container id)


基于已有的镜像创建容器
docker run -ti ubuntu:14.04 /biu/bash


上传镜像:在docukerhun网站注册后可上传,不过要求输入账号密码
docker tag test:lastest user/test:lastest
docker push user/test:lastest


==============================================================


启动一个bash 终端,允许用户进行交互,添加-d参数在后台运行容器
docker run -t i ubuntu:14.04 /bin/bash


获取容器输出的信息
docker log


终止一个运行中的容器
docker stop ce5


强行中止运行中的窗口(SIGKILL信号)
docker kill ce5


启动终止的容器
docker start ce5


进入容器操作(得先docker start 容器id)
docker attach 容器名
或者:
docker exec -ti 容器id /bin/bash
或者用nsenter工具


停止容器
docker stop 容器id


删除一个运行中的容器
docker rm -f ce5


导入和导出容器(见书上或者百度)
导入:docker export ce5 >test_for_run.tar
到处:cat test_for_run.tar | sudo docker import - test/ubuntu:v1.0


===========创建和使用docker仓库(见书或百度)=========================


=======数据卷===================================


指定挂载一个本地已有目录到容器中去作为数据卷(-v参数)
sudu docker run -d -P --name web -v /src/web:app:/opt/webapp training/webapp python app.py


创建一个数据卷容器dbdata,并在其中创建一个数据卷挂载 到/dbdata
docker run -ti -v /dbdata --name dbdata ubuntu


docker run --it --volumes-from dbdata --name db1 ubuntu


备份数据卷和恢复数据卷见资料


======网络基础配置=============================


-p指定端口
-P随机端口


把本地的5000端口映射到容器的80
docker run -d -p 5000:80 training/webapp python python.py


查看端口映射配置
docker port docker-name 5000


使用--name标记为容器自定义命名
docker run -d -P web training/webapp python python.py


容器互联见资料


======使用dockerfile创建镜像(见资料)===================


======创建ssh镜像===========================================


先下载ubuntu容器
(这个能下载)docker pull daocloud.io/library/ubuntu:trusty-20160802
docker pull daocloud.io/library/ubuntu
docker pull daocloud.io/library/centos
docker pull ubuntu  这个有时候好用


首先,来创建一个容器(ubuntu)
docker run -ti ubuntu:14.04 /bin/bash


修改root密码
echo 'root:123456' | chpasswd 




这里有个问题就是把vi编辑器换成vim需要执行以下操作
一.执行命令 sudo apt-get remove vim-common
二.执行命令 sudo apt-get install vim
如果apt-get安装不了得先更新apt-get update才好用apt-get upgrade



然后在容器中安装ssh服务
apt-get install openssh-server


配置软件源
apt-get update


也可以把软件源替换为163的
在容器内创建/etc/apt/sources.list.d/163.list
vi /etc/apt/sources.list.d/163.list
添加下列内容到文件中
deb http://mirrors.163.com/ubuntu/ trusty main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ trusty-security main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ trusty-updates main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ trusty-backports main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ trusty main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ trusty-security main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ trusty-updates main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ trusty-backports main restricted universe multiverse
之后重新执行apt-get update就可以


要正常启动SSH服务,需要/var/run/sshd存在,手动创建它,并启动服务
mkdir -p /var/run/sshd
/usr/sbin/sshd -D &


此时查看容器的22端口,已经处于监听状态
netstat -tunlp








修改SSH服务的安全登录配置,取消pam登录限制
sed -ri 's/session required pam_loginuid.so/#session required pam_loginuid.so/g' /etc/pam.d/sshd
(有时候上面那个好用,有时候下面这个好用)发现容器立即关闭了连接,原因是容器的ssh使用了pam_loginuid.so模块,我们把它关掉:
sed -i '/^session\s\+required\s\+pam_loginuid.so/s/^/#/' /etc/pam.d/sshd
上述命令的意思是:在/etc/pam.d/sshd文件里注释掉"session    required     pam_loginuid.so"这一行。










在root用户目录下创建.ssh目录,并复制需要登录的公钥信息


(一般为本地主机用户目录下的.ssh/id_rsa.pub文件,可由ssh-keygen -t rsa命令生成,
在远端客户端机器(即,非容器机器)执行命令 ssh-keygen -t rsa 生成rsa的公私密钥对,然后把公钥的信息拷贝到运行ubuntu容器机器的授权文件中:
mkdir /root/.ssh
vi /root/.ssh/authorized_keys # 粘贴客户端的公钥信息)


到authorized_keys 文件中
ssh-keygen -t rsa
然后把里面的内容,按照上面的操作
mkdir root/.ssh
vi /root/.ssh/authorized_keys






ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCz0J91r/bHbMSrBHi7DSU6UIANO8fag6wjUZ0bdCKgijK2APOPftT+J8HVlubda+1EWeAy5m99oudT7Ubi0Bg68uYbM+iyK7ecE99VQEEAndcbIELNmY8EkrSGT+w0xF6j+1JM5P/GCHjzZgEjUwemZjxhhN3K3GM9Mz50t6QLDnfDuBqaPw6RqL4f4+YFGiYKxuOQdzo/97iZoCNut6+RFf6z4qr6ao6ZXeH2qel52F4IjJJ90uaI1j81sFclPE1ZP3Rg7q1vlbBpxEv0fLyeZu7hdxH7GPgIYtwJSsPBJiymAVs1kTbeBF+4ZV8RFuuRMrCASllxj4R7hfYrisJp root@iZ25xepzd49Z














创建自动启动ssh服务的可执行文件run.sh,并添加可执行权限
vi /run.sh
chmod +x run.sh


run.sh脚本内容如下
#!/bin/bash
/usr/sbin/sshd -D


最后,退出容器
exit


使用docker commit来保存成新的sshd:ubuntu镜像
docker commit fc1 sshd:ubuntu


使用镜像
docker run -p 10022:22 -d sshd:ubuntu /run.sh


启动成功后,查看容器的详细信息
docker ps


这时可以连接容器了
ssh 192.168.1.200 -p 10022




============
修改root密码
passwd root








========下面来一段自己测试成功的sshd登录==============


下载ubuntu镜像


生成容器,进入容器


apt-get update
apt-get install openssh-server
apt-get install vim


service ssh start


vi /etc/ssh/sshd_config
PermitRootLogin yes"-->保存,修改成功。


service ssh restart


然后外网就能连接成功



































  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值