Docker

Docker命令

Posted by Sun8min on May 11, 2019

Docker


安装准备

内核升级


镜像修改为国内源

/etc/docker/daemon.json 中写入如下JSON内容

{
  "registry-mirrors": [
    "https://registry.docker-cn.com"
  ]
}

再重新启动服务

systemctl restart docker

容器镜像相关命令

查看帮助

docker images --help

查询镜像仓库的镜像

docker search <image name>

下载镜像

docker pull <image name>

查看本地已有镜像

docker images 

删除镜像

docker rmi <image name>

容器相关命令

查看帮助

docker --help

容器创建并运行(如果容器镜像不存在,会自动下载镜像)

docker run -dit --name mysql -p 3306:3306 -v /etc/my.cnf:/etc/mysql/my.cnf -v /data/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123123 --restart=always  mysql
# 对容器内存限制
-m 450M --memory-swap=-1 --memory-reservation 250M

## 相关解释:
-dit: 后台以交互模式运行容器,并为容器重新分配一个伪输入终端,创建成功后返回容器ID;
--name <name>: 容器别名<name>
-p <host port>: <container port> 端口映射,格式为:主机(宿主)端口:容器端口
-v: 主机(宿主)目录映射到容器目录,格式为:主机(宿主)
-e: 容器环境定义变量,需要看具体的容器
--restart=always:如果容器挂掉了,重启它

查看正在运行的容器

docker ps

查看所有容器

docker ps -a

停止容器

docker stop <container name>

启动容器

docker start <container name>

重启容器

docker restart <container name>

容器销毁

docker rm -f <container name>

## 相关解释:
-f: 表示强制,即使容器正在运行

查看容器日志

## 查看最后1000行日志,并持续打印日志
docker logs -f --tail 1000 <container name>
## 查看指定时间日志,可能会有时区差,需要加8小时
docker logs --since '2019-05-08T00:00:00' --until '2019-05-09T05:32:15' <container name>
## 查看容器日志命令帮助
docker logs --help

## 相关解释:
-f: 表示持续打印日志
--tail <lines>: 表示输出日志的行数
--since 'yyyy-MM-ddTHH:mm:ss': 从指定时间开始(注意时间格式含T)
--until 'yyyy-MM-ddTHH:mm:ss': 到指定时间结束(注意时间格式含T)

查看容器详情

## 查看所有信息
docker inspect <container name>
## 查看指定信息,例如查看所有容器ip
docker inspect -f '{{.Name}} - {{ .NetworkSettings.IPAddress }}' $(docker ps -aq)
## 查看容器详情命令帮助
docker inspect --help

进入容器

docker exec -it <container name> bash

退出容器

ctrl + D

容器安装示例

## 安装mysql容器
docker run -dit --name mysql -p 3306:3306 -v /etc/my.cnf:/etc/mysql/my.cnf -v /data/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123123 --restart=always  mysql
## 安装redis容器
docker run -dit --name redis -p 6379:6379 -v /etc/redis/redis.conf:/etc/redis/redis.conf redis redis-server /etc/redis/redis.conf
## 安装consul容器
docker run -dit --name consul -p 8500:8500 -h node consul
## 安装hystrix容器(服务调用监控)
docker run -dit --name hystrix -p 7010:7979 kennedyoliveira/hystrix-dashboard
## 安装zipkin容器(链路跟踪)
docker run -dit --name zipkin -p 9411:9411 openzipkin/zipkin
## 安装motan-manager容器(服务治理)
docker run -dit --name motan-manager -p 7001:8080 --link consul:consul_ip -v /opt/docker_files/motan-manager:/opt java java -jar /opt/motan-manager.jar
## 安装maven容器
docker run -i --rm -v /opt/docker_files/maven:/root/.m2 -v $PWD:/usr/src/mymaven -w /usr/src/mymaven maven
## 安装jenkins容器
docker run -dit --name jenkins -p 9999:8080 -v /opt/docker_files/jenkins:/var/jenkins_home -v /var/run/docker.sock:/var/run/docker.sock -v /usr/bin/docker:/usr/bin/docker -v /lib64/libltdl.so.7:/usr/lib/libltdl.so.7 jenkins
## 安装nginx容器
docker run -dit --name nginx -p 80:80 -p 443:443 -v /opt/docker_files/nginx/www:/www -v /opt/docker_files/nginx/conf:/etc/nginx -v /opt/docker_files/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /opt/docker_files/nginx/logs:/wwwlogs nginx
## 安装workpress容器
docker run -dit --name wordpress -p 8888:80 --link mysql:mysql --env WORDPRESS_DB_PASSWORD=123123 -v /opt/docker_files/wordpress:/var/www/html wordpress
## 安装elasticsearch容器
docker run -dit --name es -p 6200:9200 -v /opt/docker_files/es/data:/usr/share/elasticsearch/data -v /etc/localtime:/etc/localtime -v /opt/docker_files/es/conf/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml hub.c.163.com/library/elasticsearch:5.5.2
## 安装elasticsearch-head容器
docker run -dit --name es-head -p 6100:9100 -v /etc/localtime:/etc/localtime -v /opt/docker_files/es-head-js/app.js:/usr/src/app/_site/app.js mobz/elasticsearch-head:5
## 安装logstash容器
docker run -dit --name logstash --link es:es-ip -v /etc/localtime:/etc/localtime -v /opt/docker_files/logstash/mysql:/var/lib/logstash/mysql hub.c.163.com/library/logstash:5.5.2 -f /var/lib/logstash/mysql/mysql.conf
## 安装frps容器
docker run -dit --name frps -v /opt/docker_files/frp:/opt/frp -p 180:80 -p 1443:443 -p 7000:7000 ubuntu bash -c "cd /opt/frp && ./frps -c ./frps.ini"