目录
一、镜像命令
|
|
|
|
|
|
|
|
|
|
|
|
1、docker images 查看镜像
1、语法:
[root@Y ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest bf756fb1ae65 4 months ago 13.3kB
mysql 5.7 b84d68d0a7db 6 days ago 448MB
2、解释:
|
|
|
|
|
|
|
|
|
|
|
|
3、docker images --help:
|
|
|
|
|
|
4、案例:
|
|
|
|
2、docker search 搜索镜像
1、语法:
[root@Y ~]# docker search mysql
2、解释:
|
|
|
|
3、docker search --help:
|
|
|
|
|
|
|
|
|
|
4、案例:
[root@Y ~]# docker search mysql --filter=STARS=3000
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
mysql MySQL IS ... 9520 [OK]
mariadb MariaDB IS ... 3456 [OK]
3、docker pull 下载镜像
1、语法:
# 下载镜像 docker pull 镜像名[:tag版本]
[root@Y ~]# docker pull tomcat:8
2、案例
[root@Y ~]# docker pull tomcat
8: pulling from library/tomcat # 如果不写tag,默认就是latest
90fe46dd8199: Already exists # 分层下载: docker image 的核心 联合文件系统
35a4f1977689: Already exists
bbc37f14aded: Already exists
74e27dc593d4: Already exists
93a01fbfad7f: Already exists
1478df405869: Pull complete
64f0dd11682b: Pull complete
68ff4e050d11: Pull complete
f576086003cf: Pull complete
3b72593ce10e: Pull complete
Digest: sha256:0c6234e7ec9d10ab32c06423ab829b32e3183ba5bf2620ee66de866df # 签名防伪
Status: Downloaded newer image for tomcat:8
docker.io/library/tomcat:8 #真实地址
# 等价
docker pull tomcat:8 = docker pull docker.io/library/tomcat:8
4、docker rmi 删除镜像
|
|
|
|
|
|
二、容器命令
说明:我们有了镜像才可以创建容器,Linux,下载centos镜像来学习
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1、镜像下载
docker pull centos
2、新建并启动容器
1、语法
docker run [可选参数] image | docker container run [可选参数] image
2、参数
|
|
|
|
|
|
|
|
|
|
|
|
3、测试、启动并进入容器
[root@Y ~]# docker run -it centos /bin/bash # run it centos启动新建一个centos容器,/bin/bash给一个默认控制台
[root@241b5abce65e /]# ls
bin dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var
[root@241b5abce65e /]# exit # 从容器退回主机
Exit
4、容器启动中进入(重要)
[root@iZwz9fwomx3lwtrau6ixxfZ /]# docker exec -it mysql bash # 进入mysql(容器名)容器
root@e537a9efecc8:/# ls
bin boot dev docker-entrypoint-initdb.d entrypoint.sh etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
root@e537a9efecc8:/# exit # 从容器退回主机
Exit
3、查看容器
|
|
|
|
|
|
|
|
|
|
|
|
4、退出容器
|
|
|
|
|
|
exit直接退出
Ctrl+P+Q不停止容器退出
5、删除容器
|
|
|
|
|
|
|
|
6、启动和停止容器的操作
停止或者强行停止容器,都可以再次启动,通过docker ps -a找到历史的id在启动即可,但是删除容器就不能再次重启
|
|
|
|
|
|
|
|
|
|
三、常用其他命令
1、后台启动命令
1、命令:
# 问题docker ps. 发现centos 停止了
# 常见的坑,docker容器使用后台运行,就必须要有要一个前台进程,docker发现没有应用,就会自动停止
# nginx,容器启动后,发现自己没有提供服务,就会立刻停止,就是没有程序了
# 所以服务类的程序,我们需要后台启动
docker run -d 镜像名
2、案例:
[root@Y ~]# docker run -d centos
a8f922c255859622ac45ce3a535b7a0e8253329be4756ed6e32265d2dd2fac6c
[root@iz2zeak7sgj6i7hrb2g862z ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2、查看日志
1、命令:
docker logs -f 容器id
2、参数:
|
|
|
|
|
|
3、案例:
docker run -d centos /bin/sh -c "while true;do echo 6666;sleep 1;done" # 模拟日志
docker logs -t --tail n 容器id # 查看n行日志
docker logs -ft 容器id # 跟着日志
3、查看容器中进程信息ps
docker top 容器id
[root@Y ~]# docker top 51ce907d72b1
UID PID PPID C STIME TTY TIME CMD
root 28107 28089 0 10:48 ? 00:00:00 /bin/sh -c while true;do echo 666;sleep 1;done
root 28503 28107 0 10:54 ? 00:00:00 /usr/bin/coreutils --coreutils-prog-shebang=sleep /usr/bin/sleep 1
4、查看镜像的元数据
docker inspect 容器id
[root@Y ~]# docker inspect 51ce907d72b1
……
5、进入当前正在运行的容器
我们通常容器都是使用后台方式运行的,需要进入容器,修改一些配置
1、方式一(推荐):
docker exec -it 容器id /bin/bash
[root@Y ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
51ce907d72b1 centos "/bin/sh -c 'while t…" 13 minutes ago Up 13 minutes pedantic_lichterman
[root@Y ~]# docker exec -it 51ce907d72b1 /bin/bash
[root@51ce907d72b1 /]#
2、方式二:
docker attach 容器id
[root@Y ~]# docker attach 51ce907d72b1
正在执行当前的代码…
3、二者区别:
- #docker exec # 进入当前容器后开启一个新的终端,可以在里面操作。(常用)
- #docker attach # 进入容器正在执行的终端
6、从容器内拷贝到主机上
1、命令:
docker cp 容器id:容器内路径 主机目的路径
2、案例:
# 1. 新建进入docker容器内部
[root@Y ~]# docker run -it centos /bin/bash
[root@55321bcae33d /]# ls
bin dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var
# 2. 新建一个文件
[root@55321bcae33d /]# echo "java" > hello.java
[root@55321bcae33d /]# cat hello.java
hello
[root@55321bcae33d /]# exit
Exit
# 3. hello.java拷贝到home文件加下
[root@Y /]# docker cp 56a5583b25b4:/hello.java /home
[root@Y /]# cd /home
[root@Y home]# ls -l #可以看见java.java存在
total 8
-rw-r--r-- 1 root root 0 May 19 22:09 haust.java
-rw-r--r-- 1 root root 6 May 22 11:12 java.java
drwx------ 3 www www 4096 May 8 12:14 www
7、导入和导出容器
- export 导出容器的内容留作为一个tar归档文件[对应import命令]
- docker export 容器ID > 文件名.tar
- import 从tar包中的内容创建一个新的文件系统再导入为镜像[对应export]
- cat 文件名.tar | docker import - 镜像用户/镜像名:镜像版本号
8、帮助命令
|
|
|
|
|
|
|
|
帮助文档的地址: docker build | Docker Documentation
.
四、小结:命令大全
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|