Docker的镜像下载、容器关联以及的数据卷挂载进行数据备份

从官网上下载:docker-engine-17.03.1.ce-1.el7.centos.x86_64.rpm
docker-engine-selinux-17.03.1.ce-1.el7.centos.noarch.rpm

docker的基本使用

yum install  docker-engine-17.03.1.ce-1.el7.centos.x86_64.rpm
                    docker-engine-selinux-17.03.1.ce-1.el7.centos.noarch.rpm
# 查看docker的信息
[root@foundation23 Desktop]# docker info
Containers: 1
 Running: 1
 Paused: 0
 Stopped: 0
Images: 1
Server Version: 17.03.1-ce
Storage Driver: overlay
 Backing Filesystem: xfs
 Supports d_type: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins: 
 Volume: local
 Network: bridge host macvlan null overlay
Swarm: inactive

[root@foundation23 Desktop]# systemctl start docker.service
[root@foundation23 Desktop]# docker version
Client:
 Version:      17.03.1-ce
 API version:  1.27
 Go version:   go1.7.5
 Git commit:   c6d412e
 Built:        Fri Mar 24 00:36:45 2017
 OS/Arch:      linux/amd64

这里写图片描述
导入镜像

[root@foundation23 Desktop]# docker load -i game2048.tar
011b303988d2: Loading layer  5.05 MB/5.05 MB
36e9226e74f8: Loading layer 51.46 MB/51.46 MB
192e9fad2abc: Loading layer 3.584 kB/3.584 kB
6d7504772167: Loading layer 4.608 kB/4.608 kB
88fca8ae768a: Loading layer 629.8 kB/629.8 kB
Loaded image: game2048:latest

这里写图片描述

[root@foundation23 Desktop]#ip addr
9: docker0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP 
    link/ether 02:42:80:b7:7f:87 brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.1/16 scope global docker0
-d表示打入后台
[root@foundation23 Desktop]# docker run -d --name vm1 game2048
19e705e933c48b055420df936c2929047c873ae5d6951e28896a94966c59bd2c
[root@foundation23 Desktop]# docker images game2048
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
game2048            latest              19299002fdbe        20 months ago       55.5 MB
[root@foundation23 Desktop]# docker inspect vm1
 "Gateway": "172.17.0.1",
                    "IPAddress": "172.17.0.2",

这里写图片描述

查看docker运行进程
[root@foundation23 Desktop]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
19e705e933c4        game2048            "/bin/sh -c 'sed -..."   22 minutes ago      Up 22 minutes       80/tcp, 443/tcp     vm1
查看docker所有进程
[root@foundation23 Desktop]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
19e705e933c4        game2048            "/bin/sh -c 'sed -..."   22 minutes ago      Up 22 minutes       80/tcp, 443/tcp     vm1
不用做这个
[root@foundation23 Desktop]# docker rm vm1 删除容器

这里写图片描述

测试:浏览器上输入172.17.0.2
这里写图片描述

端口映射:在客户端直接输入服务器ip和端口直接显示所示内容

[root@foundation23 web]# docker run -d --name vm3 -p 9090:80 nginx
c268186a7df8030284a3e35bd53c035a90c71de80233f419392e6d4bfbfa7854
# 查看系统上使用的镜像
[root@foundation23 web]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nginx               latest              c82521676580        3 weeks ago         109 MB
game2048            latest              19299002fdbe        20 months ago       55.5 MB
# 查看docker进程
[root@foundation23 web]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                  NAMES
c268186a7df8        nginx               "nginx -g 'daemon ..."   19 seconds ago      Up 18 seconds       0.0.0.0:9090->80/tcp   vm3
1b697cc98bfa        nginx               "nginx -g 'daemon ..."   About an hour ago   Up About an hour    0.0.0.0:8080->80/tcp   vm2

这里写图片描述
浏览器上输入:172.25.254.23:9090
这里写图片描述

首先在阿里云那里注册帐号
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

从网上下载镜像

[root@foundation23 Desktop]# cd /etc/docker/
[root@foundation23 docker]# ls
key.json 
[root@foundation23 docker]# vim demon.json
写入阿里云那里得到的加速器地址
https://esj04lnp.mirror.aliyuncs.com
[root@foundation23 docker]# sudo systemctl daemon-reload
[root@foundation23 docker]# sudo systemctl restart docker
从网上下载镜像
[root@foundation23 docker]# docker pull nginx
Using default tag: latest
latest: Pulling from library/nginx
be8881be8156: Pull complete 
32d9726baeef: Pull complete 
87e5e6f71297: Pull complete 
Digest: sha256:d85914d547a6c92faa39ce7058bd7529baacab7e0cd4255442b04577c4d1f424
Status: Downloaded newer image for nginx:latest

这里写图片描述


[root@foundation23 docker]# cd /tmp/
[root@foundation23 tmp]# mkdir docker
[root@foundation23 tmp]# cd docker/
[root@foundation23 docker]# mkdir web
[root@foundation23 docker]# cd web/
[root@foundation23 web]# vim index.html
[root@foundation23 web]# docker run -d --name vm2 -v /tmp/docker/web:/usr/share/nginx/html nginx
<h1>www.westos.org</h1>
<h1>www.westos.org</h1>
<h1>www.westos.org</h1>
<h1>www.westos.org</h1>
1989efff5b768e6dee51e89084e58f75da759c0de168642ebf8dca56bcbbe57d
[root@foundation23 web]# docker inspect vm2
"Gateway": "172.17.0.1",
                    "IPAddress": "172.17.0.2",

