Docker常见操作备忘

mtain 2016年02月23日 311次浏览

镜像管理

  1. 查看镜像列表 docker images  
  2. 拖取镜像 docker pull 镜像地址 如:docker pull daocloud.io/library/centos  
  3. 镜像导出至tar文件 docker save -o ubuntu_14.04.tar ubuntu:14.04  
  4. tar文件导入到镜像 docker load --input ubuntu_14.04.tar
  5. 镜像名称修改 docker tag imageid name:tag  
  6. 使用Dockerfile

创建镜像

  1. 新建文件夹nginx
  2. 在文件夹中创建Dockerfile,并编辑相关指令
  3. 创建镜像 在文件夹中执行sudo docker build -t own/nginx . (注意“.”)
  4. 通过sudo docker images 查看创建的镜像
  5. Dockerfile解决容器时区问题: RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone
  6. 删除镜像 docker rmi 镜像名称或ID
  7. 删除所有none镜像 dcoker rmi $(docker images | awk ’/^/{print $3}’)

容器管理

  1. 创建运行容器
docker run --name tomcat-1 -d -p 7001:8080 --privileged=true -v /data/web:/tomcat/webapps/ 19c8c777a0bc
docker run --name centos -d -i -t daocloud.io/library/centos /bin/bash
-d 后台运行 --privileged=true 给容器添加特权 解决数据卷访问权限问题
  1. 查看容器ipdocker inspect ssh1
  2. 查看所有的容器docker ps -al
  3. 容器启动停止删除docker start/stop/rm容器名称或ID
  4. 导出容器 如果要导出本地某个容器,可以使用 docker export 命令,导出容器快照到本地文件。
$ sudo docker ps -a
$ sudo docker export 7691a814370e > ubuntu.tar
  1. 导入容器快照 可以使用 docker import 从容器快照文件中再导入为镜像,例如
$ cat ubuntu.tar | sudo docker import - test/ubuntu:v1.0
$ sudo docker images
  1. 保存对容器的修改 docker commit 689 learn/ping 689为容器ID 一般用开始的三至个字母即可匹配
  2. 容器时间问题 docker run -d -v /etc/localtime:/etc/localtime --rm -p 8888:8080 tomcat:latest

常用镜像

PHP+Apache环境镜像
docker pull index.tenxcloud.com/tenxcloud/php docker run --name php -d -p 80:80 --privileged=true -v /data/php/www/:/var/www/html index.tenxcloud.com/tenxcloud/php

Java
docker pull java:8-jre

gitlab环境镜像
docker pull docker.io/gitlab/gitlab-ce docker run --detach  --hostname xxx.com  --publish 443:443  --publish 80:80  --publish 22:22  --name gitlab  --restart always  --volume /data/docker/gitlab-ce/config:/etc/gitlab  --volume /data/docker/gitlab-ce/data:/var/log/gitlab  --volume /data/docker/gitlab-ce/logs:/var/opt/gitlab  gitlab/gitlab-ce:latest
说明文档:http://doc.gitlab.com/omnibus/docker/

其它

seagull 实现图形话管理
docker 项目地址:https://github.com/tobegit3hub/seagull
使用方法 seagull部署放置在一个容器中即可使用,命令如下:
docker run -d -p 10086:10086 -v /var/run/docker.sock:/var/run/docker.sock tobegit3hub/seagull
浏览器访问 http://ip:10086

允许http提交拉取镜像 修改/usr/lib/systemd/system/docker.service
在ExecStart后面增加参数--insecure-registry 192.168.2.29:5000
提交镜像时docker login http://192.168.2.29:5000 docker tag mysql 192.168.2.29:5000/mysql docker push 192.168.2.29:5000/mysql