Docker容器技术
一.安装docker
需要阿里的epel源,需要联网
[root@bogon ~]#yum -y install docker
[root@bogon ~]#systemctl start docker
[root@bogon ~]#systemctl enable docker
二.查看docker版本
[root@bogon ~]#docker version
查看docker详细信息
[root@bogon ~]#docker info
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/ 连接的镜像
三.查看网络仓库镜像文件
[root@bogon ~]# docker search -s 100 nginx
[root@bogon ~]# docker search dhcpd
[root@bogon ~]# docker search -s 100 httpd
四.因为本地没有Nginx镜像,需要去联网下载
[root@bogon ~]# docker pull docker.io/nginx
[root@bogon ~]# docker pull docker.io/networkboot/dhcpd
[root@bogon ~]# docker pull docker.io/httpd
五.查看下载后的镜像,(下载到了本地镜像里面)
[root@bogon ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/nginx latest 53f3fd8007f7 About an hour ago 109 MB
docker.io/httpd latest b7cc370ac278 2 hours ago 132 MB
docker.io/networkboot/dhcpd latest 52cbff801df2 7 weeks ago 105 MB
六.查看Nginx的详细信息(很少用)
[root@bogon ~]# docker inspect 53f3fd8007f7
七.修改镜像标签的名称
[root@bogon ~]# docker tag docker.io/nginx nginx:nginx
[root@bogon ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/nginx latest 53f3fd8007f7 About an hour ago 109 MB
nginx nginx 53f3fd8007f7 About an hour ago 109 MB
docker.io/httpd latest b7cc370ac278 2 hours ago 132 MB
docker.io/networkboot/dhcpd latest 52cbff801df2 7 weeks ago 105 MB
七.删除镜像
[root@bogon ~]# docker rmi docker.io/nginx rmi+名称
八,存出镜像(如果我们需要把镜像迁移到另一台机器可以把镜像保存到本地当中)
[root@bogon ~]# docker save -o nginx docker.io/nginx
[root@bogon ~]# docker save -o httpd docker.io/httpd
[root@bogon ~]# docker save -o dhcpd docker.io/networkboot/dhcpd
[root@bogon ~]# ls root/下是刚才迁移的镜像
格式:save -o 重命名 镜像名称
八.1存出容器(如果我们需要把容器迁移到另一台机器可以把容器导出为文件)
[root@localhost ~]# docker export c8 > nginx1 export +容器ID> 重命名
[root@localhost ~]# ls -l nginx1
-rw-r--r--. 1 root root 1024 5月 12 16:36 nginx1
把这个文件导入另一台机器,并用import - 重命名:标签
[root@localhost ~]# cat nginx1 |docker import - nginx1:test
sha256:be2d90fc6627e0547dd326b8f4987fb20a96142b6326b4ffd0d46932540e608b
九,如果镜像删除 < 镜像导回
[root@bogon ~]# docker rmi docker.io/networkboot/dhcpd
[root@bogon ~]# docker load < dhcpd
十.创建一个容器 (-it i是交互t是获取一个终端)
[root@bogon ~]# docker create -it nginx:nginx /bin/bash
e35b5559242e584ed57dc53ee5630976d77002637ef2f70a55ee0b5c5aaa5178
[root@bogon ~]# docker ps -a
[root@bogon ~]# docker start e35
e35
[root@bogon ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e35b5559242e nginx:nginx "/bin/bash" 7 minutes ago Up 6 seconds 80/tcp unruffled_williams
十一.进入容器
[root@bogon ~]# docker attach e35
root@e35b5559242e:/#
root@e35b5559242e:/#
root@e35b5559242e:/#
root@e35b5559242e:/#
root@e35b5559242e:/#
root@e35b5559242e:/# ls
bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
十二,删除容器
[root@bogon ~]# docker ps -a
[root@bogon ~]# docker rm e35b5559242e
e35b5559242e
十三.运行端口
[root@bogon ~]# docker run -it -p 8001:80 nginx:nginx /bin/bash
root@3021c9504acc:/# nginx
访问http://192.168.30.24:8001
Welcome to nginx!
如果出现报错:
WARNING: IPv4 forwarding is disabled. Networking will not work.
解决办法:
# vim /usr/lib/sysctl.d/00-system.conf1
添加如下代码:
net.ipv4.ip_forward=11
重启network服务
# systemctl restart network1
完成以后,删除错误的容器,再次创建新容器,就不再报错了。
十四.映射多个端口
[root@bogon ~]# docker run -itd -p 8002:80 nginx:nginx
f58cb03f73e50626e16d29a2d4b51679d3e27412ffeb3f4f00a554543de8cd15
[root@bogon ~]# docker run -itd -p 8003:80 nginx:nginx
dbfeea5a04c0dc49e0b6235791044b1c780f900c8484c06a2ff1a36e963fa854
十五.进入正在运行的容器
[root@bogon ~]# docker exec -it f58cb03f73e5 /bin/bash
root@f58cb03f73e5:/#
十六.删除容器所有
[root@bogon ~]# docker ps |awk 'NR>1{print $1}' |while read line
> do
> docker rm -f $line
> done
十六.进入容器并映射使用Nginx的镜像(使容器在后台运行不退出ctil+p+q)
[root@bogon ~]# docker run -it -p 8001:80 -v /web:/usr/share/nginx/html nginx /bin/bash
root@b44f0259ac35:/# [root@bogon ~]#
[root@bogon ~]# docker ps
进入容器
Docker attach 容器ID
Docker exec -it 容器名称 bash
退出容器并不关闭容器
Ctrl + P + Q