网站开发如何跟客户沟通需求,网站制作的相关术语,金方时代做网站怎么样,大庆互联网公司文章目录 Dockeryum在线安装安装yum-utils下载aliyun的repo源下载Docker配置加速器 Docker基本操作拉取镜像UbuntuCentos 创建两个容器容器的停止/重启查看容器退出容器交互式非交互式 查看容器内部信息查看Docker相关命令帮助docker rundocker image Docker save与Docker expo… 文章目录 Dockeryum在线安装安装yum-utils下载aliyun的repo源下载Docker配置加速器 Docker基本操作拉取镜像UbuntuCentos 创建两个容器容器的停止/重启查看容器退出容器交互式非交互式 查看容器内部信息查看Docker相关命令帮助docker rundocker image Docker save与Docker export的区别示例 Docker的网络模式bridgehostcontainernone Docker
yum在线安装
安装yum-utils
用于支持yum-config-manager 命令
下载aliyun的repo源
[rootlocalhost ~]# yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo下载Docker
[rootlocalhost ~]# yum install docker-ce
#查看是否安装好
[rootlocalhost ~]# systemctl status docker.service
● docker.service - Docker Application Container EngineLoaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled)Active: inactive (dead)Docs: https://docs.docker.com配置加速器
1从2017年6月9日起Docker 官方提供了在中国的加速器以解决墙的问题。不用注册直接使用 加速器地址https://registry.docker-cn.com 即可。
2中国科技大学的镜像加速器: 中科大的加速器不用注册直接使用地址 https://docker.mirrors.ustc.edu.cn/ 配加速器即可。进一步的信息可以访问: http://mirrors.ustc.edu.cn/help/dockerhub.html?highlightdocker。
3阿里云加速器: 注册阿里云开发账户(免费的)后访问这个链接就可以看到加速器地址: https://cr.console.aliyun.com/#/accelerator。
#这里用中科大的源
[rootlocalhost ~]# cat /etc/docker/daemon.json
{registry-mirrors: [https://docker.mirrors.ustc.edu.cn]
}Docker基本操作
拉取镜像
Ubuntu
#搜索镜像
[rootdocker ~]# docker search ubuntu
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
ubuntu Ubuntu is a Debian-based Linux operating sys… 16295 [OK]
#OFFICIAL 表示官方镜像
#拉取镜像
[rootdocker ~]# docker pull ubuntuCentos
[rootdocker ~]# docker pull centos
#列出本地镜像
[rootdocker ~]# docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
mysql 5.7 c20987f18b13 20 months ago 448MB
httpd latest dabbfbe0c57b 20 months ago 144MB
ubuntu latest ba6acccedd29 22 months ago 72.8MB
centos latest 5d0da3dc9764 23 months ago 231MB创建两个容器
docker run 创建容器并启动也可以使用create 然后再 start启动。
[rootdocker ~]# docker run --name os1 -d -it centos:latest /bin/bash
[rootdocker ~]# docker run --name os2 -d -it ubuntu:latest /bin/bash
[rootdocker ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9b6e62cba175 ubuntu:latest /bin/bash 5 seconds ago Up 4 seconds os2
1eabe2af703a centos:latest /bin/bash 37 seconds ago Up 36 seconds os1容器的停止/重启
[rootdocker ~]# docker stop os1
os1
[rootdocker ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9b6e62cba175 ubuntu:latest /bin/bash 2 minutes ago Up 2 minutes os2
#这里也可用使用容器ID来替代名字
[rootdocker ~]# docker restart os1
os1
[rootdocker ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9b6e62cba175 ubuntu:latest /bin/bash 3 minutes ago Up 3 minutes os2
1eabe2af703a centos:latest /bin/bash 4 minutes ago Up 2 seconds os1查看容器
#用于查看已在运行的容器
[rootdocker ~]# docker ps#查看所有已创建的容器
[rootdocker ~]# docker ps -a退出容器
交互式
[rootdocker ~]# docker exec -it os1 /bin/bash
[root1eabe2af703a /]# exit
exit非交互式
[rootdocker ~]# docker exec -it os1 /bin/bash
#然后另起一个终端
[rootdocker /]# docker stop os1查看容器内部信息
[rootdocker ~]# docker inspect os1/ID查看Docker相关命令帮助
docker run
[rootdocker ~]# docker run --helpdocker image
rootdocker ~]# docker image --help以此类推create、exec、start、stop等都可以此方法查看相应得语法及参数。
Docker save与Docker export的区别
docker save保存的是镜像imagedocker export保存的是容器container
示例
#导出镜像
[rootdocker ~]# docker save centos:latest -o centos:latestV1.tar
#加载镜像
[rootdocker ~]# docker load -i centos:latestV1.tar #导出容器
[rootdocker ~]# docker export os1 -o containerCentOS1.tar
#载入容器但载入后只能恢复为镜像
[rootdocker ~]# docker import containerCentOS1.tar所以docker save 与docker load一起使用docker export与docker import 使用。
Docker的网络模式
Docker分别有四种网络模式。
[rootdocker ~]# docker network ls
NETWORK ID NAME DRIVER SCOPE
b77bf711431b bridge bridge local
e9eb282b43f1 host host local
b51c040ec354 none null localbridge
该模式可以理解为NAT模式当docker服务安装好之后便会在宿主机上创建一张网卡那么该网卡就是容器的网关创建容器时不指定模式默认使用bridge模式。
#宿主机网卡及IP
[rootdocker ~]# ip addr | grep docker
3: docker0: BROADCAST,MULTICAST,UP,LOWER_UP mtu 1500 qdisc noqueue state UP group default inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
17: vethe8c9633if16: BROADCAST,MULTICAST,UP,LOWER_UP mtu 1500 qdisc noqueue master docker0 state UP group default#容器网卡及IP
[rootdocker ~]# docker inspect os2 | grep -i ipaddressSecondaryIPAddresses: null,IPAddress: 172.17.0.3,IPAddress: 172.17.0.3,#容器网关地址
[rootdocker ~]# docker inspect os2 | grep -i gatewayGateway: 172.17.0.1,IPv6Gateway: ,Gateway: 172.17.0.1,IPv6Gateway: ,host
该模式是将宿主机的IP与端口等同时作为容器的IP地址与端口使用即容器不再虚拟出自己的IP与端口。
演示
[rootdocker ~]# docker run -d -it --name os1 --network host centos:latest /bin/bash
#查看容器信息
[rootdocker ~]# docker inspect os1 | grep -i ipaddressSecondaryIPAddresses: null,IPAddress: ,IPAddress: ,
[rootdocker ~]# docker inspect os1 | grep -i gatewayGateway: ,IPv6Gateway: ,Gateway: ,IPv6Gateway: ,
#进入容器内部查看
[rootdocker ~]# docker exec -it os1 /bin/bash
[rootdocker /]# ip add
1: lo: LOOPBACK,UP,LOWER_UP mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope host valid_lft forever preferred_lft forever
2: ens33: BROADCAST,MULTICAST,UP,LOWER_UP mtu 1500 qdisc pfifo_fast state UP group default qlen 1000link/ether 00:0c:29:1d:c5:f6 brd ff:ff:ff:ff:ff:ffinet 192.168.110.145/24 brd 192.168.110.255 scope global noprefixroute ens33valid_lft forever preferred_lft foreverinet6 fe80::108a:4d22:ab15:ea33/64 scope link noprefixroute valid_lft forever preferred_lft forever
3: docker0: BROADCAST,MULTICAST,UP,LOWER_UP mtu 1500 qdisc noqueue state UP group default link/ether 02:42:f4:0b:5b:35 brd ff:ff:ff:ff:ff:ffinet 172.17.0.1/16 brd 172.17.255.255 scope global docker0valid_lft forever preferred_lft foreverinet6 fe80::42:f4ff:fe0b:5b35/64 scope link valid_lft forever preferred_lft forever
17: vethe8c9633if16: BROADCAST,MULTICAST,UP,LOWER_UP mtu 1500 qdisc noqueue master docker0 state UP group default link/ether 12:70:d8:23:03:7b brd ff:ff:ff:ff:ff:ff link-netnsid 1inet6 fe80::1070:d8ff:fe23:37b/64 scope link valid_lft forever preferred_lft forever
[rootdocker /]# exit
exit不难看出容器与宿主机使用了同样的网络
container
该模式是与一个已存在的容器绑定共享该容器的Network Namespace。
演示
[rootdocker ~]# docker run -d -it --name os3 --network container:os2 centos:latest /bin/bash
#检查
[rootdocker ~]# docker exec -it os3 /bin/bash
[root9b6e62cba175 /]# ip add
1: lo: LOOPBACK,UP,LOWER_UP mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft forever
16: eth0if17: BROADCAST,MULTICAST,UP,LOWER_UP mtu 1500 qdisc noqueue state UP group default link/ether 02:42:ac:11:00:03 brd ff:ff:ff:ff:ff:ff link-netnsid 0inet 172.17.0.3/16 brd 172.17.255.255 scope global eth0valid_lft forever preferred_lft forever
IP为172.17.0.3与OS2一样
none
使用none模式Docker容器拥有自己的Network Namespace但是并不为Docker容器进行任何网 络配置。也就是说这个Docker容器没有网卡、IP、路由等信息只有lo 网络接口。需要我们自己为 Docker容器添加网卡、配置IP等。
演示
[rootdocker ~]# docker run -d -it --name os1 --network none centos:latest /bin/bash
#检查
[rootdocker ~]# docker exec -it os1 /bin/bash
[root5edd67c45823 /]# ip add
1: lo: LOOPBACK,UP,LOWER_UP mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft forever