Docker基础命令学习总结

一、Docker简介

  • Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

  • Docker下载地址 Docker官网地址 下载docker组件 wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos 安装docker yum -y install docker-ce-18.06.1.ce-3.el7 启动docker systemctl enable docker && systemctl start docker 查看docker版本 docker --version

  • 加速器配置 vi /etc/docker/daemon.json { "registry-mirrors": [ "https://dockerhub.azk8s.cn", "https://hub-mirror.c.163.com" ] } sudo systemctl daemon-reload sudo systemctl restart docker

    • docker 开启远程服务 vi /usr/lib/systemd/system/docker.service #找打ExecStart= 在它下边新增下列内容 ExecStart= ExecStart=/usr/bin/dockerd -H unix:///var/run/docker.sock -H tcp://0.0.0.0:5375 #加载docker systemctl daemon-reload #重启docker systemctl restart docker
  • 更多资料,请查阅官网

二、Docker的基本命令

1.Docker环境相关

  • systemctl start docker 启动docker
  • docker command --help查看帮助
  • docker network ls 查看网络

2.Docker镜像相关

  • docker search imagename 搜索镜像
  • docker pull imagename拉取镜像
  • docker images 查看镜像
  • docker rmi imagename 删除镜像
  • docker run -p hostPort:containerPort --name containerName -d imagename:lastest 启动镜像
  • docker rmi --force $(docker images | grep doss-api | awk '{print $3}')删除doss-api镜像
  • docker commit containerName/containerId containerName打包镜像
  • docker run -v /home:/docker/home -d image-name 挂载本地文件夹

3.Docker容器相关

  • docker ps查看正在运行的容器
  • docker ps -a查看所有容器
  • docker start containerName/containerId 启动容器
  • docker stop containerName/containerId 关闭容器
  • docker restart containerName/containerId 重启容器
  • docker rm –f containerName/containerId 删除容器
  • docker port con_id 查看容器端口映射
  • docker exec -it 容器ID /bin/bash 进入容器
  • docker logs containerName/containerId 查看容器日志
  • docker logs -f containerName/containerId 查看容器实时日志
  • docker rm $(docker ps -aq) 删除所有容器

三、Docker启动服务

1.Docker启动STF

拉取镜像

  • docker pull openstf/stf:latest
  • docker pull sorccu/adb:latest
  • docker pull rethinkdb:latest
  • docker pull openstf/ambassador:latest
  • docker pull nginx:latest 启动服务
  • docker run -d --name rethinkdb -v /srv/rethinkdb:/data --net host rethinkdb rethinkdb --bind all --cache-size 8192 --http-port 8090 启动rethink数据库
  • docker run -d --name adbd --privileged -v /dev/bus/usb:/dev/bus/usb --net host sorccu/adb:latest 启动adb
  • docker run -d --name stf --net host openstf/stf stf local --public-ip yourip --allow-remote启动stf(允许远程)

2.Docker启动ELK

  • docker pull sebp/elk 拉取镜像
  • docker run --name elk -d -e LOGSTASH_START=0 -p 5601:5601 -p 9200:9200 -p 5044:5044 -d registry.docker-cn.com/sebp/elk 启动服务

3.gitlab搭建

  • docker run --detach \ --hostname gitlab.example.com \ --publish 10443:443 --publish 10080:80 --publish 10022:22 \ --name gitlab \ --restart always \ --volume ~/gitlab/config:/etc/gitlab \ --volume ~/gitlab/logs:/var/log/gitlab \ --volume ~/gitlab/data:/var/opt/gitlab \ gitlab/gitlab-ce:latest

    4.sonarqube的搭建

  • docker run --name mysql-sonar -e MYSQL_ROOT_PASSWORD=mysql -e MYSQL_DATABASE=sonar -e MYSQL_USER=sonar -e MYSQL_PASSWORD=sonar -v /path/to/local/mysql/dir:/var/lib/mysql -p 33066:3306 -d mysql:latest
  • docker run -d --name sonarqube -p 9000:9000 -p 9092:9092 --link=mysql-sonar:mysql -e SONARQUBE_JDBC_USERNAME=sonar -e SONARQUBE_JDBC_PASSWORD=sonar -e SONARQUBE_JDBC_URL="jdbc:mysql://mysql:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false" sonarqube
Written on September 28, 2019