标签:fir 磁盘 状态 指令 centos 7 修改 sock 大小 千万
Docker是一个开源的应用容器引擎,属于Linux容器的一种封装,是目前最流行的Linux容器解决方案。docker可以为任何应用创建一个轻量级、可移植的容器,然后容器可以运行在任何安装有docker的平台上。1、安装yum相关工具包yum install -y yum-utils device-mapper-persistent-data lvm2
2、添加docker下载源
(1)添加docker官方源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum makecache fast
(2)添加国内阿里云下载节点
注:国内连接docker官方提供的源下载速度比较慢,我这里使用的是阿里云的源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum makecache fast
3、安装docker
注:安装的是docker社区版本yum -y install docker-ce
4、更改镜像源为国内阿里云节点,并指定docker数据存储目录
mkdir -p /data/docker
mkdir -p /etc/docker
vim /etc/docker/daemon.json
注:docker安装好后默认没有此文件,需要手动创建,添加阿里云镜像节点,并指定docker存储目录
{
"registry-mirrors": ["https://registry.docker-cn.com"], "graph": "/data/docker"
}
5、启动docker,并加入开机启动
systemctl start docker
systemctl enable docker
6、测试
(1)下载hello-world镜像docker pull hello-world
(2)运行hello-world镜像docker run hello-world
这个image(镜像)运行后很简单,就是打印了这段话。告诉我们已经成功的让docker daemon(核心进程)从docker hub(镜像源)上拉了一个”hello-world”的image,并且通过这个image创建了一个container(容器),并且通过daemon将输出的内容传回了docker client(客户端)。
Docker使用客户端/服务器(C/S)架构模式,使用远程API来管理和创建docker容器。Docker Client向Docker daemon发起请求,Docker daemon负责构建、运行和分发容器。Docker client也可以通过socket或REST API与远程的Docker daemon通信。
Docker安装成功后,默认是没有存储目录的,在启动的时候才会创建存储目录。我们来看下docker都有哪些目录吧。ls -lh /data/docker/
containerd目录里存放的是与daemon程序相关的数据。
image和overlay2目录里存放的是与镜像相关的数据。每下载一个镜像,就会在这两个目录下生成此镜像对应的子目录与数据;每运行一个镜像,即通过镜像创建一个容器,这两个目录下也会生成相关子目录与数据信息。
containers目录里存放的是容器相关的数据,每运行一个容器,就在这个目录下面生成一个容器Id对应的子目录与数据。
tmp是临时文件存放目录。
volumes与docker的数据卷相关,在此不进行扩展。
1、查看docker版本信息
docker -v #查看docker版本号
docker version #查看docker版本详细信息
2、查看docker系统信息docker info
3、从镜像仓库查找镜像docker search ubuntu #搜索包含ubuntu的镜像
4、下载镜像docker pull ubuntu #下载ubuntu官方镜像
5、查看本地镜像docker images
REPOSITORY:镜像名称,与镜像仓库上的名称一致
TAG:标记,下载的镜像默认会使用latest标记
IMAGE ID:镜像ID
CREATED:镜像创建时间
SIZE:镜像占用磁盘空间大小
6、给本地镜像做个标记docker tag ubuntu:latest ubuntu1:test #将ubuntu镜像的名称改为ubuntu1,标记改为test
注:使用docker images查看会多出来一行,修改后的image id和原来的一样,个人认为只是做了个标记而已,实际运行的话还是得运行ubuntu镜像,运行ubuntu1的话会报错。
7、通过镜像创建并启动容器
(1)以交互模式创建并启动一个容器docker run --name ubuntu_test -it ubuntu /bin/bash
参数说明:
--name:为容器指定一个名称
-i:打开容器的标准输入,即以交互模式运行容器
-t:为容器分配一个伪终端
/bin/bash:表示运行bash shell,即运行命令行界面
此时已经进入到容器里的ubuntu系统,可以定制我们自己的应用容器,可安装配置应用软件,就跟实际环境一样部署自己的应用。
exit命令退出与容器的交互模式。
(3)以后台的方式创建并启动一个容器docker run --name ubuntu_test1 -d ubuntu
注:返回容器的ID
(4)使用-P参数将80端口映射到主机随机端口docker run -P -d nginx:latest #例如容器上启动了nginx,端口号为80
(5)使用-p参数指定映射端口,使用-v参数指定映射目录docker run -p 8081:80 -v /data_test:/data -d nginx:latest
注:将容器的80端口映射到主机8081端口,将容器/data目录映射到主机/datatest目录
(6)将容器的端口映射到主机指定IP的端口上docker run -p 192.168.2.226:8081:80 -d nginx:latest
8、查看容器信息
(1)查看所有容器docker ps -a
CONTAINER ID:容器ID
IMAGE:属于哪个镜像
COMMAND:运行的命令、脚本或其他指令
CREATED:容器创建时间
STATUS:运行状态及运行了多长时间
PORTS:端口映射信息
NAMES:容器名称
(2)查看运行中的容器docker ps
(3)查看最近创建的3个容器docker ps -n 3
(4)查看所有容器的IDdocker ps -a -q
9、启动、停止、重启容器
注:可以指定容器ID,也可以指定容器名称docker start 665b9b704983
启动之后STATUS会显示Up(运行)及运行了多长时间
docker stop 665b9b704983
docker restart ubuntu_test
10、删除容器
docker rm wizardly_albattani #不加参数只能删除已停止的容器
docker rm -f -v ubuntu_test #-f强制删除运行中的容器,-v删除与容器关联的数据卷
11、删除镜像
docker rmi ubuntu:latest
docker rmi -f ubuntu1:test #-f强制删除镜像,即使该镜像正被使用
12、杀掉一个运行中的容器docker kill -s KILL ubuntu_test1 #-s "KILL" 表示向容器发送一个KILL信号
1、下载centos的最新镜像docker pull centos
2、创建并启动容器docker run -itd --privileged --name centos_test -p 80:80 centos /usr/sbin/init
参数说明:
-itd:开启交互模式,分配一个伪终端,-d表示以后台方式运行
--privileged:使容器内的root拥有真正的root权限,可以看到很多host上的设备,甚至允许在容器中启动容器。
-p 80:80:将容器的80端口映射到宿主机(即本机)的80端口
/usr/sbin/init:启动init守护程序
3、登陆到此容器中docker exec -it centos_test /bin/bash
参数说明:
exec:进入到一个运行中的容器里
-i:保持STDIN 打开,即开启交互模式
-t:分配一个伪终端
此时命令行提示符已经改变,主机名变成了容器id
4、在容器中安装httpd服务yum -y install httpd
5、在容器中启动httpd服务,并加入开机启动
systemctl start httpd
systemctl enable httpd
6、退出容器exit
7、确保本机没有装httpd服务
rpm -qa | grep httpd
systemctl status httpd
8、在本机查看80端口是否已监听ss -lnt | grep 80
9、在本机上查看httpd进程信息ps -ef |grep httpd
千万不要搞混,此处的httpd进程不是本机的,而是容器里启动的httpd进程
10、配置firewalld防火墙允许80端口
firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --reload
11、通过浏览器访问http://192.168.2.226
OK,能正常访问到apache的主页
12、把修改过的容器制作成镜像docker commit -a "xuad.com" -m "xuad httpd" 6f42b25c1f00 centos/httpd:test
参数说明:
-a:提交的镜像作者信息
-m:镜像的说明文字
6f42b25c1f00:容器ID
centos/httpd:test:镜像名称和标记信息
Centos 7部署docker环境、基本命令使用及简单实战
标签:fir 磁盘 状态 指令 centos 7 修改 sock 大小 千万
原文地址:http://blog.51cto.com/andyxu/2174652