主要是总结日常开发中常用的docker的命令
Docker介绍
- 
Docker 是一个开源的应用容器引擎。 
- 
Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的Linux 机器上,也可以实现虚拟化。 
- 
容器是完全使用沙箱机制(类似iPhone的app),更重要的是容器性能开销极低. 
- 
容器共享机器的操作系统内核,因此每个应用程序不需要操作系统,从而提高服务器效率并降低服务器和许可成本, 提供业界最强的默认隔离能力. 

Docker组织架构图

Docker的安装
mac版本安装
- 通过官网 www.docker.com/get-started选择对应的版本进行安装
Linux环境安装
- 安装yum-utils
 yum install -y yum-utils device-mapper-persistent-data lvm2
复制代码- 为yum源添加docker仓库位置
 yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
复制代码- 安装docker服务
 yum install docker-ce
复制代码- 启动docker服务
 systemctl start docker
复制代码Docker镜像常用命令
搜索镜像 docker search
 ➜  dockerImages docker search nginx
NAME                               DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
nginx                              Official build of Nginx.                        14999     [OK]       
jwilder/nginx-proxy                Automated Nginx reverse proxy for docker con…   2033                 [OK]
richarvey/nginx-php-fpm            Container running Nginx + PHP-FPM capable of…   814                  [OK]
复制代码下载镜像 docker pull
查看镜像的历史版本 hub.docker.com/
docker search命令只能查找出是否有该镜像,不能找到该镜像支持的版本.需要进入docker官网进行查看(hub.docker.com/)

查看镜像的历史版本

