docker 安装及使用用介绍

安装docker所依赖的基础环境

1 64 bits CPU

2 Linux Kernel 3.10+ //如果低于则需要手动给内核打补丁。因为分层构建联合挂载系统得在3.10内核以版本才有的

3 Linux Kernel Cgroups and Namespace

因为我这里是用yum安装,所以需要有extras repository 仓库。


安装:
~]# yum repolist
...
extras/primary_db //安装依赖于extras仓库,只要有此仓库即可 ~]# yum info docker //查看docker安装信息 ~]# yum install docker -y //安装docker
~]# rpm -ql docker | less //查看docker安装了哪些文件 - 如果需要对下面某个子命令查看帮助,可以: ~]# docker help attach 或 ~] docker attach --help
- [中文手册 http://www.widuu.com](http://www.widuu.com) docker命令使用简述:
[root@localhost ~]# docker --help
Usage: docker [OPTIONS] COMMAND [arg...]
docker [ --help | -v | --version ] A self-sufficient runtime for containers. Options: --config=~/.docker Location of client config files
-D, --debug Enable debug mode
-H, --host=[] Daemon socket(s) to connect to
-h, --help Print usage
-l, --log-level=info Set the logging level
--tls Use TLS; implied by --tlsverify
--tls3acert=~/.docker/ca.pem Trust certs signed only by this CA
--tlscert=~/.docker/cert.pem Path to TLS certificate file
--tlskey=~/.docker/key.pem Path to TLS key file
--tlsverify Use TLS and verify the remote
-v, --version Print version information and quit Commands: attach Attach to a running container //附加至某运行状态的容器的终端设备
build Build an image from a Dockerfile
commit Create a new image from a container's changes
cp Copy files/folders between a container and the local filesystem
create Create a new container
diff Inspect changes on a container's filesystem
events Get real time events from the server
exec Run a command in a running container //让运行中的容器运行一个额外的程序
export Export a container's filesystem as a tar archive
history Show the history of an image
images List images //列出本地已有镜像
import Import the contents from a tarball to create a filesystem image
info Display system-wide information
inspect Return low-level information on a container, image or task
kill Kill one or more running containers //杀死一个容器。还有一种当内存用完成,自动停止容器
load Load an image from a tar archive or STDIN
login Log in to a Docker registry. //登陆到register,然后pull或push镜像
logout Log out from a Docker registry.
logs Fetch the logs of a container //容器内部程序运行时输出到终端的信息,如果有终端的话,包括用户所键入的信息"也就是命令"
network Manage Docker networks //让容器加入网络,默认为docker0
node Manage Docker Swarm nodes
pause Pause all processes within one or more containers
port List port mappings or a specific mapping for the container
ps List containers //列出正在运行的容器, 加-a,列出所有
pull Pull an image or a repository from a registry //下载镜像
push Push an image or a repository to a registry //上传镜像
rename Rename a container
restart Restart a container
rm Remove one or more containers //容器运行终止即自行删除
rmi Remove one or more Images //删除镜像
run Run a command in a new container //包含create和start
save Save one or more images to a tar archive (streamed to STDOUT by default)
search Search the Docker Hub for images //搜索镜像文件
service Manage Docker services
start Start one or more stopped containers
stats Display a live stream of container(s) resource usage statistics
stop Stop one or more running containers //停止一个容器
swarm Manage Docker Swarm
tag Tag an image into a repository
top Display the running processes of a container
unpause Unpause all processes within one or more containers
update Update configuration of one or more containers
version Show the Docker version information
volume Manage Docker volumes
wait Block until a container stops, then print its exit code ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
仓库 标签 镜像自己的ID 创建时间 镜像的大小 ~]# docker search busybox
~]# docker pull docker.io/busybox:latest //冒号后标签可不写,默认库最新的。此时本机会联上docker.io register去拉取最新的镜像。 ~]# docker help run
--name string //名称
--rm //容器一停,立即删除
-i, --interactive //交互式接口,一启动便可交互
-t, --tty //附加一个终端
--network string //让容器附加在某个网络上
~]# ip a
4: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN
link/ether 02:42:e7:f3:cc:df brd ff:ff:ff:ff:ff:ff
inet **172.17.0.1/16** scope global docker0
valid_lft forever preferred_lft forever
//在启动docker服务时,docker会自动创建一个桥叫docker0,NAT桥 ~]# iptables -t nat -vnL
Chain POSTROUTING (policy ACCEPT 15 packets, 1800 bytes)
pkts bytes target prot opt in out source destination
0 0 MASQUERADE all -- * !docker0 172.17.0.0/16 0.0.0.0/0 //这一条规则就说明了,此docker0的网络是NAT模式的。自带dhcp功能 可以启动busybox服务:
~]# docker run --name test1 -it docker.io/busybox:latest
/ # ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
23: eth0@if24: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1500 qdisc noqueue
link/ether 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff:ff
inet **172.17.0.2/16** scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::42:acff:fe11:2/64 scope link
valid_lft forever preferred_lft forever
/ #
//可以看到启动的busybox已经分配到了ip地址 //重新打开一个会话窗口
[root@localhost ~]# docker ps -a //列出当前容器
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c2fd90aedeb8 docker.io/busybox:latest "sh" 12 seconds ago Up 11 seconds test1

注意:

创建容器:基于镜像,镜像文件得有默认运行的程序

运行的容器内部必须有一个工作于前台的程序,切不可转换至后台;

docker的容器通常也是仅为运行一个程序;