这里写图片描述
这里写图片描述
浏览器输入172.17.0.2
这里写图片描述
在文件里直接修改,容器中的信息也随之修改,因为之前已经将这个文件挂载到容器的发布目录

[root@foundation23 web]# vim index.html 
<h1>www.westos.org</h1>
<h1>www.westos.org</h1>
<h1>www.westos.org</h1>
<h1>www.westos.org</h1>
www.westos.org

这里写图片描述

数据卷的挂载:数据备份

第一种:进行挂载

[root@foundation23 docker]# cd /tmp/
[root@foundation23 tmp]# cd data1/
[root@foundation23 data1]# ls
[root@foundation23 data1]# touch file
[root@foundation23 data1]# rm -fr file
[root@foundation23 data1]# cd ..
[root@foundation23 tmp]# cd data2/
[root@foundation23 data2]# touch file2
[root@foundation23 data2]# 

这里写图片描述

两个进行比较
[root@foundation23 ~]# docker run -it --name vm1 -v /tmp/data1:/data1 -v /tmp/data2:/data2:ro -v /etc/yum.repos.d/yum.repo:/etc/yum.repos.d/yum.repo:ro rhel7 bash
bash-4.2# cd /data1/
bash-4.2# ls
file
bash-4.2# ls
bash-4.2# cd /data2/
bash-4.2# ls
file2
bash-4.2# touch file2
touch: cannot touch 'file2': Read-only file system
bash-4.2# yum repolist 
Skipping unreadable repository '///etc/yum.repos.d/rhel7.repo'
rhel7.3                                                            | 4.1 kB  00:00:00     
(1/2): rhel7.3/group_gz                                            | 136 kB  00:00:00     
(2/2): rhel7.3/primary_db                                          | 3.9 MB  00:00:00     
repo id                                   repo name                                 status
rhel7.3                                   rhel7.3                                   4751
repolist: 4751

这里写图片描述
第二种:数据卷的挂载

创建一个数据卷

[root@foundation23 ~]# docker create  --name datavol -v /tmp/data1:/data1 -v /tmp/data2:/data2:ro -v /etc/yum.repos.d/yum.repo:/etc/yum.repos.d/yum.repo:ro rhel7 bash
56389415b78d755765950b35f4580e36aaae5c71f568c759e7629962e05f8447
[root@foundation23 ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
[root@foundation23 ~]# docker run -it --name vm1 --volumes-from datavol rhel7 bash

这里写图片描述

测试:

容器vm1:

[root@foundation23 ~]# docker run -it --name vm1 --volumes-from datavol rhel7 bash
bash-4.2# cd /data1/
bash-4.2# touch file1
bash-4.2# cd ..

主机:

[root@foundation23 tmp]# cd data1/
[root@foundation23 data1]# ls
file1

容器:

bash-4.2# cd ..
bash-4.2# cd /data2/
bash-4.2# touch file2
touch: cannot touch 'file2': Read-only file system

真机:

[root@foundation23 tmp]# cd data2/
[root@foundation23 data2]# touch file2

容器:

bash-4.2# ls
file2

这里写图片描述
这里写图片描述

容器关联

[root@foundation23 ~]# docker run -d --name vm1 -p 8080:80 nginx
3d93d254ed019c3f97c7244f9a02c305c704a311519cf17429c87ef1319a0621
[root@foundation23 ~]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                  NAMES
3d93d254ed01        nginx               "nginx -g 'daemon ..."   7 seconds ago       Up 6 seconds        0.0.0.0:8080->80/tcp   vm1
[root@foundation23 ~]# iptables -t nat -nL
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         
DOCKER     all  --  0.0.0.0/0            0.0.0.0/0            ADDRTYPE match dst-type LOCAL

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
DOCKER     all  --  0.0.0.0/0           !127.0.0.0/8          ADDRTYPE match dst-type LOCAL

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination         
MASQUERADE  all  --  172.17.0.0/16        0.0.0.0/0           
RETURN     all  --  192.168.122.0/24     224.0.0.0/24        
RETURN     all  --  192.168.122.0/24     255.255.255.255     
MASQUERADE  tcp  --  192.168.122.0/24    !192.168.122.0/24     masq ports: 1024-65535
MASQUERADE  udp  --  192.168.122.0/24    !192.168.122.0/24     masq ports: 1024-65535
MASQUERADE  all  --  192.168.122.0/24    !192.168.122.0/24    
MASQUERADE  tcp  --  172.17.0.2           172.17.0.2           tcp dpt:80

Chain DOCKER (2 references)
target     prot opt source               destination         
RETURN     all  --  0.0.0.0/0            0.0.0.0/0           
DNAT       tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:8080 to:172.17.0.2:80

这里写图片描述

[root@foundation23 ~]# docker run -it --name vm2 --link vm1:nginx ubuntu
# 环境变量
root@3ba49c51518b:/# env
HOSTNAME=3ba49c51518b
TERM=xterm
NGINX_ENV_NJS_VERSION=1.15.2.0.2.2-1~stretch
LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lz=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:
root@3ba49c51518b:/# ping nginx
PING nginx (172.17.0.2) 56(84) bytes of data.
64 bytes from nginx (172.17.0.2): icmp_seq=1 ttl=64 time=0.113 ms
64 bytes from nginx (172.17.0.2): icmp_seq=2 ttl=64 time=0.098 ms
^C
--- nginx ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 999ms
rtt min/avg/max/mdev = 0.098/0.105/0.113/0.012 ms

这里写图片描述

猜你喜欢

转载自blog.csdn.net/ningyuxuan123/article/details/81835651