[关闭]
@GEEKO 2018-12-13T09:14:29.000000Z 字数 6133 阅读 436

Docker学习之路

Docker


常用命令

  1. "Mounts": [
  2. {
  3. "Name": "8827c361d103c1272907da0b82268310415f8b075b67854f27dbca0b59a31a1a",
  4. "Source": "/mnt/sda1/var/lib/docker/volumes/8827c361d103c1272907da0b82268310415f8b075b67854 f27dbca0b59a31a1a/_data",
  5. "Destination": "/var/lib/mysql",
  6. "Driver": "local",
  7. "Mode": "",
  8. "RW": true,
  9. "Propagation": ""
  10. } ]
 值得注意的是,虽然/var/lib/mysql没有在run的指令中出现,但其出现在了生成mysql:5.7镜像的Dockerfile中,所以即使在run时忘记使用volume,该目录依然能够从宿主机直接访问,官方真是用心良苦啊。另外,由于复用了mysql的所有数据,因此连接数据库用户名密码也和mysql一样,而不会是run时传入的参数,一切都和原来mysql中的一样。

Docker设置

修改Docker本地镜像与容器的存储位置的方法

  1. DOCKER_OPTS="-g /gkdata/docker"

docker常用命令

  1. docker run -t -i ubuntu /bin/bash
  1. docker run -it ubuntu bash
  1. docker stats

如果不想持续的监控容器使用资源的情况,可以通过 --no-stream 选项只输出当前的状态

  1. docker stats --no-stream
  1. docker inspect elasticsearch |grep IPAddress

安装镜像

mongodb

  1. mongo
  2. use admin
  3. db.createUser({user:"root",pwd:"root",roles:[{role:'root',db:'admin'}]}) //创建用户,此用户创建成功,则后续操作都需要用户认证
  4. exit

mysql

  1. docker run --name mysql \
  2. -p 3306:3306 \
  3. -v //gkdata/config/mysql/conf.d:/etc/mysql/conf.d \
  4. -v //gkdata/data/mysql:/var/lib/mysql \
  5. -v //gkdata/logs/mysql/:/var/log \
  6. -e MYSQL_ROOT_PASSWORD=123456 \
  7. --privileged=true \
  8. -d mysql
  1. docker run --name mysql -p 3306:3306 -v /var/mysql/data:/var/lib/mysql -v /var/mysql/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456 --privileged=true -d mysql

配置文件:my.conf

  1. [mysqldump]
  2. user=root
  3. password=123456
  4. [mysqld]
  5. max_allowed_packet=8M
  6. lower_case_table_names=1
  7. character_set_server=utf8
  8. max_connections=900
  9. max_connect_errors=600
  10. default-character-set=utf8
  1. 问题: mysql client does not support authentication protocol
  2. 解决方法:
  3. 1、进入容器打开数据库:mysql -h192.168.2.15 -p3306 -uroot -p
  4. 2、修改密码:alter user 'root'@'%' identified with mysql_native_password by '123456';
  1. 问题:authentication plugin 'caching_sha2_password' -navicat连接异常问题解决
  2. 解决方案:
  3. docker exec -it mysql bash
  4. mysql -h192.168.3.116 -p3306 -uroot -p
  5. ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '新密码';

redis

  1. docker run -p 6379:6379 --name redis -v /wdc/docker/redis/redis.conf:/etc/redis/redis.conf -v /wdc/docker/redis/data:/data -d --restart=always redis redis-server /etc/redis/redis.conf --appendonly yes --requirepass "Zhengbolove@621218%"
  2. redis-server appendonly yes : 在容器执行redis-server启动命令,并打开redis持久化配置
  3. requirepass your passwd :设置认证密码
  4. restart=always : docker启动而启动

ProGet

  1. 1docker network create proget
  2. 2
  3. docker run -d \
  4. -v /etc/localtime:/etc/localtime:ro \
  5. -v /home/jesn/docker/postgresql/db:/var/lib/postgresql/data \
  6. --net=proget --name=proget-postgres --restart=unless-stopped postgres:9.5
  7. 3
  8. docker run -d \
  9. -v /etc/localtime:/etc/localtime:ro \
  10. -v /home/jesn/docker/proget/packages:/var/proget/packages \
  11. -v /home/jesn/docker/proget/extensions:/var/proget/extensions -p 8059:80 \
  12. --net=proget --name=proget \
  13. --restart=unless-stopped inedo/proget:latest

