docker 常用命令
一、docker基础命令
- 启动docker:systemctl start docker
- 关闭docker:systemctl stop docker
- 重启docker:systemctl restart docker
- docker设置随服务启动而自启动:systemctl enable docker
- 查看docker 运行状态:systemctl status docker
- 查看docker 版本号信息:docker version/docker info
- docker 帮助命令:docker --help
- 查看docker具体命令的使用帮助:docker ps --help
二、docker镜像命令
2.1 搜索官方仓库镜像:
docker search centos

NAME: 镜像仓库源的名称
DESCRIPTION: 镜像的描述
OFFICIAL: 是否 docker 官方发布
stars: 类似 Github 里面的 star,表示点赞、喜欢的意思。
AUTOMATED: 自动构建。
2.2 拉取镜像
根据镜像名称拉取镜像
docker pull centos

2.3 查看当前主机镜像列表
doker images docker image list

2.4 导出镜像
docker save 镜像名/镜像ID -o 镜像保存在哪个位置与名字
docker image save centos > docker-centos.tar.gz


2.5 删除镜像
2.5.1通过镜像名称强制删除:
docker image rm centos:latest

2.5.2 通过镜像ID强制删除:
docker image rm 5d0da3dc9764

2.5.3 删除一个
docker rmi -f 镜像名/镜像ID

2.5.4 删除多个
其镜像ID或镜像用用空格隔开即可
docker rmi -f 镜像名/镜像ID 镜像名/镜像ID 镜像名/镜像ID

2.5.5 删除全部镜像
docker rmi -f $(docker images -aq)
注:-a 意思为显示全部, -q 意思为只显示ID
2.6 导入镜像
docker image load -i docker-centos.tar.gz

2.7 查看镜像的详细信息
docker image inspect +镜像名称
docker image inspect centos

2.8 设置镜像标签
docker tag 镜像ID 镜像名称:标签名
docker tag 5d0da3dc9764 centos:dev

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

然后,我们使用 Dockerfile 文件,通过 docker build 命令来构建一个镜像:
docker build -t runood/centos:6.7 .
参数说明:
-
-t :指定要创建的目标镜像名
-
. :Dockerfile 文件所在目录,可以指定Dockerfile 的绝对路径

使用docker images 查看创建的镜像已经在列表中存在,镜像ID:e209e0634366

2.10 显示一个镜像的历史
docker history +镜像名称
docker history centos

三、docker 容器命令
3.1 启动容器
docker run -it python
参数说明:
- -i: 交互式操作。
- -t: 终端。

要退出终端,直接输入 exit:
3.2 查看所有容器
docker ps -a 查看所有容器(包括启动或停止的容器),docker ps --->查看运行中的容器
docker ps -a

3.3 停止容器
docker stop 容器ID

3.4 启动/重启容器
停止的容器可以通过 docker restart 重启或者使用docker start 启动
docker restart <容器 ID>

3.5 后台运行容器
在大部分的场景下,我们希望 docker 的服务是在后台运行的,我们可以过 -d 指定容器的运行模式。
docker run -itd 容器名称/ID

3.6 进入容器
在使用 -d 参数时,容器启动后会进入后台。此时想要进入容器,可以通过以下指令进入:
-
docker attach
-
docker exec:推荐大家使用 docker exec 命令,因为此命令会退出容器终端,但不会导致容器的停止。
attach 命令
下面演示了使用 docker attach 命令。
docker attach 容器ID

注意: 如果从这个容器退出,会导致容器的停止。
exec 命令
下面演示了使用 docker exec 命令。
docker exec -it 9cc9349c8275 /bin/bash

3.7 导出容器
如果要导出本地某个容器,可以使用 docker export 命令。
语法:docker export [OPTIONS] CONTAINER
OPTIONS说明:
-
-o :将输入内容写到文件。
docker export -o 容器名称 容器ID

3.8 导入容器
可以使用 docker import 从容器快照文件中再导入为镜像
语法:docker import [OPTIONS] file|URL|- [REPOSITORY[:TAG]]
OPTIONS说明:
-
-c :应用docker 指令创建镜像;
-
-m :提交时的说明文字;
实例:从镜像归档文件python.tar.gz 创建镜像,命名为python
docker import python.tar.gz python

3.9 删除容器
3.9.1 删除所有容器
docker rm -f `docker ps -a -q`
# -f 强制删除
3.9.2 删除容器
docker rm -f 容器ID
3.10 启动容器时进行端口映射
-p参数端口映射
实例:
docker run -d -p 8080:8888 5eb506608219

不同指定映射方法
|
参数 |
说明 |
|
-p hostPort:containerPort |
端口映射 -p 8080:80 |
|
-p ip:hostPort:containerPort |
配置监听地址 -p 10.0.0.100:8080:80 |
|
-p ip::containerPort |
随机分配端口 -p 10.0.0.100::80 |
|
-p hostPort:containerPort:udp |
指定协议 -p 8080:80:tcp |
|
-p 81:80 –p 443:443 |
指定多个 |
随机映射
docker run -P (大P)# 需要镜像支持
3.11 查看容器运行过程中的日志
docker logs 容器ID

3.12 查看容器内部运行的进程
docker top 容器ID

3.13 容器文件拷贝
场景1:从容器内拷贝出
docker cp 容器内ID:文件路径 容器外路径
eg:将容器内home路径下的test.txt文件复制到 当前文件路径下

场景2:从外部拷贝到容器内
docker cp 容器外文件路径 容器内ID:容器内路径
eg:将容器外的hello.jar包复制到容器内home路径下

3.14 更换容器名称
docker rename 容器ID/旧容器名称 新容器名称

四、Dockerfile自动构建docker镜像
4.1 Dockerfile指令集
dockerfile主要组成部分:
基础镜像信息 FROM centos:6.8 制作镜像操作指令RUN yum insatll openssh-server -y 容器启动时执行指令 CMD ["/bin/bash"]
dockerfile常用指令:
FROM #基础镜像一切从这里开始 MAINTAINER #镜像是谁写的,姓名加邮箱 RUN #镜像构建时需要的命令 ADD #步骤tomcat镜像,这个tomcat压缩包!添加内容 WORKDIR #镜像工作目录 VOLUME #挂载的位置 EXPOSE #暴露端口 CMD #指定这个容器启动时要运行的命令,只有最后一个会生效,可被替代 ENTRYPOINT #指定这个容器启动时要运行的命令,可以追加 ONBUILD #当构建一个被继承DockerFile,这个时候就会运行ONBUILD的指令,触发指令 COPY #类似ADD,将命令拷贝到镜像当中 ENV #构建的时候设置环境变量
4.1 构建步骤
1.先创建Dockerfile文件,使用vi Dockerfile ,写入如下内容:
FROM centos MAINTAINER redrose2100<hitredrose@163.com> ENV JAVA_HOME /usr/local/jdk1.8/ WORKDIR /usr/local COPY /helloworld/hello.jar /home/ EXPOSE 80 CMD /bin/bash
2.使用docker build 命令构建镜像,如下所示:
docker build -t runood/centos:6.7 .
注: -t 设置镜像标签 ;. 表示使用当前路径下的Dockerfile文件

本文来自博客园,作者:别摸我的马甲线,转载请注明原文链接:https://www.cnblogs.com/a-wyw/p/16301069.html

浙公网安备 33010602011771号