栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

docker学习笔记-docker容器命令

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

docker学习笔记-docker容器命令

获取镜像
docker pull ubuntu
运行命令:(run)
docker run ubuntu:15.10 /bin/echo "Hello world"
让 docker 运行的容器实现"对话"的能力: (-i -t)
runoob@runoob:~$ docker run -i -t ubuntu:15.10 /bin/bash
root@0123ce188bd8:/#
退出容器:
exit
启动容器(后台模式 -d)
docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo hello world; sleep 1; done"
确认容器有在运行
docker ps 或 docker ps -a
容器内的标准输出
docker logs 
停止容器
docker stop 

通过 docker ps 查看,容器已经停止工作

启动或重启已停止运行的容器
docker start | restart 
进入容器

在使用 -d 参数时,容器启动后会进入后台。此时想要进入容器,可以通过以下指令进入:

docker attach 

注意: 如果从这个容器退出,会导致容器的停止

docker exec -it  /bin/bash

注意: 如果从这个容器退出,容器不会停止

删除容器
docker rm -f 1e560fca3906

# 清理掉所有处于终止状态的容器
docker container prune
导出容器
docker export 1e560fca3906 > ubuntu.tar
导入容器
cat docker/ubuntu.tar | docker import - test/ubuntu:v1

也可以通过指定 URL 或者某个目录来导入

docker import http://example.com/exampleimage.tgz example/imagerepo
实操:WEB 应用容器
# 拉取镜像
docker pull training/webapp

# -P:将容器内部使用的网络端口随机映射到我们使用的主机上
docker run -d -P training/webapp python app.py
或
docker run -d -p 5000:5000 training/webapp python app.py

# 查看指定 (ID 或者名字)容器的某个确定端口映射到宿主机的端口号
docker port bf08b7f2cd89

# -f: 让 docker logs 像使用 tail -f 一样来输出容器内部的标准输出
docker logs -f bf08b7f2cd89

# 使用 docker top 来查看容器内部运行的进程
docker top wizardly_chandrasekhar

# 使用 docker inspect 来查看 Docker 的底层信息
# 它会返回一个 JSON 文件记录着 Docker 容器的配置和状态信息
docker inspect wizardly_chandrasekhar

# 停止容器
docker stop wizardly_chandrasekhar

# 重启容器
docker start wizardly_chandrasekhar

# docker ps -l 查询最后一次创建的容器
docker ps -l

# 正在运行的容器,我们可以使用 docker restart 命令来重启
docker restart wizardly_chandrasekhar

# 我们可以使用 docker rm 命令来删除不需要的容器
docker rm wizardly_chandrasekhar  

删除容器时,容器必须是停止状态,否则会报如下错误
Error response from daemon: You cannot remove a running container 
bf08b7f2cd897b5964943134aa6d373e355c286db9b9885b1f60b6e8f82b2b85. Stop the container 
before attempting removal or force remove
网络端口映射

我们可以指定容器绑定的网络地址,比如绑定 127.0.0.1

docker run -d -p 127.0.0.1:5001:5000 training/webapp python app.py

默认都是绑定 tcp 端口,如果要绑定 UDP 端口,可以在端口后面加上 /udp

docker run -d -p 127.0.0.1:5000:5000/udp training/webapp python app.py
Docker 容器互联 容器命名

当我们创建一个容器的时候,docker 会自动对它进行命名。另外,我们也可以使用 --name 标识来命名容器

docker run -d -P --name runoob training/webapp python app.py
新建网络
docker network create -d bridge test-net

# 查看一下新建网络
docker network ls
连接容器
# 运行一个容器并连接到新建的 test-net 网络:
docker run -itd --name test1 --network test-net ubuntu /bin/bash

# 打开新的终端,再运行一个容器并加入到 test-net 网络:
docker run -itd --name test2 --network test-net ubuntu /bin/bash

下面通过 ping 来证明 test1 容器和 test2 容器建立了互联关系。

如果 test1、test2 容器内中无 ping 命令,则在容器内执行以下命令安装 ping(即学即用:可以在一个容器里安装好,提交容器到镜像,在以新的镜像重新运行以上俩个容器)。

apt-get update
apt install iputils-ping

 在 test1 容器输入以下命令:

在 test2 容器输入以下命令:

这样,test1 容器和 test2 容器建立了互联关系。

如果你有多个容器之间需要互相连接,推荐使用 Docker Compose

配置 DNS

我们可以在宿主机的 /etc/docker/daemon.json 文件中增加以下内容来设置全部容器的 DNS:

{
  "dns" : [
    "114.114.114.114",
    "8.8.8.8"
  ]
}

设置后,启动容器的 DNS 会自动配置为 114.114.114.114 和 8.8.8.8。

配置完,需要重启 docker 才能生效。

查看容器的 DNS 是否生效可以使用以下命令,它会输出容器的 DNS 信息:

# --rm:容器退出时自动清理容器内部的文件系统。
docker run -it --rm  ubuntu  cat etc/resolv.conf

 手动指定容器的配置

如果只想在指定的容器设置 DNS,则可以使用以下命令

docker run -it --rm -h host_ubuntu  --dns=114.114.114.114 --dns-search=test.com ubuntu

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/881010.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号