echo 'DOCKER_OPTS="-b=bridge0"' >> /etc/default/docker

sudo docker run -i -t centos /bin/bash

brctl show

sudo docker run -i -t --rm --net=none base /bin/bash

1.进入root权限

sudo su

2.停止所有的container,这样才能够删除其中的images:

docker stop $(docker ps -a -q)

如果想要删除所有container的话再加一个指令:

docker rm $(docker ps -a -q)

3.查看当前有些什么images

docker images

4.删除images,通过image的id来指定删除谁

docker rmi <image id>

想要删除untagged images,也就是那些id为<None>的image的话可以用

docker rmi $(docker images | grep "^<none>" | awk "{print $2}")

要删除全部image的话

docker rmi $(docker images -q)

docker rm -f $(docker ps -a -q)

sudo docker inspect -f "{{ .Name }}" aed84ee21bde

docker run -d -P --name web --link db:db training/webapp python app.py

docker run --rm --name web2 --link db:db training/webapp env

cat /proc/sys/net/ipv4/ip_forward

如何修改 Data file 路径

遇到的第一个问题,则是:docker 的数据都放到哪里了?显然,上面的 docker info 给了我们答案: 在/var/lib/docker/ 下。由于种种神奇的原因,我们希望尝试 修改 docker 的数据存放目录。

编辑这个文件:vim /etc/sysconfig/docker,找到OPTIONS=--selinux-enabled -H fd://,修改为:OPTIONS=-g /mnt/docker0/data --selinux-enabled -H fd://。这样我们就成功的将 docker 目录修改成功了。

执行 systemctl restart docker ,再 docker info ,可以看到目录已经修改成功了。
如何使用国内的 docker 镜像源

考虑 DockerPool 这个 docker poll。

例如,我要下载 CentOS 7 的 docker 镜像,那么执行:

docker pull dl.dockerpool.com:5000/centos:centos7

镜像文件略微有点大,下得我心醉。在 DockerPoll Downloads 可以找到其它的镜像列表。

下载完成后,要把第三方 registry 的下载的文件打上 tag

docker tag dl.dockerpool.com:5000/centos:centos7 centos:centos7

如何清理 docker 容器

执行了一些简单的命令,比如docker run -t -i centos:centos7 ping baidu.com之后,再看 docker info ,发现 Containers 居然到了 4 。大惊,用 docker ps -a 查看后才知道,每次我用 docker run 的时候他都会新建一个 Container。试了下 docker rm ,一次只能删除一个。改用 docker rm $(docker ps -aq) ,成功删除它们。

Docker 配置文件位置

Docker 的配置文件可以设置大部分的后台进程参数,在各个操作系统中的存放位置不一致

在 ubuntu 中的位置是:/etc/default/docker

在 centos 中的位置是:/etc/sysconfig/docker

docker push 192.168.2.29:5000

docker tag 33cf1c0fe2ce 192.168.2.29:5000/centos:jackluo

docker run --name='gitlab' -it --rm -e 'GITLAB_PORT=10080' -e 'GITLAB_SSH_PORT=10022' -p 10022:22 -p 10080:80 -v /var/run/docker.sock:/run/docker.sock -v $(which docker):/bin/docker

username: root
password: 5iveL!fe

docker run --name=mysql -d \
  -v /opt/gitlab/mysql:/var/lib/mysql \
  sameersbn/mysql:latest

CREATE USER 'gitlab'@'%.%.%.%' IDENTIFIED BY 'password';
CREATE DATABASE IF NOT EXISTS `gitlabhq_production` DEFAULT CHARACTER SET `utf8` COLLATE `utf8_unicode_ci`;
GRANT ALL PRIVILEGES ON `gitlabhq_production`.* TO 'gitlab'@'%.%.%.%';

docker run --name=gitlab -d \
  -e 'DB_HOST=192.168.1.100' -e 'DB_NAME=gitlabhq_production' -e 'DB_USER=gitlab' -e 'DB_PASS=password' \
  -v /opt/gitlab/data:/home/git/data \
  sameersbn/gitlab:7.5.3

docker run --name=mysql -d \
  -e 'DB_NAME=gitlabhq_production' -e 'DB_USER=gitlab' -e 'DB_PASS=password' \
    -v /opt/mysql/data:/var/lib/mysql \
    sameersbn/mysql:latest

docker run --name=gitlab -P -d -v /data/gitlab/data:/home/git/data -v /data/gitlab/mysql:/var/lib/mysql sameersbn/gitlab

 --name是新生成的container的名字

  -d在后台运行这个container,也可以用-i,意思是交互式的运行container,用户可以看到输出,也可以输入

  -v把container里面的volumn映射到主机的存储,/opt/gitlab/data是主机的路径,/home/git/data是container里面的路径

  -P(大写)这个参数比较重要,是把所有container里面的端口都映射到主机上的随机端口,这样和主机在同一网络内的机器就可以访问container了。

  如果不想映射container里面所有端口,可以通过-p(小写)来进行单独的映射。

  这个命令是所有的命令中最重要的一个!(没有之一)