要想在容器内运行多个程序,一般需要提供一个管控程序,例如:supervised

~]# docker -it //这个选项是因为bash这个程序一直运行于前台,并且交互中启动的程序都是bash进程下的子进程,这样是启动多个进程的一种方式。


常用命令

启动相关命令:

--name string
--rm : 容器运行终止即自行删除
--network BRIDGE : 让容器加入相应的网络,默认为docker0 交互式启动容器:
-i,--interactive : 交互式
-t,--tty : 启动一个终端
从终端拆除: ctrl+p,ctrl+q 连续按ctrl+p+q 也可以。如果想在次连接进入容器,可直接 ~]# docker attach "NAMES" attach : 附加至某运行状态的容器的终端设备

查看容器相关信息:

logs : 容器内部程序运行时输出到终端的信息,如果有终端的话,包括用户所键入的信息"也就是命令"

ps : list containers
-a,--all :列出所有容器
-filter,-f : 过滤条件显示
name=
status{stopped|running|paused}
stats : 动态方式显示容器的资源占用状态 top :显示一个容器内部正在运行的命令

容器的状态

  • created
  • running
  • paused
  • stop
  • deleted

下图非常详细的解释每种状态的变化:

docker 安装及使用介绍的更多相关文章

  1. Docker安装Redis并介绍漂亮的可视化客户端进行操作

    1 简介 Redis是使用ANSI C语言开发的基于Key-Value的高性能NoSQL数据库,在解决高并发.高可用等一系列问题中,它扮演着重要的角色.它的优势主要有: 速度快. 持久化. 原子性. ...

  2. Docker的安装与使用介绍

    docker是什么? Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源. Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后 ...

  3. 调度系统Airflow1.10.4调研与介绍和docker安装

    Airflow1.10.4介绍与安装 现在是9102年,8月中旬.airflow当前版本是1.10.4. 随着公司调度任务增大,原有的,基于crontab和mysql的任务调度方案已经不太合适了,需要 ...

  4. 微服务分布式电商项目学习笔记(三)---- docker介绍安装以及使用docker安装软件(2020/7/10)

    其实在介绍docker的使用和安装之前应该还要介绍虚拟机的安装与配置,以及虚拟网络的配置,但是我使用的是vmware,而视频课使用的是vagrant,这一块我简看的,因此没有过多的介绍,至于vmwar ...

  5. 理解Docker(1):Docker 安装和基础用法

    本系列文章将介绍Docker的有关知识: (1)Docker 安装及基本用法 (2)Docker 镜像 (3)Docker 容器的隔离性 - 使用 Linux namespace 隔离容器的运行环境 ...

  6. 2. Docker - 安装

    一.Docker介绍 1. Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上, 也可以实现虚拟化. 容器时完全使用沙 ...

  7. 使用docker安装部署Spark集群来训练CNN(含Python实例)

    使用docker安装部署Spark集群来训练CNN(含Python实例) http://blog.csdn.net/cyh_24/article/details/49683221 实验室有4台神服务器 ...

  8. Centos7通过Docker安装Sentry(哨兵)

    Docker介绍 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制, ...

  9. 使用docker安装mysql和redis

    本文介绍在linux下使用docker安装mysql和redis. 原文地址:代码汇个人博客 http://www.codehui.net/info/59.html 测试环境:centos7.6,do ...

随机推荐

  1. python中pygame游戏打包为exe文件

    pyinstaller打包游戏的方法: 1.在命令窗口安装pyinstaller ->pip install pyinstaller 2.查看安装的版本信息 pyinstaller -v 3.进 ...

  2. array_slice

    array_slice  分割数组, 效果相当于 substr 类似字符串操作

  3. [简短问答]C-Lodop中一些测试用的地址

    测试访问:访问http://localhost:8000欢迎页面试试进入欢迎页面http://localhost:8000,点欢迎页面的预览试试 查看下c-lodop启动界面,在设置里查看下当前启动的 ...

  4. Kubernates之从pod中拷贝文件到宿主机

    想从k8s的pod中拷贝文件到宿主机,kubectl 的cp命令,但是网上搜索了下,感觉有点乱,自己记录下. hadoop这个namespace下,有个hadoop-hadoop-yarn-rm-0的 ...

  5. 机器学习技法总结(四)(aggregation,vote,bootstrap...)

    研究的动机是:我们采用了不同的模型得到T个不同的g,那么我们是不是可以通过这些不同的g的融合得到更加出色的G呢?因此,便有了以上四种不同的方法:1)(select)直接选择最好的一个作为融合的结果:2 ...

  6. mybatis中封装结果集常见示例

    1.返回一个对象 public interface EmployeeMapper { public Employee getEmpByMap(Map<String, Object> map ...

  7. 05 javascript知识点---BOM和DOM

    1.DOM简单学习(为了满足案例要求) 功能:控制html文档的内容获取页面标签(元素)对象:Element document.getElementById("id值"):通过元素 ...

  8. setInterval定时器停止后,再重新启动

    1.数据自动滚动显示(动态添加) <li> <div class="FULeTi"> <div class="SLeName"&g ...

  9. 【转帖】MySQL用得好好的,为什么要转ES?

    MySQL用得好好的,为什么要转ES? http://developer.51cto.com/art/201911/605288.htm Elasticsearch作为一款功能强大的分布式搜索引擎,支 ...

  10. 安装donkeyid

    cd /usr/local/php/include/php/ext sudo git clone https://github.com/osgochina/donkeyid.git cd /usr/l ...