根据docker生命周期顺序整理
容器生命周期管理:准备-开始-维护-关闭/卸载
prepare:
查看版本
version
查看docker状态
systemctl status docker
系统设置:
开机启动systemctl enable docker
查看概要docker info
–help
images
search
pull/push
rmi
build
start
run
启动docker
systemctl start docker
停止docker
systemctl stop docker
重启restart
exec -it
commit
volume数据卷相关操作
cp
port映射
获取镜像
docker pull 镜像:version
列出镜像
docker images
使用镜像
docker run -it images /bin/bash
ctrl+p+q可以保持运行退出
移除镜像之前要先移有依赖的容器docker rm
删除一个正在运行中的容器docker -f ID
移除本地镜像docker rmi
进入docker
docker attach
progess
ps
logs
stats
top
inspect
network
end
stop
rm
run,start,stop,restart,kill,rm,pause,unpause,create,exec
容器操作:
ps,inspect,top,attach,events,logs,wait,export,port,
容器rootfs命令
commit,cp,diff
镜像仓库:
login,logout,pull,push,search
本地镜像管理:
images,rmi,tag,build,history,save,load,import,info,version
练习:nginx,py,mysql,
之前的:
docker命令:
帮助命令docker
查看所有docker相关命令(英文显示)
docker run --help查看该命令的使用
查看正在运行中的容器
docker ps
查看容器端口库映射到宿主机的端口号
docker port 容器ID/name
查看容器内部的标准输出
docker logs 容器ID/name
查看容器内部运行的进程
docker top 容器ID/name
查看容器底层信息
docker inspect 容器ID/name
如何进入容器
docker exec
docker exec -it -d
停止容器:
docker stop 容器ID/name
启动容器:
docker start 容器ID/name
查询最后一次创建的容器:
docker ps -l
删除容器(必须是停止状态)
docker rm ID/name
容器命名:
docker run -d -P --name wodemingzi training/webapp python app.py
通过docker ps查看名称
docker ps查看容器端口映射情况
容器端口映射:
-P随机映射到端口
-p帮i当道指定端口
默认是tcp端口,udp端口需要在后面加/udp
docker run -d -p 5000:5000 training/webapp python app.py
列出主机上的镜像
docker images
获取新的镜像
docker pull ubuntu:latest
从docker hub中查找镜像
docker search
docker search nginx
docker run -p 8702:80 nginx
更新镜像的两个方式:
1从已经创建的容器中更新镜像,并且提交这个镜像,
2使用dockerfile创建一个新的镜像
eg:
docker run -it ubuntu:16.04 /bin/bash
docker images
echo “hello ubuntu images”>>hello.txt
cat hello.txt
docker commit -m=“has update” -a=“hello ubuntu images” 4eec571480db helloubuntuimages/ubuntu:v1
// -m 提交的描述信息
-a 指定镜像作者
容器ID
helloubuntuimages/ubuntu:v1指定要创建的目标镜像名
docker images
设置镜像标签:
docker tag 镜像ID loen/ubuntu:dev
Demo
Busybox是一个集成了一百多个最常用Linux命令(如 cat,echo,grep,mount,telnet等)的精简工具箱,它只有不到2MB大小,被誉为“Linux 系统的瑞士军刀”。
删除镜像:
docker rmi 镜像ID
(使用 Docker 一段时间后, 系统中可能会遗留一些临时的镜像文件,以及一些没有被使用的镜像,可以通过 docker image prune 命令来进行清理。)
Alpine 操作系统是一个面向安全的轻型 Linux 发行版,关注安全,性能和资源效能。
不同于其他发行版,Alpine采用了 musl libc 和 BusyBox 以减小系统的体积和运行时资源消耗,
比BusyBox功能上更完善。在保持瘦身的同时,Alpine还提供了包管理工具apk查询和安装软件包。
Dockerfile:
FROM
主要作用是指定一个镜像作为构建自定义镜像的基础镜像,在这个基础镜像之上进行修改定制。
LABEL
用于指定一个镜像的描述信息
要查看镜像的 LABEL 信息,可以使用 docker inspect 命令。
eg:
LABEL maintainer=“425389019@qq.com”
LABEL “com.example.vendor”=“ACME Incorporated”
LABEL com.example.label-with-value=“foo”
LABEL version=“1.0”
LABEL description=“This text illustrates
that label-values can span multiple lines.”
ENV 指令
用于设置环境变量
ENV VERSION=1.0 DEBUG=on
NAME=“Happy New Year”
RUN 指令
RUN 指令是在容器内执行 shell 命令,默认会是用 /bin/sh -c 的方式执行。
CMD 指令
Dockerfile 中只能有一条CMD指令。如果列出多个,CMD 则只有最后一个CMD会生效。
CMD 主要目的是为运行容器时提供默认值
Docker 不是虚拟机,容器就是进程,CMD 指令就是用于指定默认的容器主进程的启动命令的。
ENTRYPOINT 指令
ENTRYPOINT 的目的和 CMD 一样,都是在指定容器的启动程序及参数。
ENTRYPOINT 在运行时也可以被替代,不过比 CMD 要略显繁琐,需要通过 docker run 的参数 --entrypoint 来指定。
WORKDIR 指令
用于声明当前的工作目录,以后各层的当前目录就被改为指定的目录。
格式为 WORKDIR <工作目录路径>。
如该目录不存在,WORKDIR 会帮你建立目录。
COPY 指令
格式:
COPY <源路径>… <目标路径>
COPY [“<源路径1>”,… “<目标路径>”] 和 RUN 指令一样,也有两种格式,一种类似于命令行,一种类似于函数调用。
<目标路径> 可以是容器内的绝对路径,也可以是相对于 WORKDIR 指定的工作目录的相对路径。目标路径不需要事先创建,如果目录不存在会在复制文件前先被创建。
ADD 指令
ADD 指令和 COPY 的格式和性质基本一致。但是在 COPY 基础上增加了一些功能。
支持自动解压缩,压缩格式支持: gzip, bzip2 以及 xz
官方推荐使用 COPY 进行文件的复制。
USER 指令
USER指令用于指定容器执行程序的用户身份,默认是 root用户;
在docker run 中可以通过 -u 选项来覆盖USER指令的设置,例如:
docker run -i -t -u loose image /bin/bash
ONBUILD 指令
ONBUILD该指令的作用就是,它后面往往放的一些可执行的命令,但是它进行镜像构建时,ONBUILD后面的命令不会执行,而是别人把它构建的镜像作为基础镜像拿来再构建镜像时,就会执行ONBUILD后面的指令。
docker生命周期管理命令
docker run
start
stop
restart
kill
rm
pause
unpause
docker create 命令能够基于镜像创建容器。
该命令执行的效果类似于 docker run -d,即创建一个将在系统后台运行的容器
但是与 docker run -d 不同的是,docker create 创建的容器并未实际启动,还需要执行 docker start 命令或 docker run 命令以启动容器。当你想提前设置容器配置以便可以在需要时启动时,此功能很有用。
docker exec【重要】
容器操作命令
ps,inpect,top,attach,events,logs,wait,export,port,
Reference:
https://www.w3cschool.cn/reqsgr/sf4koozt.html
https://www.w3cschool.cn/docker/ubuntu-docker-install.html