docker rm -f $(docker ps -a -q)

docker stop $(docker ps -a -q)

docker run \
  --name=gitlab_redis \
  -tid \
  sameersbn/redis:latest

docker run --name=gitlab_mysql \
  -tid \
  -e 'DB_NAME=gitlabhq_production' \
  -e 'DB_USER=gitlab' \
  -e 'DB_PASS=password' \
  -v /data/gitlab/mysql:/var/lib/mysql \
  sameersbn/mysql:latest

docker run \
  --name='gitlab' \
  -itd \
  --link gitlab_mysql:mysql \
  --link gitlab_redis:redisio \
  -e 'GITLAB_PORT=80' \
  -e 'GITLAB_SSH_PORT=22' \
  -e 'GITLAB_HOST=gitlab.example.com' \
  -v /var/run/docker.sock:/run/docker.sock \
  -v $(which docker):/bin/docker \
  -v /data/gitlab/data:/home/git/data \
  -v /data/gitlab/log:/var/log/gitlab \
  sameersbn/gitlab

docker run -p 22:22 -d \
  -e "SMTP_USER=gitlab@host.com" -e "SMTP_PASS=password" \
  -e "GITLAB_EMAIL=gitlab@host.com" -e "GITLAB_SUPPORT=gitlab@host.com" \
  -e "GITLAB_SIGNUP=true" \
  -e "GITLAB_HOST=gitlab.host.com" \
  -v /data/gitlab/data:/home/git/data \
  -v /data/gitlab/mysql:/var/lib/mysql \
  sameersbn/gitlab

docker inspect ec1f12439d91

docker rm -f $(docker ps -a -q)

docker run \
    --name=gitlab_mysql \
    -tid \
    -e 'DB_NAME=gitlabhq_production' \
    -e 'DB_USER=gitlab' \
    -e 'DB_PASS=password' \
    -v /data/gitlab/mysql:/var/lib/mysql \
    sameersbn/mysql:latest

MYSQL=$(docker run -tid  -e 'DB_USER=root' -e 'DB_PASS=admin' sameersbn/mysql)

docker run \
  --name=gitlab_redis \
  -tid \
  sameersbn/redis:latest

docker run \
    --name=gitlab_mysql \
    -tid \
    -e 'DB_NAME=gitlabhq_production' \
    -e 'DB_USER=gitlab' \
    -e 'DB_PASS=password' \
    -v /data/gitlab/mysql:/var/lib/mysql \
    sameersbn/mysql:latest

docker run \
    --name='gitlab' \
    -itd \
    --link gitlab_mysql:mysql \
    --link gitlab_redis:redisio \
    -e 'GITLAB_PORT=80' \
    -e 'GITLAB_SSH_PORT=22' \
    -e 'GITLAB_HOST=gitlab.example.com' \
    -v /var/run/docker.sock:/run/docker.sock \
    -v $(which docker):/bin/docker \
    -v /data/gitlab/data:/home/git/data \
    -v /data/gitlab/log:/var/log/gitlab \
    sameersbn/gitlab:latest

docker run \
    --name='gitlab' \
    -itd \
    --link gitlab_mysql:mysql \
    --link gitlab_redis:redisio \
    -e 'GITLAB_PORT=80' \
    -e 'GITLAB_SSH_PORT=22' \
    -e 'LDAP_ENABLED=true' \
    -e 'LDAP_HOST=192.168.1.1' \
    -e 'LDAP_PORT=389' \
    -e 'LDAP_UID=sAMAccountName' \
    -e 'LDAP_METHOD=plain' \
    -e 'LDAP_BIND_DN=test@example.com' \
    -e 'LDAP_PASS=passwd' \
    -e 'LDAP_BASE=OU=example_users,DC=example-family,DC=com' \
    -e 'LDAP_ACTIVE_DIRECTORY=true' \
    -e 'LDAP_ALLOW_USERNAME_OR_EMAIL_LOGIN=false' \
    -e 'GITLAB_HOST=gitlab.example.com' \
    -e 'SMTP_ENABLED=true' \
    -e 'SMTP_DOMAIN=example.com' \
    -e 'SMTP_HOST=192.168.1.2' \
    -e 'SMTP_PORT=25' \
    -e 'SMTP_STARTTLS=false' \
    -v /var/run/docker.sock:/run/docker.sock \
    -v $(which docker):/bin/docker \
    -v /opt/gitlab/data:/home/git/data \
    -v /opt/gitlab/log:/var/log/gitlab \
    sameersbn/gitlab:latest

