这几天在学习docker的一些东西, 我理解的docker其实就是虚拟机, 只是里面实现的形式不一样, 应为现在刚接触,所以先熟悉怎么使用吧 , 后续再去看看底层的东西.
用到一些基本命令, 在此记录一下.
unbuntu安装 docker 这个是直接网上来的, 不过以前也是这么安装的
sudo apt-get purge docker.io
curl -s https://get.docker.io/ubuntu/ | sudo sh
sudo apt-get update
sudo apt-get install lxc-docker
sudo apt-get purge docker.io
curl -s https://get.docker.io/ubuntu/ | sudo sh
sudo apt-get update
sudo apt-get install lxc-docker
启动和关闭 docker 服务
/etc/init.d/docker start
root@local:/data/app/test# /etc/init.d/docker start
docker start/running, process 17147
root@local:/data/app/test# /etc/init.d/docker stop
docker stop/waiting
服务启动以后就可以获取获取镜像了可以先拉取一个ubuntu镜像, 命令和 git 的非常像
docker pull ubuntu:14.04 // 前面的是镜像名称, 后面的是tag 其实也是版本号
拉倒本地以后就可以通过
docker images 查看本地的镜像列表了
把镜像跑起来
docker run -it ubuntu:14.04 以root用户运行ubuntu
然后可以在里面安装各种软件,nginx 啊, go啊 ,php啊 , 好像python是自带的python3
退出系统就exit 或则 ctrl+d
注意首次在docker ubuntu里面安装软件要更新 apt-get , 不然可能任何软件也找不到,
访问内部 的docker源 , 私有源需要添加IP来区分
sudo nohup docker -d --insecure-registry 10.237.36.179:5000 >/dev/null 2>&1 &
访问宿主机子 可以通过端口 映射+目录映射的方式
docker run -itd -p 2045:22 -p 80:8080 -p 8080:8080 -v /data/vhost:/home/work/app/nginx/conf/vhosts --dns=10.237.39.2 -v /data:/home/work/data/www/ --name website 10.237.36.179:5000/develop:centos6.6 /usr/bin/supervisord
稍微解释一下
-itd : 已守护进程方式运行-p : 端品映射, 80( 开发机端口 ) : 8080 ( 容器端口)
-v : 目录映射,/data/vhost (开发机目录) : /home/work/app/nginx/conf/vhosts (容器目录)
--dns : 默认DNS解析,一般指定为10.237.39.2
--add-host : 默认的host绑定
--name : 容器名称或标签,可以在启、停、删除容器时、与其它容器进行连接时使用
10.236.115.5:5000/develop:centos6.6 镜像名称
/usr/bin/supervisord 容器创建 后第一个运行的程序,小米网基础环境镜像的服务是使用supervisord进行管理的,需第一个启动它8080:nginx服务端口9000:php-fpm服务端口22:ssh服务端口 15000:web 终端入口
当然在nginx里要添加相应的配置
配置完了以后, 可以通过ssh来登陆 访问 ssh root@127.0.0.1 -p 2045
然后查看系统docker进程
docker ps -a
卸载某个镜像
docker drop 镜像ID(image_id)
查看镜像列表
$ docker images
拉取镜像
$ docker pull 仓库地址:ip/tag名称
推送镜像
$ docker push 仓库地址:ip/tag名称
删除镜像
$ docker rmi tag名称
容器
查看容器列表
$ docker ps -a
创建容器
$ docker run -p -v -name 镜像名称 运行程序
删除容器
$ docker rm -f 镜像名称或唯一hash值
停止、启动容器
$docker stop 容器名称$docker start 容器名称