DOCKER 常用参数说明
-d, --detach=false # 后台运行容器,并返回容器ID;
-i, --interactive=false # 以交互模式运行容器,通常与 -t 同时使用;
-t, --tty=false # 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
-u, --user="" # 指定容器的用户
-a, --attach=[] # 登录容器(必须是以docker run -d启动的容器)
-w, --workdir="" # 指定容器的工作目录
-c, --cpu-shares=0 # 设置容器CPU权重,在CPU共享场景使用
-e, --env=[] # 指定环境变量,容器中可以使用该环境变量
-m, --memory="" # 指定容器的内存上限
-P, --publish-all=false # 指定容器暴露的端口
-p, --publish=[] # 指定容器暴露的端口
-h, --hostname="" # 指定容器的主机名
-v, --volume=[] # 给容器挂载存储卷,挂载到容器的某个目录
--volumes-from=[] # 给容器挂载其他容器上的卷,挂载到容器的某个目录
--cap-add=[] # 添加权限,权限清单详见:http://linux.die.net/man/7/capabilities
--cap-drop=[] # 删除权限,权限清单详见:http://linux.die.net/man/7/capabilities
--cidfile="" # 运行容器后,在指定文件中写入容器PID值,一种典型的监控系统用法
--cpuset="" # 设置容器可以使用哪些CPU,此参数可以用来容器独占CPU
--device=[] # 添加主机设备给容器,相当于设备直通
--dns=[] # 指定容器的dns服务器
--dns-search=[] # 指定容器的dns搜索域名,写入到容器的/etc/resolv.conf文件
--entrypoint="" # 覆盖image的入口点
--env-file=[] # 指定环境变量文件,文件格式为每行一个环境变量
--expose=[] # 指定容器暴露的端口,即修改镜像的暴露端口
--link=[] # 指定容器间的关联,使用其他容器的IP、env等信息
--lxc-conf=[] # 指定容器的配置文件,只有在指定--exec-driver=lxc时使用
--name="" # 指定容器名字,后续可以通过名字进行容器管理,links特性需要使用名字
--net="bridge" # 容器网络设置:
bridge # 使用docker daemon指定的网桥
host # 容器使用主机的网络
container:NAME_or_ID > # 使用其他容器的网路,共享IP和PORT等网络资源
none # 容器使用自己的网络(类似--net=bridge),但是不进行配置
--privileged=false # 指定容器是否为特权容器,特权容器拥有所有的capabilities
--restart="no" # 指定容器停止后的重启策略:
no # 容器退出时不重启
on-failure # 容器故障退出(返回值非零)时重启
always # 容器退出时总是重启
--rm=false # 指定容器停止后自动删除容器(不支持以docker run -d启动的容器)
--sig-proxy=true # 设置由代理接受并处理信号,但是SIGCHLD、SIGSTOP和SIGKILL不能被代理
容器生命周期管理
容器操作
容器rootfs命令
镜像仓库
本地镜像管理
Docker 实例
- Docker 安装 Nginx
- Docker 安装 PHP
- Docker 安装 MySQL
- Docker 安装 Tomcat
- Docker 安装 Python
- Docker 安装 Redis
- Docker 安装 MongoDB
- Docker 安装 Apache
info|version
更换容器存储位置
vi /etc/sysconfig/docker
OPTIONS='**--graph="/home/docker**" --selinux-enabled --log-driver=journald --signature-verification=false'
然后 systemctl daemon-reload 重载
查看容器信息
//查看容器信息
docker inspect 容器ID
//查看容器IP
docker inspect 容器ID | grep IPAddress
前台启动系统
- centos
docker run -it --rm centos:7 bash
服务
- Elasticsearch
docker run -d -p 9200:9200 -v "/opt/elasticsearch/data":/usr/share/elasticsearch/data \
--name elasticsearch \
--restart=always \
deploy/elasticsearch
- PHP
如果宿主机使用 nginx , 使用端口连接php服务 , PHP 的配置文件(php-fpm.d/www.conf) 记得:
- listen.allowed_clients = 127.0.0.1 注释,保持默认值 any
- listen = 127.0.0.1:9000 修改为 listen = [::]:9000
然后使用 --expose 9000 暴露容器端口即可
- Jenkins
注意 /opt/jenkins/jenkins_home 目录要先 chown -R 1000 /opt/jenkins/jenkins_home
chown -R 1000 /opt/jenkins/jenkins_home
docker run -itd -p 8086:8080 -p 50000:50000 --name jenkins \
-v /opt/jenkins/jenkins_home:/var/jenkins_home \
-v /var/www:/var/www \
--restart=always docker.io/jenkins
- thumbor
docker run -it --rm --name thumbor \
-v /opt/thumbor/app:/usr/src/app \
-v /opt/thumbor/docker-entrypoint.sh:/docker-entrypoint.sh \
-p 8888:8888 docker.io/apsl/thumbor
- tesseract
$ alias tesseract='docker run --rm -v `pwd`:/work -w /work vimagick/tesseract'
$ tesseract myscan.png out
$ cat out.txt
- tesseract 训练
- node chat
yum install -y screen
screen -S chat -dm docker run -it --rm -p 9504:3000 --name demo_chat \
-v /var/www/nodejs:/var/www/nodejs \
-w /var/www/nodejs node:5.7 \
node /var/www/nodejs/server.js
- gitlab
docker run -d -p 10022:22 -p 8443:443 -p 8080:80 --name gitlab --privileged=true \
--restart unless-stopped \
-v /data/docker-data/gitlab-ce/etc:/etc/gitlab \
-v /data/docker-data/gitlab-ce/data:/var/opt/gitlab \
--restart=always \
192.168.1.220:5000/gitlab
- redmine
docker run --rm -p 8085:3000 --name redmine \
-v /opt/redmine/plugins:/usr/src/redmine/plugins \
-v /opt/redmine/plugin_assets:/usr/src/redmine/public/plugin_assets \
-v /opt/redmine/files:/usr/src/redmine/files \
-v /opt/redmine/sqlite:/usr/src/redmine/sqlite hub.c.163.com/library/redmine
- redis
docker run -d --name redis -p 6379:6379 --restart=always docker.io/redis
- cassandra
#主机
docker run -itd -v /data/cassandra:/var/lib/cassandra \
-e CASSANDRA_BROADCAST_ADDRESS=本机IP -p 7000:7000 \
--restart=always --name some-cassandra docker.io/cassandra
#客机
docker run -itd -e CASSANDRA_BROADCAST_ADDRESS=本机IP \
-p 7000:7000 -e CASSANDRA_SEEDS=主IP --restart=always \
--name some-cassandra docker.io/cassandra