进行镜像的下载操作
docker pull mysql:8.0.25
复制代码列出镜像 docker images
➜  dockerImages docker images
REPOSITORY            TAG         IMAGE ID       CREATED         SIZE
redis                 5           59fbd83692ee   4 weeks ago     98.4MB
mysql                 5.7         2c9028880e58   4 weeks ago     447MB
mongo                 4.2.5       fddee5bccba3   14 months ago   388MB
logstash              7.6.2       fa5b3b1e9757   14 months ago   813MB
kibana                7.6.2       f70986bc5191   14 months ago   1.01GB
elasticsearch         7.6.2       f29a1ee41030   14 months ago   791MB
复制代码删除镜像 docker rmi
- 指定名称删除镜像
docker rmi mysql:5.7
复制代码- 指定名称删除镜像(强制)
docker rmi -f mysql:5.7
复制代码- 删除所有没有引用的镜像
docker rmi `docker images | grep none | awk '{print $3}'`
复制代码- 强制删除所有镜像
docker rmi -f $(docker images)
复制代码打包镜像 docker build -t
# -t 表示指定镜像仓库名称/镜像名称:镜像标签 .表示使用当前目录下的Dockerfile文件
docker build -t mall/mall:1.1.0-SNAPSHOT .
复制代码推送镜像
# 登录Docker Hub
docker login
# 给本地镜像打标签为远程仓库名称
docker tag mall/mall:1.1.0-SNAPSHOT fy/mall:1.1.0-SNAPSHOT
# 推送到远程仓库
docker push fy/mall:1.1.0-SNAPSHOT
复制代码Docker容器常用命令
新建并启动容器
docker run -p 80:80 --name nginx \
-e TZ="Asia/Shanghai" \
-v /mydata/nginx/html:/usr/share/nginx/html \
-d nginx:1.10
复制代码- -p: 将宿主机和容器端口进行映射,格式为:宿主机端口:容器端口;
- –name: 指定容器名称,之后可以通过容器名称来操作容器
- -e: 设置容器的环境变量,这里设置的是时区;
- -v: 将宿主机上的文件挂载容器上,格式为:宿主机文件目录:容器文件目录
- -d: 表示容器以后台方式运行
列出容器
展示运行中的容器 docker ps
➜  dockerImages docker ps
CONTAINER ID   IMAGE                 COMMAND                  CREATED        STATUS       PORTS                                                                                  NAMES
e8be56dcb1f7   logstash:7.6.2        "/usr/local/bin/dock…"   2 hours ago    Up 2 hours   5044/tcp, 0.0.0.0:4560-4563->4560-4563/tcp, :::4560-4563->4560-4563/tcp, 9600/tcp      logstash
72123ac57300   kibana:7.6.2          "/usr/local/bin/dumb…"   2 hours ago    Up 2 hours   0.0.0.0:5601->5601/tcp, :::5601->5601/tcp                                              kibana
375c89abf1ee   elasticsearch:7.6.2   "/usr/local/bin/dock…"   2 hours ago    Up 2 hours   0.0.0.0:9200->9200/tcp, :::9200->9200/tcp, 0.0.0.0:9300->9300/tcp, :::9300->9300/tcp   elasticsearch
2b73a2694943   mysql:5.7             "docker-entrypoint.s…"   20 hours ago   Up 6 hours   0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp                                   mysql
复制代码展示所有的容器 docker ps -a
➜  dockerImages docker ps -a
CONTAINER ID   IMAGE                 COMMAND                  CREATED        STATUS        PORTS                                                                                  NAMES
e8be56dcb1f7   logstash:7.6.2        "/usr/local/bin/dock…"   2 hours ago    Up 2 hours    5044/tcp, 0.0.0.0:4560-4563->4560-4563/tcp, :::4560-4563->4560-4563/tcp, 9600/tcp      logstash
72123ac57300   kibana:7.6.2          "/usr/local/bin/dumb…"   2 hours ago    Up 2 hours    0.0.0.0:5601->5601/tcp, :::5601->5601/tcp                                              kibana
375c89abf1ee   elasticsearch:7.6.2   "/usr/local/bin/dock…"   2 hours ago    Up 2 hours    0.0.0.0:9200->9200/tcp, :::9200->9200/tcp, 0.0.0.0:9300->9300/tcp, :::9300->9300/tcp   elasticsearch
029b5496bb2b   nginx:1.10            "nginx -g 'daemon of…"   5 hours ago    Created       80/tcp, 443/tcp                                                                        nginx
2b73a2694943   mysql:5.7             "docker-entrypoint.s…"   20 hours ago   Up 6 hours    0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp                                   mysql
复制代码停止容器 docker stop
## 容器名称
docker stop mysql
#或者容器id
docker stop 2b73a2694943
复制代码强制停止容器 docker kill
## 容器名称
docker kill mysql
复制代码启动容器 docker start
## 容器名称
docker start mysql
复制代码进入容器 docker exec -it $ContainerName /bin/bash
docker exec -it mysql /bin/bash
复制代码删除容器 docker rm
- 删除指定容器:
docker rm $ContainerName
复制代码- 强制删除所有容器;
docker rm -f $(docker ps -a -q)
复制代码查看容器的日志
- 查看容器产生的全部日志
docker rm $ContainerName
➜  dockerImages docker logs elasticsearch
OpenJDK 64-Bit Server VM warning: Option UseConcMarkSweepGC was deprecated in version 9.0 and will likely be removed in a future release.
{"type": "server", "timestamp": "2021-06-12T15:15:29,435+08:00", "level": "INFO", "component": "o.e.e.NodeEnvironment", "cluster.name": "elasticsearch", "node.name": "375c89abf1ee", "message": "using [1] data paths, mounts [[/usr/share/elasticsearch/data (grpcfuse)]], net usable_space [373.2gb], net total_space [465.6gb], types [fuse.grpcfuse]" }
{"type": "server", "timestamp": "2021-06-12T15:15:29,438+08:00", "level": "INFO", "component": "o.e.e.NodeEnvironment", "cluster.name": "elasticsearch", "node.name": "375c89abf1ee", "message": "heap size [494.9mb], compressed ordinary object pointers [true]" }
复制代码- 动态查看容器产生的日志
docker logs -f $ContainerName
复制代码同步宿主机时间到容器
docker cp /etc/localtime $ContainerName:/etc/
复制代码指定容器时区
docker run -p 80:80 --name nginx \
-e TZ="Asia/Shanghai" \
-d nginx:1.10
复制代码查看容器资源占用情况 docker status
- 查看指定容器资源占用状况,比如cpu、内存、网络、io状态
docker stats $ContainerName
➜  dockerImages docker stats elasticsearch
CONTAINER ID   NAME            CPU %     MEM USAGE / LIMIT     MEM %     NET I/O          BLOCK I/O        PIDS
375c89abf1ee   elasticsearch   1.21%     939.5MiB / 9.732GiB   9.43%     19.1MB / 7.4MB   45.1kB / 246kB   95
复制代码- 查看所有容器资源占用情况
docker stats -a
➜  dockerImages docker stats -a
CONTAINER ID   NAME            CPU %     MEM USAGE / LIMIT     MEM %     NET I/O           BLOCK I/O         PIDS
e8be56dcb1f7   logstash        4.85%     852.9MiB / 9.732GiB   8.56%     856kB / 7.24MB    12.3kB / 418kB    93
72123ac57300   kibana          0.48%     409.3MiB / 9.732GiB   4.11%     7.17MB / 12.3MB   58.4MB / 4.1kB    12
375c89abf1ee   elasticsearch   1.55%     939.6MiB / 9.732GiB   9.43%     19.3MB / 7.44MB   45.1kB / 246kB    95
029b5496bb2b   nginx           0.00%     0B / 0B               0.00%     0B / 0B           0B / 0B           0
2b73a2694943   mysql           0.21%     201MiB / 9.732GiB     2.02%     19.1kB / 0B       31.9MB / 8.19kB   27
2bb6eacfc945   redis           0.00%     0B / 0B               0.00%     0B / 0B           0B / 0B           0
复制代码查看容器磁盘使用情况 docker system df
➜  dockerImages docker system df
TYPE            TOTAL     ACTIVE    SIZE      RECLAIMABLE
Images          11        6         4.431GB   1.84GB (41%)
Containers      6         4         137.3MB   11B (0%)
Local Volumes   6         0         175.4MB   175.4MB (100%)
Build Cache     0         0         0B        0B
复制代码指定账号进入容器内部
# 使用root账号进入容器内部
docker exec -it --user root $ContainerName /bin/bash
复制代码Docker容器清理
删除所有关闭的容器
# 使用root账号进入容器内部
docker ps -a | grep Exit | cut -d ' ' -f 1 | xargs docker rm
复制代码© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
    





















![[桜井宁宁]COS和泉纱雾超可爱写真福利集-一一网](https://www.proyy.com/skycj/data/images/2020-12-13/4d3cf227a85d7e79f5d6b4efb6bde3e8.jpg)

![[桜井宁宁] 爆乳奶牛少女cos写真-一一网](https://www.proyy.com/skycj/data/images/2020-12-13/d40483e126fcf567894e89c65eaca655.jpg)
