目录
1、docker run
2、docker ps
3、两种退出容器的方法
4、容器的操作
5、查看容器的详细信息
6、进入一个正在运行的容器
7、把容器里的数据拷贝到目的主机
8、导入或导出容器
9、Docker命令的总结
1、docker run
- --name =“容器的名字” 为容器指定一个新名字
--name string Assign a name to the container
- -d 后台运行容器并返回容器ID,也即启动守护式容器(后台运行)
-d, --detach Run container in background
- -it 启动交互式容器 ( -i interactive -t tty)
- -P 随机端口映射
- -p 指定端口映射
举例:启动一个ubuntu容器
[root@localhost ~]# docker run --name="my_ubuntu" -it -d ubuntu /bin/bash
2、docker ps
- docker ps 查看正在运行的容器
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
dd495b29eef4 ubuntu "/bin/bash" 6 seconds ago Up 3 seconds my_ubuntu
c76022d34927 ubuntu "/bin/bash" About a minute ago Up About a minute interesting_pasteur
- docker ps -a 查看所有的容器
[root@localhost ~]# docker ps --all
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
dd495b29eef4 ubuntu "/bin/bash" 3 minutes ago Up 3 minutes my_ubuntu
c76022d34927 ubuntu "/bin/bash" 5 minutes ago Up 4 minutes interesting_pasteur
17b10c53b210 hello-world "/hello" 6 days ago Exited (0) 6 days ago condescending_bhabha
cef1fc2cc060 my_de/my_ubuntu:3.14 "/bin/bash" 6 days ago Exited (0) 3 days ago cool_boyd
897f200b2d42 redis "docker-entrypoint.s…" 6 days ago Exited (0) 3 days ago optimistic_shockley
27034d120c68 redis "docker-entrypoint.s…" 6 days ago Exited (0) 6 days ago blissful_mendeleev
2e76ad817c05 redis "docker-entrypoint.s…" 6 days ago Exited (0) 6 days ago musing_newton
41b12154b9ec ubuntu "/bin/bash" 6 days ago Exited (0) 3 days ago my_ubutu
b6d8a11fab25 ubuntu "/bin/bash" 6 days ago Exited (130) 6 days ago focused_liskov
3、两种退出容器的方法
- 1、exit 退出容器后容器停止
- 2、ctrl + p + q 退出容器后容器不停止
4、容器的操作
- 启动已停止运行的容器 docker start容器ID或者容器名
- 重启容器 docker restart容器ID或者容器名
- 停止容器 docker stop 容器ID或者容器名
- 强制停止容器 docker kill 容器ID或容器名
- 删除已停止的容器 docker rm容器ID
5、查看容器的详细信息
- 1、查看容器日志
[root@localhost ~]# docker logs a714510538d3
2022-12-08 09:35:08+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.27-1debian10 started.
2022-12-08 09:35:08+00:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql'
2022-12-08 09:35:08+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.27-1debian10 started.
2022-12-08 09:35:09+00:00 [Note] [Entrypoint]: Initializing database files
- 2、查看容器的进程
[root@localhost ~]# docker top dd
UID PID PPID C STIME TTY TIME CMD
root 8161 8138 0 10:41 pts/0 00:00:00 /bin/bash
- 3、查看容器内部信息
[root@localhost ~]# docker inspect dd
[
{
"Id": "dd495b29eef404578fa7946c8e9727c1431a9ce7b99e5f05a0bc1d4001fe45cb",
"Created": "2022-12-03T15:41:50.732405738Z",
"Path": "/bin/bash",
"Args": [],
"State": {
"Status": "running",
"Running": true,
"Paused": false,
"Restarting": false,
"OOMKilled": false,
"Dead": false,
"Pid": 8161,
"ExitCode": 0,
"Error": "",
"StartedAt": "2022-12-03T15:41:52.780187309Z",
"FinishedAt": "0001-01-01T00:00:00Z"
},
6、进入一个正在运行的容器
[root@localhost ~]# docker exec -it dd495b29eef4 /bin/bash
root@dd495b29eef4:/#
[root@localhost ~]# docker attach dd
root@dd495b29eef4:/#
- 两种方法有什么不同:
- attach 直接进入容器启动命令的终端,不会启动新的进程用exit退出,会导致容器的停止。
- exec 是在容器中打开新的终端,并且可以启动新的进程用exit退出,不会导致容器的停止
7、把容器里的数据拷贝到目的主机
[root@localhost ~]# docker cp dd495b29eef4:/tmp/aaa /tem/
8、导入或导出容器
- export 导出容器的内容留作为一个tar归档文件[对应import命令]
- import 从tar包中的内容创建一个新的文件系统再导入为镜像[对应export]
- 举例:
- docker export 容器ID>文件名tar
- cat 文件名.tar | docker import- 镜像用户/镜像名:镜像版本号
- 实例导出:
[root@localhost ~]# docker export f1b60a7302e0 > myimages.tar
[root@localhost ~]#
- 导入成镜像
[root@localhost ~]# ls
anaconda-ks.cfg myimages.tar
[root@localhost ~]# cat myimages.tar | docker import - myubuntu
sha256:2735e861e7c54b2a2b6026619c63c096bdbbf5cd70fe33b4a5233fa3a017cd8e
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
myubuntu latest 2735e861e7c5 51 seconds ago 72.8MB
qiang_ge/ubuntu latest 25d741360324 8 days ago 72.8MB
9、Docker命令的总结
# 本地镜像管理命令
docker images # 列出本地镜像。
docker rmi # 删除本地一个或多个镜像。
docker tag # 标记本地镜像,将其归入某一仓库。
docker build # 使用 Dockerfile 创建镜像。
docker history # 查看指定镜像的创建历史。
docker save # 将指定镜像保存成 tar 归档文件。
docker load # 导入使用 docker save 命令导出的镜像。
docker import # 从归档文件中创建镜像。
# 容器操作命令
docker ps # 列出本地容器.
docker inspect # 获取容器/镜像的元数据。
docker top # 查看容器中运行的进程信息,支持 ps 命令参数。
docker attach # 连接到正在运行中的容器,类比exec。
docker events # 从服务器获取实时事件。
docker logs # 获取容器的日志。
docker wait # 阻塞运行直到容器停止,然后打印出它的退出代码。
dokcer export # 将文件系统作为一个tar归档文件导出到STDOUT。
docker port # 列出指定的容器的端口映射,或者查找将PRIVATE_PORT NAT到面向公众
的端口。
# 容器生命周期管理命令
docker run # 创建一个新的容器并运行一个命令
docker start/stop/restart # 启动/停止/重启 一个或多个容器
docker kill # 杀掉一个运行中的容器。
docker rm # 删除一个或多个容器。
docker pause/unpause # 暂停/恢复 容器中所有的进程。
docker create # 创建一个新的容器但不启动它。
docker exec # 在运行的容器中执行命令(新的终端窗口),类比attach。
# 容器rootfs命令
docker commit # 从容器创建一个新的镜像。
docker cp # 用于容器与主机之间的数据拷贝。
docker diff # 检查容器里文件结构的更改。
# 镜像仓库管理命令
docker login # 登陆到一个Docker镜像仓库,如果未指定镜像仓库地址,默认为官方仓库 Docker Hub
docker logout # 登出一个Docker镜像仓库,如果未指定镜像仓库地址,默认为官方仓库 Docker Hub
docker pull # 从镜像仓库中拉取或者更新指定镜像
docker push # 将本地的镜像上传到镜像仓库,要先登陆到镜像仓库
docker search # 从Docker Hub查找镜像
# docker 信息
docker info # 显示 Docker 系统信息,包括镜像和容器数。
docker version # 显示 Docker 版本信息。