
帮助命令
bash
docker version #docker版本信息
docker info #系统级别信息,包括镜像和容器数量
docker 命令 --help镜像命令
docker images 查看所有本地主机镜像

bash
docker images -a #列出所有镜像详细信息
docker images -aq #列出所有镜像iddocker search 查找镜像
住:不走镜像源,只会走官方渠道,容易超时
docker pull 下拉镜像
bash
docker pull 镜像名[:tag] 不写tag,默认latest
ubuntu@Mystpet:~$ docker pull hello-world
Using default tag: latest
latest: Pulling from library/hello-world
17eec7bbc9d7: Pull complete # 分层下载,dockerimages核心,联合文件系统
ea52d2000f90: Download complete
Digest: sha256:85404b3c53951c3ff5d40de0972b1bb21fafa2e8daa235355baf44f33db9dbdd
Status: Downloaded newer image for hello-world:latest
docker.io/library/hello-world:latest #真实地址
docker pull mysql
等价于docker pull docker.io/library/hello-world:latestdocker rmi 删除镜像
bash
docker rmi image id #删除指定镜像
docker rmi image id1 image id2 image id3 #删除多个镜像
docker rmi $(docker images -aq) #删除所有镜像
-a全部 -q只显示镜像id
docker stop $(docker ps -a -q) #停止全部镜像容器命令
有了镜像才可以创建容器
新建容器并启动
bash
docker run [可选参数] image #新建容器并启动
docker run -it ubuntu /bin/bash #启动并进入容器
-it 使用交互方式进行,进入容器查看内容 /bin/bash 虚拟显示屏
root@7d6209933ef2:/# ls #查看容器内的ubuntu,很多命令不完善
bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
root@7d6209933ef2:/# exit #从容器退回主机列出所有运行的容器
bash
docker ps
-a #列出正在运行的容器包括历史容器
-q #只显示当前容器编号
ubuntu@Mystpet:~$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
docker ps -a
ubuntu@Mystpet:~$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9a6c7cac3bab ubuntu "/bin/bash" 6 minutes ago Exited (0) 6 minutes ago dazzling_ritchie
fe8194fdc53a ubuntu "/bin/bash" 8 minutes ago Exited (127) 8 minutes ago practical_gagarin
cc3d0463dd17 nginx:alpine "/docker-entrypoint.…" 4 weeks ago Exited (0) 11 days ago myblog-container退出容器
bash
exit #直接退出容器并关闭
Ctrl+P+Q #容器不关闭退出删除容器
bash
docker rm -f 容器id #删除指定容器
docker rm -f $(docker ps -aq) #删除所有容器启动和停止容器的操作
bash
docker start 容器id #启动容器
docker restart 容器id #重启容器 用来加载新配置
docker stop 容器id #停止当前正在运行的容器
docker kill 容器id #强制停止当前的容器常用的其他命令
bash
docker run -d ubuntu
#问题 docker ps,发现ubuntu停止了常见的坑, Docker 容器的生命周期与内部的 PID 1(一号进程)共存亡。容器若要在后台(宿主机视角)持续运行,其内部必须有一个阻塞式的前台主进程撑场子;一旦主进程执行完毕或退居后台(Daemonize),Docker 就会判定任务结束,从而导致容器秒退。
查看日志
bash
docker logs --help
Options:
--details Show extra details provided to logs
-f, --follow Follow log output
--since string Show logs since timestamp (e.g. "2013-01-02T13:23:37Z") or relative (e.g. "42m" for 42 minutes)
-n, --tail string Number of lines to show from the end of the logs (default "all")
-t, --timestamps Show timestamps
--until string Show logs before a timestamp (e.g. "2013-01-02T13:23:37Z") or relative (e.g. "42m" for 42 minutes)
docker logs -tf --tail [number] 容器id
--tail number #表示只看最后几行
-t #精确到秒的时间戳
-f #持续跟踪查看容器中进程信息
bash
docker top 容器id
UID PID PPID C STIME TTY TIME CMD
root 4070367 4070344 0 18:13 ? 00:00:00查看镜像元数据
bash
docker inspect 容器id进入正在运行的容器
bash
docker exec -it 容器id /bin/bash #i进入容器后开启一个新终端,可以在里面操作
docker attach 容器id #进入容器正在执行的终端,不会启动新的进程从容器拷贝文件到主机
bash
docker cp 容器id:容器内路径 目的地主机路径
1.启动容器
ubuntu@Mystpet:~/blog$ docker run -it tomcat:latest /bin/bash
2.新建文件
root@663302aac625:/usr/local/tomcat# echo "测试" > hello.txt
root@663302aac625:/usr/local/tomcat# exit
3.拷贝
ubuntu@Mystpet:/home$ docker cp 663302aac625:/usr/local/tomcat/hello.txt ~/
ubuntu@Mystpet:~$ ls
blog hello.txt idea minecraft