自学内容网 自学内容网

【Docker】常用命令汇总

Docker 是1个开源的应用容器引擎,基于Go 语言并遵从 Apache2.0 协议开源。 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。

容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。

目录

一. 架构

1. 镜像

2. 容器

3. 仓库

二.使用

1. 镜像使用

1.1 查看镜像

1.2 创建镜像

1.3 查找镜像

1.4 删除镜像

1.5 创建镜像

1.6 设置镜像标签

2. 容器使用

2.1 启动容器

2.2 进入容器

2.3 导出/入容器


一. 架构

Docker 包括3个基本概念:镜像,容器,仓库。

1. 镜像

Docker 镜像(Image),就相当于是一个 root 文件系统。比如官方镜像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系统的 root 文件系统。

2. 容器

镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。

3. 仓库

仓库(Repository)可看成一个代码控制中心,用来保存镜像。

二.使用

1. 镜像使用

1.1 查看镜像

•docker images:来列出本地主机上的镜像。

root@lly:~$ docker images           
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
ubuntu              14.04               90d5884b1ee0        5 days ago          188 MB
php                 5.6                 f40e9e0f10c8        9 days ago          444.8 MB
nginx               latest              6f8d099c3adc        12 days ago         182.7 MB
mysql               5.6                 f2e8d6c772c0        3 weeks ago         324.6 MB
httpd               latest              02ef73cf1bc0        3 weeks ago         194.4 MB
ubuntu              15.10               4e3b13c8a266        4 weeks ago         136.3 MB

各个选项说明:

REPOSITORYREPOSITORY:表示镜像的仓库源
TAG:镜像的标签
IMAGE ID:镜像ID
CREATED:镜像创建时间
SIZE:镜像大小

1.2 创建镜像

在本地主机上使用一个不存在的镜像时 Docker 就会自动下载这个镜像。如果想预先下载这个镜像,可以使用 docker pull 命令来下载它。

root@lly:~$ docker pull ubuntu:13.10
13.10: Pulling from library/ubuntu
6599cadaf950: Pull complete 
23eda618d451: Pull complete 
f0be3084efe9: Pull complete 
52de432f084b: Pull complete 
a3ed95caeb02: Pull complete 
Digest: sha256:15b79a6654811c8d992ebacdfbd5152fcf3d165e374e264076aa435214a947a3
Status: Downloaded newer image for ubuntu:13.10

1.3 查找镜像

#使用 docker search 命令来搜索指定镜像(httpd)
root@lly:~$  docker search httpd

1.4 删除镜像

#使用 docker rmi 命令,比如删除 hello-world 镜像
$ docker rmi hello-world

1.5 创建镜像

当从 docker 镜像仓库中下载的镜像不能满足我们的需求时,可以通过以下2种方式对镜像进行更改。

•从已经创建的容器中更新镜像,并且提交这个镜像

#更新镜像之前,需要使用镜像来创建1个容器
docker run -t -i ubuntu:15.10 /bin/bash
#进入容器后,更新系统
apt-get update
apt-get upgrade -y
#在完成操作之后,输入 exit 命令退出这个容器
exit
#此时 ID 为 e228edb10165 的容器,是按需求更改的容器。可以通过命令 docker commit 来提交容器副本
docker commit -m="has update" -a="lly" e228edb1016 lly/ubuntu:v2
#可以使用 docker images 命令来查看我们的新镜像 lly/ubuntu:v2
docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
lly/ubuntu       v2                  70bf1840fd7c        15 seconds ago      158.5 MB
ubuntu              14.04               90d5884b1ee0        5 days ago          188 MB
php                 5.6                 f40e9e0f10c8        9 days ago          444.8 MB
nginx               latest              6f8d099c3adc        12 days ago         182.7 MB

•使用 Dockerfile 指令来创建1个新的镜像

使用命令 docker build , 从零开始来创建1个新的镜像。需要创建1个 Dockerfile 文件,其中包含一组指令来告诉 Docker 如何构建我们的镜像。

root@lly:~$ cat Dockerfile 
FROM    centos:6.7
MAINTAINER      Fisher "fisher@sudops.com"

RUN     /bin/echo 'root:123456' |chpasswd
RUN     useradd runoob
RUN     /bin/echo 'runoob:123456' |chpasswd
RUN     /bin/echo -e "LANG=\"en_US.UTF-8\"" >/etc/default/local
EXPOSE  22
EXPOSE  80
CMD     /usr/sbin/sshd -D
docker build -t runoob/centos:6.7 .

参数说明:

-t 指定要创建的目标镜像名
. Dockerfile 文件所在目录,可以指定Dockerfile 的绝对路径

1.6 设置镜像标签

docker tag 860c279d2fec lly/centos:dev

镜像ID:860c279d2fec ;

镜像源名:lly/centos;

标签名:dev。

2. 容器使用

2.1 启动容器

docker run -it ubuntu /bin/bash

参数说明:

-i 交互式操作
-t终端
ubuntuubuntu 镜像
/bin/bash放在镜像名后的是命令,这里希望有个交互式 Shell,因此用的是 /bin/bash

•后台运行

在大部分的场景下,希望 docker 的服务是在后台运行的,可以过 -d 指定容器的运行模式。

docker run -itd --name ubuntu-test ubuntu /bin/bash

•启动已停止运行的容器

#查看所有的容器
$ docker ps -a

#docker start 启动1个已停止的容器
$ docker start b750bbbcfd88 

•停止容器

#停止容器
docker stop <容器 ID>
#重启容器
docker restart <容器 ID>

•删除容器

docker rm -f 1e560fca3906

2.2 进入容器

•exec

docker exec -it 243c32535da7 /bin/bash

从这个容器退出,容器不会停止。

•attach

docker attach 1e560fca3906 

如果从这个容器退出,会导致容器的停止。

2.3 导出/入容器

(1)导出本地某个容器,可以使用 docker export 命令。

#导出容器 1e560fca3906 快照到本地文件 ubuntu.tar
docker export 1e560fca3906 > ubuntu.tar

(2)使用 docker import 从容器快照文件中再导入为镜像。

#将快照文件 ubuntu.tar 导入到镜像 test/ubuntu:v1
cat docker/ubuntu.tar | docker import - test/ubuntu:v1

2.4 端口映射

通过 -p 参数设置端口。

#将容器内部的 80 端口映射到本地主机的 8888 端口上
docker run -d -p 8888:80  nginx:latest


原文地址:https://blog.csdn.net/lly_csdn123/article/details/143977797

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!