docker 练习的更多相关文章

  1. docker——容器安装tomcat

    写在前面: 继续docker的学习,学习了docker的基本常用命令之后,我在docker上安装jdk,tomcat两个基本的java web工具,这里对操作流程记录一下. 软件准备: 1.jdk-7 ...

  2. Docker笔记一:基于Docker容器构建并运行 nginx + php + mysql ( mariadb ) 服务环境

    首先为什么要自己编写Dockerfile来构建 nginx.php.mariadb这三个镜像呢?一是希望更深入了解Dockerfile的使用,也就能初步了解docker镜像是如何被构建的:二是希望将来 ...

  3. Docker 第一篇--初识docker

    已经多年不写博客, 看完<晓松奇谈>最后一期猛然觉醒, 决定仔细梳理下自己这几年的知识脉络. 既然决定写, 那么首先就从最近2年热门的开源项目Docker开始.Docker 这两年在国内很 ...

  4. 在docker中运行ASP.NET Core Web API应用程序(附AWS Windows Server 2016 widt Container实战案例)

    环境准备 1.亚马逊EC2 Windows Server 2016 with Container 2.Visual Studio 2015 Enterprise(Profresianal要装Updat ...

  5. docker for mac 学习记录

    docker基本命令 docker run -d -p 80:80 --name webserver nginx 运行容器并起别名 docker ps 展示目前启动的容器 docker ps -a 展 ...

  6. scrapy爬虫docker部署

    spider_docker 接我上篇博客,为爬虫引用创建container,包括的模块:scrapy, mongo, celery, rabbitmq,连接https://github.com/Liu ...

  7. [原][Docker]特性与原理解析

    Docker特性与原理解析 文章假设你已经熟悉了Docker的基本命令和基本知识 首先看看Docker提供了哪些特性: 交互式Shell:Docker可以分配一个虚拟终端并关联到任何容器的标准输入上, ...

  8. 开发者的利器:Docker 理解与使用

    困扰写代码的机器难免会被我们安装上各种各样的开发工具.语言运行环境和引用库等一大堆的东西,长久以来不仅机器乱七八糟,而且有些相同的软件还有可能会安装不同的版本,这样又会导致一个项目正常运行了,却不小心 ...

  9. 使用python自动生成docker nginx反向代理配置

    由于在测试环境上用docker部署了多个应用,而且他们的端口有的相同,有的又不相同,数量也比较多,在使用jenkins发版本的时候,不好配置,于是想要写一个脚本,能在docker 容器创建.停止的时候 ...

  10. 微服务与Docker介绍

    什么是微服务 微服务应用的一个最大的优点是,它们往往比传统的应用程序更有效地利用计算资源.这是因为它们通过扩展组件来处理功能瓶颈问题.这样一来,开发人员只需要为额外的组件部署计算资源,而不需要部署一个 ...

随机推荐

  1. golang channel basic

    package mainimport ( "fmt" "math/rand" "time")func main() { rand.Seed( ...

  2. js 节点 document html css 表单节点操作

    js 节点 document html css 表单节点操作 节点操作:访问.属性.创建 (1)节点的访问:firstChild.lastChild.childNodes.parentChild(父子 ...

  3. C语言中如何将二维数组作为函数的参数传递

    今天写程序的时候要用到二维数组作参数传给一个函数,我发现将二维数组作参数进行传递还不是想象得那么简单里,但是最后我也解决了遇到的问题,所以这篇文章主要介绍如何处理二维数组当作参数传递的情况,希望大家不 ...

  4. 用c语言写一个函数把十进制转换成十六进制(转)

    #include "stdio.h" int main() { int num=0;int a[100]; int i=0; int m=0;int yushu; char hex ...

  5. DOM兼容

    -firstChild  firstElementChild var oFirst = oUl.firstChild || oUl.firstElementChild; -lastChild   la ...

  6. ERROR Shell: Failed to locate the winutils binary in the hadoop binary path

    文章发自:http://www.cnblogs.com/hark0623/p/4170172.html  转发请注明 14/12/17 19:18:53 ERROR Shell: Failed to ...

  7. 关于Vector中的元素中含有指针成员的情况

    对于容器,当容器的各个元素为类类型,且该类类型中含有指针成员时: 如果类类型的析构函数中包含了对指针变量指向内存的释放操作,则在利用clear()函数删除容器所有元素时,会自动调用类的析构函数,自动实 ...

  8. ASP.NET中Url编码解码

    今天遇到Url编码解码的问题,纠结了一天的时间,结果上网一查才发现太二了我们. 同事写的代码把url用HttpUtility.UrlEncode编码和解码了,本地测试没有问题,部署到服务器上就提示转码 ...

  9. Netty 入门示例

    服务端代码示例 import io.netty.bootstrap.ServerBootstrap; import io.netty.channel.*; import io.netty.channe ...

  10. POJ 2503 字典树

    题目链接:http://poj.org/problem?id=2503 题意:给定一个词典,输入格式为[string1' 'string2]  意思是string2的值为string1. 然后给定一波 ...