docker命令

容器

yum install docker #根据提示安装yum

apt install docker #根据提示安装docker
docker run ubuntu:15.10 /bin/echo “hello world” #运行ubuntu15.10镜像形成容器,并在容器里执行hello world ,如果没有镜像会去下载

docker run -it ubuntu:15.10 /bin/bash #运行交互式的容器,通过-i(伪终端)-t(交互)让docker运行的容器实现对话的能力,一个容器相当于一个linux操作系统,和其它容器和宿主机没有关系
root@54654231346dfjds:/# #进入了ubuntu系统的容器内部

cat /proc/version #查看当前系统版本

exit 或 ctrl + D #退出容器

docker ps #查看正在运行的容器

docker stop ubuntu:15.10 #停止容器

docker 会列出许多使用方法 docker stats --help 命令使用方法

docker pull ubuntu #获取镜像

docker run -it ubuntu /bin/bash #运行容器并进入交互式终端

docker ps -a #查看所有的容器

docker start b750bbbcfd88 #启动一个已停止的容器

docker run -itd --name ubuntu-test ubuntu /bin/bash #-d后台运行容器

docker attach
docker exec 后台时的容器,想进去用这两个随意一个,推荐第二个,因为它退出容器终端,不会导致容器停止
docker attach b750bbbcfd88
docker exec -it b750bbbcfd88 /bin/bash

docker stop 容器id #停止一个容器

docker restart 容器id #重启容器

docker export b750bbbcfd88 > ubuntu.tar #导出本地某个容器

cat docker /ubuntu.tar | docker import - test/ubuntu:v1 #使用docker import 从容器快照文件中在导入为镜像,以下实例将快照文件ubuntu.tar导入到镜像test/ubuntu:v1

docker rm -f b750bbbcfd88 #删除容器

docker container prnue #清理掉所有处于终止状态的容器

运行web应用
docker pull training/webapp #载入镜像
docker run -d -p training/webapp python app.py #-d后台 -p将容器内部使用的网络端口映射到我们使用的主机上
docker ps
docker run -d -p 5000:5000 training/webapp app.py #容器内部的端口映射到本地主机上

查看端口映射情况可以docker ps查看全部,也可以查看指定容器
docker port b750bbbcfd88 或 docker port joker-name

docker logs id名字 #查看web应用程序日志
docker logs -f b750bbbcfd88 #-f是标准输出

docker top name 或 docker top b750bbbcfd88 #查看容器内部容器运行的进程

docker inspect #查看docker的底层信息,返回一个json文件,记录docker容器的配置和状态信息

docker stop name #停止web应用容器

docker start name #重启web应用容器

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

docker restart #重启docker

docker rm name #移除web应用容器,移除前必需停止容器,否则会报错

docker -v #查看docker是否安装正确

linux环境配置:
pwd :查看路径
sudo find / -name xxx
sudo gedit ~/.profile
文件末尾添加:
export PATH="$PATH:your path"
重启生效
启动docker:service docker start

停止docker:service docker stop

重启docker:service docker restart

查看docker状态:service docker status

开机启动:chkconfig docker on

查看docker概要信息:docker info

查看docker帮助文档:docker --help

错误:Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.40/version: dial unix /var/run/docker.sock: connect: permission denied
解决方法:sudo groupadd docker #添加docker用户组
sudo gpasswd -a $USER docker #将登陆用户加入到docker用户组中
newgrp docker #更新用户组
docker ps #测试docker命令是否可以使用sudo正常使用
或,用sudo来执行命令也可以

