查询可用镜像

docker search 镜像名称关键字

# 例如
docker search nginx

也可以在https://hub.docker.com进行查找

更新镜像源

修改/etc/docker/daemon.json文件(如果没有此文件就创建一个),添加内容如下

{
 "registry-mirrors": ["http://hub-mirror.c.163.com"]
}

可选源地址:

  1. Docker中国区官方镜像:https://registry.docker-cn.com
  2. 网易:http://hub-mirror.c.163.com
  3. ustc:https://docker.mirrors.ustc.edu.cn
  4. 中国科技大学:https://docker.mirrors.ustc.edu.cn

我用网易下载速度还阔以。

获取镜像

docker pull 镜像名称

# 例如
docker pull nginx

启动

docker run -it 镜像名称

目前常用的启动命令

## 启动一个rabbitmq
docker run -it \
--name rabbitmq \
--rm \
-p 5672:5672 \
-p 15672:15672 \
rabbitmq:3-management

## 启动一个redis
docker run -d \
-p 6379:6379 \
redis

## 启动一个nacos
docker run -d \
--name nacos \
-e MODE=standalone \
-p 8848:8848 nacos/nacos-server

## 启动一个elasticsearch
docker run -d \
--name elasticsearch \
--net somenetwork \
-p 9200:9200 \
-p 9300:9300 \
-e "discovery.type=single-node" \
elasticsearch:tag

docker run -d \
-p 9200:9200 \
-p 5601:5601 \
nshou/elasticsearch-kibana

## 启动一个nginx,并将宿主机目录与容器目录建立关联
docker run -d \
--name nginx \
-p 80:80 \
-v /home/docker-nginx/nginx.conf:/etc/nginx/nginx.conf \
-v /home/docker-nginx/log:/var/log/nginx \
-v /home/docker-nginx/conf.d/default.conf:/etc/nginx/conf.d/default.conf \
nginx

参数说明

  1. -e: 或者–env,设置环境变量
  2. –name: 指定容器名称
  3. -d: 后台运行容器,并返回容器ID
  4. -i: 以交互模式运行容器,通常与 -t 同时使用
  5. -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用
  6. -p: 指定端口映射,格式为:主机(宿主)端口:容器端口
  7. –rm:退出时自动清理容器内部的文件系统
  8. -v:挂载宿主机的一个目录,冒号":"前面的目录是宿主机目录,后面的目录是容器内目录(容器目录不可以为相对路径)。
  9. –restart:可选值:
  1. no:容器退出时,不重启容器
  2. on-failure:只有在非0状态退出时才从新启动容器。还可指定Docker重新启动容器的最大次数。默认情况下,Docker将尝试永远重新启动容器。 docker run --restart=on-failure:10
  3. always:无论退出状态是如何,都重启容器
  4. 如果创建时未指定–restart=always,则可通过update命令更新:docker update --restart=always [容器名称]

镜像操作

# 镜像列表
docker images

# 查看镜像信息
docker inspect 镜像ID

# 删除镜像(慎用)
docker rmi 镜像ID

容器操作

# 容器列表
docker ps 
# 容器列表(包括停止的容器)
docker ps -a

# 查看容器端口
docker port 容器ID

# 启动一个或多个已经被停止的容器
docker start 容器ID

# 停止一个运行中的容器
docker stop 容器ID

# 重启容器
docker restart 容器ID

# 进入容器
docker exec -it 容器ID /bin/bash

# 复制本地文件到容器
docker cp /home/img_666.jpg 容器ID:/usr/local/src

# 删除容器
docker rm 容器ID

run和start的区别

  1. run:相当于执行了两步操作:将镜像放入容器中(docker create),然后将容器启动,使之变成运行时容器(docker start)。
  2. start:启动已存在的镜像。即:使用这个命令时,必须知道此容器的ID,或容器的名字。可使用docker ps查找已经创建的容器信息。