InfluxDB

  1. docker run -d \
  2. -p 8083:8083 \
  3. -p 8086:8086 \
  4. -e ADMIN_USER="root" \
  5. -e INFLUXDB_INIT_PWD="123456"
  6. -v /home/jesn/docker/influxdb/:/data \
  7. --name influxdb \
  8. tutum/influxdb:latest

elasticsearch

  1. docker run -d --name elasticsearch \
  2. -v /wdc/docker/elasticsearch/data:/usr/share/elasticsearch/data \
  3. -v /wdc/docker/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
  4. -v /wdc/docker/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
  5. -e ES_JAVA_OPTS="-Xms256m -Xmx2g" \
  6. -p 9200:9200 -p 9300:9300 elasticsearch

elasticsearch.yml文件内容

  1. http.host: 0.0.0.0
  2. #Uncomment the following lines for a production cluster deployment
  3. #transport.host: 0.0.0.0
  4. #discovery.zen.minimum_master_nodes: 1

kibana

  1. docker run -d --name kibana -e ELASTICSEARCH_URL=http://192.168.3.116:9200 -p 5601:5601 kibana

logstash

  1. docker run -d --expose 5044 -p 5044:5044 --name logstash -v "$PWD":/config-dir logstash -f /config-dir/logstash.conf
  2. # 新建logstash.conf文件
  3. input {
  4. beats {
  5. port => 5044
  6. }
  7. }
  8. output {
  9. stdout {
  10. codec => rubydebug
  11. }
  12. elasticsearch {
  13. #填写实际情况elasticsearch的访问IP,因为是跨容器间的访问,使用内网、公网IP,不要填写127.0.0.1|localhost
  14. hosts => ["192.168.3.116:9200"]
  15. }
  16. }

filebeat

  1. docker run -v filebeat.yml:/filebeat.yml prima/filebeat
  1. filebeat.inputs:
  2. encoding: GB2312

consul

  1. ## 单节点部署
  2. docker run -d -p 8500:8500 -p 8300:8300 -h node1 --name consul-1 consul agent -server -bootstrap-expect=1 -node=node1 -client 0.0.0.0 -ui

jenkins

  1. FROM jenkins
  2. USER root
  3. #清除了基础镜像设置的源,切换成腾讯云的jessie源
  4. #使用非腾讯云环境的需要将 aliyun 改为 aliyun
  5. RUN echo '' > /etc/apt/sources.list.d/jessie-backports.list \
  6. && echo "deb http://mirrors.aliyun.com/debian jessie main contrib non-free" > /etc/apt/sources.list \
  7. && echo "deb http://mirrors.aliyun.com/debian jessie-updates main contrib non-free" >> /etc/apt/sources.list \
  8. && echo "deb http://mirrors.aliyun.com/debian-security jessie/updates main contrib non-free" >> /etc/apt/sources.list
  9. #更新源并安装缺少的包
  10. RUN apt-get update && apt-get install -y libltdl7 && apt-get update
  11. ARG dockerGid=999
  12. RUN echo "docker:x:${dockerGid}:jenkins" >> /etc/group
  13. # 安装 docker-compose 因为等下构建环境的需要
  14. curl -L "https://github.com/docker/compose/releases/download/1.22.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
  15. RUN chmod +x /usr/local/bin/docker-compose
  16. # docker-compose 安装
  17. # https://docs.docker.com/compose/install/#where-to-go-next
  18. # 测试docker-compose安装是否成功
  19. # docker-compose --version
  1. docker build -t mkm-jenkins .
  1. docker run --name jenkins -p 8085:8080 -p 50000:50000 -v /var/run/docker.sock:/var/run/docker.sock -v /usr/bin/docker:/usr/bin/docker -v /wdc/docker/jenkins/jenkins_home:/var/jenkins_home -d d1cf34ad7a7f

DockerUI

  1. docker run -it -d --name dockerUI -p 9500:9000 -v /var/run/docker.sock:/var/run/docker.sock docker.io/uifd/ui-for-docker
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注