Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器或Windows 机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。
1.docker的主要内容
(1).docker是一个cs架构
(2).docker主要:镜像 容器 仓库 网络 存储 监控
(3).docker是一个软件的打包技术
2.docker镜像基础命令
1.docker search Nginx(搜索镜像)
[root@docker03 ~]# docker search nginx
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
nginx Official build of Nginx. 12314 [OK]
jwilder/nginx-proxy Automated Nginx reverse proxy for docker con… 1698 [OK]
richarvey/nginx-php-fpm Container running Nginx + PHP-FPM capable of… 746 [OK]
linuxserver/nginx An Nginx container, brought to you by LinuxS… 83
2.docker pull nginx (官网仓库下载镜像,不加latest,默认下载最新版)
[root@docker03 ~]# docker pull nginx
Using default tag: latest
latest: Pulling from library/nginx
000eee12ec04: Pull complete
3.docker push (上传镜像)
[root@docker03 ~]# docker push nginx
4.docker images (查看本地已有镜像)
[root@docker03 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest 231d40e811cd 2 weeks ago 126MB
5.docker rmi (删除镜像)
[root@docker03 ~]# docker rmi nginx:latest
Untagged: nginx:latest
Untagged: nginx@sha256:50cf965a6e08ec5784009d0fccb380fc479826b6e0e65684d9879170a9df8566
Deleted: sha256:231d40e811cd970168fb0c4770f2161aa30b9ba6fe8e68527504df69643aa145
6.docker tag(给镜像打标签)
[root@docker03 ~]# docker tag nginx:latest nginx:v1
7.docker load -i docker_kod.tar.gz (本地镜像导入)
[root@docker03 ~/docker]# ls
docker_kod.tar.gz
[root@docker03 ~/docker]#
[root@docker03 ~/docker]# docker load -i docker_kod.tar.gz
b5e11aae8a8e: Loading layer [==================================================>] 202.9MB/202.9MB
8.docker import (导入镜像,images没有镜像名和标签)
[root@docker03 ~/docker]# docker import docker_kod.tar.gz
[root@docker03 ~/docker]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
<none> <none> c1863e2b0717 35 seconds ago 627MB
9.docker save(保存镜像到当前目录)
[root@docker03 ~/docker]# docker save nginx:latest -o docker_nginx.tar.gz
10.docker inspect nginx:v1 (查看镜像属性)
[root@docker03 ~/docker]# docker inspect nginx:v1
11.docker image prune(清理无人使用的镜像和拉取到一半的镜像,删除镜像缓存)
[root@docker03 ~/docker]# docker image prune
WARNING! This will remove all dangling images.
Are you sure you want to continue? [y/N] y
Deleted Images:
deleted: sha256:c1863e2b07171e582113544e6c19660cd3fee7d6f1d89401529f8472732c8e33
deleted: sha256:56d69e4a0819cab19e224724de86de73c8dfcd8ee5f01e08288b20cfb49c4d52
12.docker更改时区(重启容器生效)
[root@22732407347e /]# /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
13.删除<none>镜像
[root@docker03 ~]# docker image prune
其他
1) docker container run
docker container run -it ubuntu /bin/bash 命令会在前台启动一个 Ubuntu 容器,并运行 Bash Shell。
Ctrl-PQ 会断开 Shell 和容器终端之间的链接,并在退出后保持容器在后台处于运行(UP)状态。
2) docker container ls
3) docker container exec
docker container exec -it <container-name or container-id> bash 命令会在容器内部启动一个 Bash Shell 进程,并连接到该 Shell。
为了使该命令生效,用于创建容器的镜像必须包含 Bash Shell。
4) docker container stop
该命令通过发送 SIGTERM 信号给容器内 PID 为 1 的进程达到目的。
如果进程没有在 10s 之内得到清理并停止运行,那么会接着发送 SIGKILL 信号来强制停止该容器。
docker container stop 可以接收容器 ID 以及容器名称作为参数。
5) docker container start
6) docker container rm
7) docker container inspect
启动新容器的命令。该命令的最简形式接收镜像和命令作为参数。镜像用于创建容器,而命令则是希望容器运行的应用。
用于列出所有在运行(UP)状态的容器。如果使用 -a 标记,还可以看到处于停止(Exited)状态的容器。
用于在运行状态的容器中,启动一个新进程。该命令在将 Docker 主机 Shell 连接到一个运行中容器终端时非常有用。
此命令会停止运行中的容器,并将状态置为 Exited(0)。
重启处于停止(Exited)状态的容器。可以在 docker container start 命令中指定容器的名称或者 ID。
删除停止运行的容器。可以通过容器名称或者 ID 来指定要删除的容器。推荐首先使用 docker container stop 命令停止容器,然后使用 docker container rm 来完成删除。
显示容器的配置细节和运行时信息。该命令接收容器名称和容器 ID 作为主要参数。