网站首页 > 基础教程 正文
1.帮助命令
官方帮助文档
https://docs.docker.com/engine/reference/commandline/docker/
dcoker version # 显示docker的版本信息
docker info # 显示docker的系统信息,包括镜像和容器的数量
docker 命令 --help # 帮助命令
+:mmyouni666
2.镜像命令
dcoker images # 查看本地主机上的镜像 (docker image ls)
docker search # 搜索镜像
docker pull # 下载镜像 (docker image pull)
docker rmi # 删除镜像 (docker image rm)
查看本地的所有镜像
docker images
[root@fedora ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
tomcat 8 2d2bccf89f53 6 months ago 678MB
alpine latest c059bfaa849c 6 months ago 5.58MB
hello-world latest feb5d9fea6a5 9 months ago 13.3kB
# REPOSITORY # 镜像的仓库源
# TAG # 镜像的标签
# IMAGE ID # 镜像的id
# CREATED # 镜像的创建时间
# SIZE # 镜像的大小
# 可选项
Options:
-a, --all Show all images (default hides intermediate images) #列出所有镜像
-q, --quiet Only show numeric IDs # 只显示镜像的id
[root@fedora ~]# docker images -aq #显示所有镜像的ID
搜索镜像
docker search
[root@fedora ~]# docker search mysql
NAME DESCRIPTION STARS
下载镜像
# docker pull 镜像名[:tag]
删除镜像
docker rmi
docker rmi -f 镜像ID # 删除指定的镜像
docker rmi -f 镜像ID 镜像ID 镜像ID # 删除多个镜像
docker rmi -f $(docker images -aq) # 删除所有镜像
3.容器命令
有了镜像才可以创建容器,下载一个centos测试学习
[root@fedora ~]# docker pull centos
新建容器并启动
docker run [可选参数] image
# 参数说明
--name="NAME" # 对容器命名,便于区分容器
-d # 以后台方式运行
-it # 使用交互方式运行,进入容器查看内容
-p # 指定容器的端口,如-p 8080(宿主机):8080(容器)
-p ip:主机端口:容器端口
-p 主机端口:容器端口(常用)
-p 容器端口
容器端口
-P(大写) # 随机指定端口
# 测试,启动并进入容器
[root@fedora ~]# docker run -it centos /bin/bash
[root@c0b3a59a4b40 /]# ls # 查看容器内的centos,基础版本,很多命令都不完善!
bin dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var
# 从容器中退回主机
[root@c0b3a59a4b40 /]# exit
exit
[root@fedora ~]# ls
anaconda-ks.cfg
列出所有运行的容器
# docker ps 命令
# 列出当前正在运行的容器
-a # 列出当前正在运行的容器+历史运行过的容器
-n=? # 列出最近创建的容器
-q # 只显示容器的编号
[root@fedora ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
[root@fedora ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c0b3a59a4b40 centos "/bin/bash" 8 minutes ago Exited (0) 7 minutes ago amazing_mestorf
4e2856b49ab3 feb5d9fea6a5 "/hello" 5 hours ago Exited (0) 5 hours ago practical_elion
[root@fedora ~]# docker ps -n=1
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c0b3a59a4b40 centos "/bin/bash" 8 minutes ago Exited (0) 8 minutes ago amazing_mestorf
[root@fedora ~]# docker ps -aq
c0b3a59a4b40
4e2856b49ab3
退出容器
exit # 退出容器,该容器停止运行
Ctrl+P+Q # 退出容器,该容器继续运行
[root@fedora ~]# docker run -it centos /bin/bash
[root@850f79cbaca0 /]# exit
exit
[root@fedora ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
[root@fedora ~]# docker run -it centos /bin/bash
[root@3ba161d2b592 /]# [root@fedora ~]#
[root@fedora ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3ba161d2b592 centos "/bin/bash" 26 seconds ago Up 25 seconds modest_agnesi
删除容器
docker rm 容器ID # 删除指定的容器(不能删除正在运行的容器,如果要强制删除 rm -rf)
docker rm -f $(dcoker ps -aq) # 删除所有的容器
dcoker ps -a -q | xargs docker rm # 删除所有的容器
启动和停止容器
docker start 容器id #启动容器
docker restart 容器id #重启容器
docker stop 容器id #停止当前正在运行的容器
docker kill 容器id #强制停止当前容器
4.其它常用命令
后台启动容器
# dcoker run -d 镜像名
[root@fedora ~]# docker run -d centos
e1050d6f94c31e0285f0ac13cd1660db486149b0a6c50b76eb514ce01491c04b
[root@fedora ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
# 问题:dcoker ps,发现centos停止了
# 常见的坑:dcoker容器使用后台运行,就必须要有一个前台进程,docker发现没有进程,就会自动停止
# 如:nginx,容器启动后,发现自己没有提供服务,就会立即停止,就是没有进程了
查看日志
docker logs -f -t --tail 容器,没有日志
#自己编写一段shell脚本
[root@fedora ~]# docker run -d centos
e1050d6f94c31e0285f0ac13cd1660db486149b0a6c50b76eb514ce01491c04b
[root@fedora ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
[root@fedora ~]# docker run -d centos /bin/bash -c "while true;do echo hello;sleep 1;done"
988efb2679049c3b1ea591b049d6be23e3c040caff84af67c27c1cd9098927ca
[root@fedora ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
988efb267904 centos "/bin/bash -c 'while…" 6 seconds ago Up 4 seconds boring_blackburn
# 显示日志
-tf # 显示日志(一直更新)
--tail number # 显示n行日志
查看容器中进程的信息
# docker top 容器ID
[root@fedora ~]# docker top 988efb267904
UID PID PPID C STIME TTY TIME CMD
root 33380 33362 0 15:38 ? 00:00:00 /bin/bash -c while true;do echo hello;sleep 1;done
root 34367 33380 0 15:50 ? 00:00:00 /usr/bin/coreutils --coreutils-prog-shebang=sleep /usr/bin/sleep 1
查看镜像的元数据
docker inspect 容器ID
进入当前正在运行的容器
# 我们通常容器都是以后台方式运行的,需要进入容器,修改一些配置
# dcoker exec -it 容器ID bashshell
[root@fedora ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
988efb267904 centos "/bin/bash -c 'while…" 19 minutes ago Up 19 minutes boring_blackburn
[root@fedora ~]# docker exec -it 988efb267904 /bin/bash
[root@988efb267904 /]# ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 07:38 ? 00:00:00 /bin/bash -c while true;do echo hello;sleep 1;done
root 1236 0 0 07:59 pts/0 00:00:00 /bin/bash
root 1269 1 0 07:59 ? 00:00:00 /usr/bin/coreutils --coreutils-prog-shebang=sleep /usr/bin/sleep 1
root 1270 1236 0 07:59 pts/0 00:00:00 ps -ef
# 方式二
docker attach 容器id
#测试
docker attach 988efb267904
正在执行当前的代码...
区别
# docker exec # 进入当前容器后开启一个新的终端,可以在里面操作。(常用)
# docker attach # 进入容器正在执行的终端
从容器内拷贝文件到主机
[root@fedora ~]# docker run -it centos # 进入容器
[root@3593a6485284 /]# cd /home/
[root@3593a6485284 home]# touch hello # 在容器内新建一个文件
[root@3593a6485284 home]# ls
hello
[root@3593a6485284 home]# exit # 退出容器
exit
[root@fedora ~]# docker ps -a # exit退出,容器被关闭。但不影响文件的拷贝
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3593a6485284 centos "/bin/bash" 3 minutes ago Exited (0) 8 seconds ago sad_jepsen
[root@fedora ~]# docker cp 3593a6485284:/home/hello /root
[root@fedora ~]# ls
anaconda-ks.cfg hello
猜你喜欢
- 2024-10-12 Docker扫盲级别基础操作命令 docker-cn
- 2024-10-12 docker命令讲解(二) docker 命令大全
- 2024-10-12 docker 常用命令整理 docker命令菜鸟教程
- 2024-10-12 Docker必须掌握常用命令 docker常用命令及参数
- 2024-10-12 「这些都不知道你就是个弟弟」Docker常用命令
- 2024-10-12 docker常用命令-其他常用命令 docker常用命令及参数
- 2024-10-12 聊聊 Docker 的存储 Overlay2 docker/overlay2
- 2024-10-12 Docker常用命令与构建中遇到的问题
- 2024-10-12 NVIDIA Jetson 系列文章(5):使用Docker容器的入门技巧
- 2024-10-12 一分钟学会Docker常用命令 docker常用命令大全简书
- 最近发表
- 标签列表
-
- gitpush (61)
- pythonif (68)
- location.href (57)
- tail-f (57)
- pythonifelse (59)
- deletesql (62)
- c++模板 (62)
- css3动画 (57)
- c#event (59)
- linuxgzip (68)
- 字符串连接 (73)
- nginx配置文件详解 (61)
- html标签 (69)
- c++初始化列表 (64)
- exec命令 (59)
- canvasfilltext (58)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- node教程 (59)
- console.table (62)
- c++time_t (58)
- phpcookie (58)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)