2019-6-29 01:06:08
最近想玩玩docker
遇到报错
PYCURL ERROR 22 - "The requested URL returned error: 404 Not Found"
最终结论: 由于是很早之前 基于 centos6的教程 现在yum的源难以匹配到 所以改用Centos7
参考菜鸟教程:http://www.runoob.com/docker/centos-docker-install.html
添加组
groupadd docker
useradd docker -g docker
判断系统环境
uname -r
Docker 运行在 CentOS 7 上,要求系统为64位、系统内核版本为 3.10 以上。
Docker 运行在 CentOS-6.5 或更高的版本的 CentOS 上,要求系统为64位、系统内核版本为 2.6.32-431 或者更高版本。
安装
yum -y install docker
启动docker后台服务
service docker start
测试运行 hello-world
docker run helo-world
没有hello-world 这个映像文件 会自动下载 ,安装部分到这就结束了
========================================================
运行容器:
docker run -i -t ubuntu:15.10 /bin/bash
-t:在新容器内指定一个伪终端或终端。
-i:允许你对容器内的标准输入 (STDIN) 进行交互。
-v
:表示需要将本地哪个目录挂载到容器中,格式:-v <宿主机目录>:<容器目录>
查看运行的docker状态
docker ps
启动容器(后台模式)
docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo hello world; sleep 1; done"
-d:以后台Daemon方式运行,执行成功后会返回一个该容器的ID
查看日志
docker logs xxx(xxx代表容器id,也可以用容器名称)
关闭容器
docker stop amazing_cori(amazing_cori是容器名称) 或者 ctrl+D 后台继续运行
查看已经下载的 images
docker images
查看全部命令 docker ( xxx命令 --help 查看单个命令)
创建容器
docker create--name ubuntContainer ubuntu:15.10 /bin/sh -c 'Hello world'
杀死容器
docker kill 容器ID或者名称
删除容器
docker rm 容器ID或者名称
docker rm $(docker ps -q- a) //全删,慎用 暂时没试过
运行一个web 应用
docker run -d -P training/webapp python app.py
也可以指定 -p 标识来绑定指定端口。-p docker容器端口:映射端口
-d:让容器在后台运行。
-P:将容器内部使用的网络端口映射到我们使用的主机上。
-name
:表示容器名称,用一个有意义的名称命名即可。
进入一个容器
1.docker attach 容器ID
2.docker exec -it 容器id bin/bash 方式进入将不会影响到别的终端
3.在镜像(或容器)中安装SSH Server(不推荐) http://www.oschina.net/translate/why-you-dont-need-to-run-sshd-in-docker?cmp
4.nsenter工具 http://blog.youkuaiyun.com/jpzhu16/article/details/51900987
获取镜像 docker pull 镜像名称 //从DockerHub获取镜像
查询镜像
docker search 镜像名称 //DockerHub按照镜像名称模拟查询
提交镜像
docker commit -m="test update" -a="xumin.liu" 969f xuemin/xuemin-image:v1
制作镜像
通过Dockerfile构建镜像
cat Dockerfile
FROM centos:6.7
MAINTAINER Fisher "fisher@sudops.com"
RUN /bin/echo 'root:123456' |chpasswd
RUN useradd runoob
RUN /bin/echo 'runoob:123456' |chpasswd
RUN /bin/echo -e "LANG=\"en_US.UTF-8\"" >/etc/default/local
EXPOSE 22
EXPOSE 80
CMD /usr/sbin/sshd -D
:6.7
MAINTAINER Fisher "fisher@sudops.com"
RUN /bin/echo 'root:123456' |chpasswd
RUN useradd runoob
RUN /bin/echo 'runoob:123456' |chpasswd
RUN /bin/echo -e "LANG=\"en_US.UTF-8\"" >/etc/default/local
EXPOSE 22
EXPOSE 80
CMD /usr/sbin/sshd -D
每一个指令都会在镜像上创建一个新的层,每一个指令的前缀都必须是大写的。
第一条FROM,指定使用哪个镜像源
RUN 指令告诉docker 在镜像内执行命令,安装了什么。。。
docker build 命令来构建一个镜像
docker build -t runoob/centos:6.7 .
-t runoob/centos:6.7 .
-t :指定要创建的目标镜像名
. :Dockerfile 文件所在目录,可以指定Dockerfile 的绝对路径
设置镜像标签
我们可以使用 docker tag 命令,为镜像添加一个新的标签。
docker tag 容器id runoob/centos:dev
边敲命令变学到这 心里对docker的使用有了个大概的认识,
现在有一个问题就是,自己做的docker如何保存,放在U盘中,或者放在DockerHub中
可参考:http://blog.youkuaiyun.com/opensure/article/details/46490749
今天就到这吧 改天继续2017-12-25 00:18:25