1 查看所有容器
可使用
docker ps -a
查看所有容器。
2 基于已有镜像启动容器
以ubuntu镜像为例,如果之前没有拉取ubuntu镜像,先使用
docker pull ubuntu
拉取镜像,然后根据ubuntu镜像启动一个容器并进入该容器
docker run -i -t --name=my_ubuntu ubuntu /bin/bash
其中:
- -i:表示交互式操作
- -t:表示终端
- --name:设置容器名字,此时容器名称为my_ubuntu
- ubuntu:表示使用ubuntu镜像为基础运行一个容器
- /bin/bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash
如果想要容器后台运行,则加上-d
,即
docker run -i -t -d ubuntu /bin/bash
要想退出容器终端,直接输入
exit
退出容器即可。
3 根据容器ID启用容器、停止容器、重启容器
通过
docker ps -a
查看当前所有容器,并获取需要操作的容器的ID。
然后通过以下命令启用容器、停止容器、重启容器
docker start <容器ID或者名称> # 启动一个已停止的容器
docker stop <容器ID或者名称> # 停止一个容器
docker restart <容器ID或者名称> # 重启一个容器
4 进入容器
在使用 -d 参数时,容器启动后会进入后台。此时想要进入容器,可以通过以下命令进入:
- docker attach
- docker exec
推荐大家使用 docker exec 命令,因为此命令会退出容器终端,但不会导致容器的停止。
docker attach
docker attach <容器ID或者名称>
使用这种方法进入容器,然后使用exit退出容器,会导致容器停止。
docker exec
docker exec -it <容器ID或者名称> /bin/bash
使用这种方法进入容器,然后使用exit退出容器,不会导致容器停止。
5 导入和导出容器
5.1 export和import
(1)使用 docker export 命令根据容器ID将镜像导出成一个文件
docker export <容器ID或者名称> > <文件名>
比如
docker export f299f501774c > hangger_server.tar
(2)使用 docker import 命令导入镜像文件
docker import - <镜像名称> < <文件名称>
比如
docker import - new_hangger_server < hangger_server.tar
5.2 save和load
(1)使用 docker save 命令根据 ID 将镜像保存成一个文件
docker save [OPTIONS] IMAGE [IMAGE...] ## 语法
## -o, --output string 参数 -o 写入指定的文件。
比如
docker save -o nginx.tar nginx:latest
其中 nginx.tar
为保存的文件名,其中 nginx:latest
为镜像名称和标签。
(2)使用 docker load 命令将载入镜像文件
docker load [OPTIONS] ## 导入镜像语法
## Options:
## -i, --input string 指定镜像位置
## -q, --quiet 抑制输出内容
比如
docker load -i nginx.tar
6 删除容器
可使用以下命令删除容器
docker rm -f <容器ID或者名称>
7 命名容器
当我们创建一个容器的时候,docker 会自动对它进行命名。另外,我们也可以使用 --name 标识来命名容器,例如:
docker run -i -t --name stubbornhuang_ubuntu ubuntu /bin/bash
8 容器网络端口映射
容器中可以运行服务器应用,如果要让外部也可以访问这些服务,就需要进行docker内部端口与本机端口的映射,我们可以使用-P
和-p
参数指定容器的端口映射,其中
- -P:是容器内部端口随机映射到主机的端口
- -p:是容器内部端口映射到指定的主机端口
比如,创建一个java服务器应用的容器,端口为19994,使用-P
进行容器端口随机映射到主机端口
docker run -d -P myjava java -jar ./server.jar
使用docker ps
可以看到将容器端口19994随机映射到了端口8865
runoob@runoob:~$ docker ps
CONTAINER ID IMAGE COMMAND ... PORTS NAMES
fce072cc88ce myjava "java -jar ./server.jar" ... 0.0.0.0:8865->19994/tcp grave_hopper
如果不想随机映射端口,可以使用-p
直接指定端口,比如将容器端口19994指定映射到主机端口19995
docker run -d -p 19995:19994 myjava java -jar ./server.jar
我们可以指定容器绑定的网络地址,比如绑定 127.0.0.1,这样就可以通过访问 127.0.0.1:19995来访问容器的19994端口
docker run -d -p 127.0.0.1:19995:19994 myjava java -jar ./server.jar
上面的例子中,默认都是绑定tcp端口,如果要绑定udp端口,可以在端口后面加上 /udp,如
docker run -d -p 19995:19994/udp myjava java -jar ./server.jar
我们可以使用
docker port <容器ID或者名称>
指定上述命令之后将会返回容器的所有映射端口信息。例如:
80/tcp -> 0.0.0.0:32769
其中80/tcp
表示容器内部的端口号,0.0.0.0
表示容器所在的主机地址,32679
表示映射到主机上的端口号,我们可以通过访问主机的32769端口来访问容器内部的应用程序。
如果容器未映射任何端口,则docker port
命令不会有任何输出。
本文作者:StubbornHuang
版权声明:本文为站长原创文章,如果转载请注明原文链接!
原文标题:Docker – 容器操作入门指南
原文链接:https://www.stubbornhuang.com/2795/
发布于:2023年09月09日 14:51:05
修改于:2023年09月12日 15:11:33
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
评论
52