频道栏目
首页 > 网络 > 云计算 > 正文

在Ubuntu下安装Docker和关于容器的常用命令

2018-01-02 02:33:20      个评论    来源:wannafly1995的博客  
收藏   我要投稿
一、Docker的安装条件
1.运行64位CPU架构的计算机,Docker目前不支持32位CPU;
2.建议采用Linux3.8或更高版本的内核;
3.内核必须支持一种适合的存储驱动
4.内核必须支持并开启cgroup和命名空间(namespace)功能;
二、在Ubuntu环境下安装Docker
注:建议切换到管理员下边,在终端下输入su命令和密码即可。
1.环境检测

在终端下输入:uname -a命令,可以检测内核版本:

\

检查Device Mapper,在终端下输入:ls -l /sys/class/misc/device-mapper,可以检测Device Mapper:

\

如果没有开启的话,可以尝试加载dm_mod模块:
sudo modprobe dm_mod
2.安装Docker
首先要添加Docker的APT仓库,期间可能会提示我们确认添加仓库并自动将仓库的GPG公钥添加到宿主机中:
sudo sh -c "echo deb https://apt.dockerproject.org/repo ubuntu-xenial main > /etc/apt/sources.list.d/docker.list"
这里的xenial指的是Ubuntu16.04的发行版本名,如果式Ubuntu14.04则是trusty。
检查curl命令是否安装:
sudo lsb-release --codename | cut -f2

\

接下来,添加Docker仓库的GPG密钥:

sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
之后需要更新APT源:
sudo apt-get update
现在可以安装Docker软件包了:

sudo apt-get install docker-engine

\

安装完毕后,输入sudo docker info命令进行确认:

\

三、Docker守护进程
安装完docker后,需要确认Docker的守护进程是否运行,Docker以Root权限来运行它的守护进程,来处理普通用户无法完成的操作(如挂载文件系统)。docker程序是Docker守护进程的客户端程序,同样也需要以root身份运行。用户可以使用docker daemon命令控制Docker守护进程。
当Docker软件包安装完毕后,默认会立即启动Docker守护进程,守护进程监听/var/run/docker.sock这个Unix套接字文件,来获取来自客户端的Docker请求。如果系统中存在名为docker的用户组,Docker会将该套接字文件所有者设为该用户组,docker用户组以后可以直接运行docker而不用sudo命令。尽管docker用户组方便了使用,但这是一个安全隐患,因为docker用户组对Docker和root具有相同的权限。
配置Docker的守护进程
运行Docker守护进程时,可以用-H标志调整守护进程绑定监听接口的方式。
可以使用-H标志指定不同的网络接口和端口配置,命令如下:
sudo docker daemon -H tcp://0.0.0.0:2375
检查Docker守护进程是否运行:
systemctl status docker
打开/关闭docker服务:
sudo service docker start
sudo service docker stop
或者:
systemctl start docker
systemctl stop docker
Docker服务的开机自启动设置:
systemctl enable docker
systemctl disable docker
四、Docker的常用命令
1.新建容器
sudo docker run --name container -i -t ubuntu /bin/bash
建立一个以ubuntu镜像为基础的容器,如果ubuntu镜像不存在的话,会连接官方维护的Docker Hub Registry来拉取镜像,这里建议使用DaoCloud的Docker加速器,因为网络的原因,Docker Hub经常无法拉取。
-i:保证容器中STDIN是开启的,尽管我们没有附着到容器中,持久的标准输入是交互式shell的重要依赖;
-t:为创建的Docker容器分配一个伪tty终端,这样才能提供一个交互式shell;
Docker在文件系统内部用镜像创建了一个新容器,该容器拥有自己的网络和IP地址,以及一个用来和宿主机进行通信的桥接网络接口。这个命令的最后要告诉Docker在新容器中要运行什么命令,这里我们运行了/bin/bash命令启动了一个Bash Shell。

2.可以在容器中输入一些命令,使用一下,比如hostname、cat /etc/hosts、ip a、ps -aux等:

\
3.启动已经停止或者打开容器:
sudo docker start bob_the_container
sudo docker stop bob_the_container
docker stop会向Dokcer容器进程发送SIGTERM信号,如果想快速停止容器,也可以使用docker kill命令来向容器进程发送SIGKILL信号。
4.删除容器:
sudo docker rm bob_the_container
将当前会话附着到容器上:
sudo docker attach bob_the_container
注意:可能需要再按一次回车
查看正在运行的容器:
docker ps
查看最后x个容器:
docker ps -n x
获取容器信息:
sudo docker inspect dameon_dave
查看容器内的进程:
sudo docker top dameon_dave
查看容器的统计信息:
sudo docker stats dameon_dave
查看著机上可用的Docker镜像
sudo docker images
5.创建守护式容器(daemonized container):
守护式容器常用于运行不需要交互界面的,没有交互式会话,非常适合运行应用程序和服务:
sudo docker run --name daemon_con -d ubuntu /bin/sh -c "while true; do echo hello world; sleep 1; done"
这个容器会一直再输出hello world
获取守护式容器的日志:
sudo docker logs daemon_con
这里docker会输出项并返回,如果需要跟踪守护式容器的日志,需要如下命令:
sudo docker logs -f daemon_con
sudo docker logs -ft daemon_con(这个命令可以为每个日志加上时间戳)
上一篇:hive中使用HQL实现wordcount
下一篇:hadoop集成kerberos:kerberos安装配置教程
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站