docker 練習

 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


python

相關文章
相關標籤/搜索