配置加速原
cd /etc/docker
vim daemon.json
{
“registry-mirrors”:[“https://m9r2r2uj.mirror.aliyuncs.com”]
}
保存退出
重启docker服务
service docker restart

下载镜像 :docker pull java:8

列出镜像 :docker images

删除本地镜像 :docker rmi java

新建并启动容器:docker run -d -p 91:80 nginx

镜像

docker images #列出镜像列表

docker run -it ubuntu:15.10 /bin/bash #运行指定版本镜像

docker pull ubuntu:13.10 #获取一个新的镜像

docker search httpd #查找镜像

docker rmi ubuntu #删除镜像

创建镜像方法:当下载的镜像不满足需求时1.从已经创建的容器中更新镜像,并且提交这个镜像 2.使用dockerfile指令来创建一个容器
更新镜像前,需要使用镜像来创建一个容器 docker run -it ubuntu:15.10 /bin/bash
在运行的容器内使用apt-get update命令进行更新
在完成操作后使用exit命令来退出这个容器
使用docker commit来提交容器副本
docker commit -m=“has update” -a=“runoob” b750bbbcfd88 runoob/ubuntu:v2 #-m提交的描述信息 -a指定镜像作者 b750bbbcfd88容器id runoob/ubuntu:v2指定要创建的目标镜像名

docker run -it runoob/ubuntu:v2 /bin/bash #启动新镜像

构建
cat Dockerfile
docker build -t runoob/centos:6.7 #-t指定要创建的目标镜像名 .:Dockerfile文件所在目录,可以指定Dockerfile的绝对路径
docker images
docker run -it runboot/centos:6.7 /bin/bash #创建容器
id runboot
docker tag b750bbbcfd8 runboot/contos:dev #为镜像添加一个新的标签dev id是相同的

网络端口映射 TCP
docker run -d -P training/webapp python app.py #创建一个python应用的容器
docker ps
docker run -d -P 5000:5000 training/webapp python app.py
docker ps
docker run -d -P 127.0.0.1:5001:5000 training/webapp python app.py #这样我们就可以通过访问 127.0.0.1:5001 来访问容器的 5000 端口
UDP
docker run -d -P 127.0.0.1:5001:5000/udp training/webapp python app.py
docker ps
docker port name 5000 #查看端口绑定情况

容器互联

端口映射并不是唯一把 docker 连接到另一个容器的方法。
docker 有一个连接系统允许将多个容器连接在一起,共享连接信息。
docker 连接会创建一个父子关系,其中父容器可以看到子容器的信息。

docker run -d -P --name runoob training/webapp python app.py #命名容器
docker ps -l
docker network create -d bridge test-net #创建一个新的docker网络 -d指定docker网络类型,有bridge,overlay
docker run -itd --name test1 --network test-net ubuntu /bin/bash #运行一个容器连接到新建的test-net网络
docker run -itd --name test2 --network test-net ubuntu /bin/bash #打开新的终端,再运行一个容器加入到test-net网络
ping一下查看是否容器互联
如果没有ping命令执行 apt-get update apt install iputils-ping
如果你有多个容器之间需要互相连接,推荐使用 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 信息:

$ 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
参数说明:

–rm:容器退出时自动清理容器内部的文件系统。

-h HOSTNAME 或者 --hostname=HOSTNAME: 设定容器的主机名,它会被写到容器内的 /etc/hostname 和 /etc/hosts。

–dns=IP_ADDRESS: 添加 DNS 服务器到容器的 /etc/resolv.conf 中,让容器用这个服务器来解析所有不在 /etc/hosts 中的主机名。

–dns-search=DOMAIN: 设定容器的搜索域,当设定搜索域为 .example.com 时,在搜索一个名为 host 的主机时,DNS 不仅搜索 host,还会搜索 host.example.com。
如果在容器启动时没有指定 --dns 和 --dns-search,Docker 会默认用宿主主机上的 /etc/resolv.conf 来配置容器的 DNS。

docker仓库管理

来自docker hub
docker login
docker logout
docker sraech ubuntu
docker pull ubuntu
docker push #将自己的镜像推送到docker hub

docker tag 账号/ubuntu:18.04
docker images ls
docker push 账号/ubuntu:18.04
docker search 账号/ubuntu

dockerfile

他是用来构建镜像的文本文件,文本内容包括一条条构建镜像所需的指令和说明

下面以定制一个 nginx 镜像(构建好的镜像内会有一个 /usr/share/nginx/html/index.html 文件)

在一个空目录下,新建一个名为 Dockerfile 文件,并在文件内添加以下内容

mkdir Dockerfile

cd Dockerfile

vi Dockerfile

cat Dockerfile

FROM nginx
RUN echo ‘这是一个本地构建的nginx镜像’ > /usr/share/nginx/html/index.html

docker compose

docker-compose up #启动应用程序

docker-compose up -d #后台

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

͝͝͝͝͝͝͝͝͝͝L Y H

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值