docker实际的配置步骤

Docker的安装:
    首先我们在官网上下载Docker的rpm包对Docker进行安装,官网下载地址:
https://yum.dockerproject.org/repo/main/centos/7/Packages/

Docker的安装:
其他的包是docker的一些依赖包,不同的版本的docker所需要的依赖的插件是不同的
在安装的时候一定要注意docker的版本的问题,和其依赖插件的版本的问题
[root@loaclhost docker]# yum install -y docker-ce-18.03.1.ce-1.el7.centos.x86_64.rpm container-selinux-2.21-1.el7.noarch.rpm pigz-2.3.4-1.el7.x86_64.rpm 

安装完成以后我们可以使用查看docker的版本的进行对docker确认安装
[root@loaclhost docker]# systemctl start docker 
[root@loaclhost docker]# docker version 
Client:
 Version:      18.03.1-ce    docker的版本
 API version:  1.37          docker使用的API接口的版本
 Go version:   go1.9.5       docker使用的GO语言的开发的版本
 Git commit:   9ee9f40        
 Built:        Thu Apr 26 07:20:16 2018
 OS/Arch:      linux/amd64
 Experimental: false        实验性的,有待研究
 Orchestrator: swarm         

Server:
 Engine:
  Version:      18.03.1-ce
  API version:  1.37 (minimum version 1.12)
  Go version:   go1.9.5
  Git commit:   9ee9f40
  Built:        Thu Apr 26 07:23:58 2018
  OS/Arch:      linux/amd64
  Experimental: false
[root@loaclhost docker]# 

查看docker的信息
[root@loaclhost docker]# docker info 
Containers: 1
 Running: 0
 Paused: 0
 Stopped: 1
Images: 22
Server Version: 18.03.1-ce
Storage Driver: overlay2
 Backing Filesystem: xfs
 Supports d_type: true
 Native Overlay Diff: false
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: bridge host macvlan null overlay
 Log: awslogs fluentd gcplogs gelf journald json-file logentries splunk syslog
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 773c489c9c1b21a6d78b5c538cd395416ec50f88
runc version: 4fc53a81fb7c994640722ac585fa9ca548971871
init version: 949e6fa
Security Options:
 seccomp
  Profile: default
Kernel Version: 3.10.0-514.el7.x86_64
Operating System: Red Hat Enterprise Linux Server 7.3 (Maipo)
OSType: linux
Architecture: x86_64
CPUs: 4
Total Memory: 7.654GiB
Name: loaclhost
ID: PYD7:GVRJ:2LZF:GFXW:NNY3:VFUF:GY4X:V5K3:KFPA:C246:VXPI:SP32
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
 127.0.0.0/8
Registry Mirrors:
 https://ioldntar.mirror.aliyuncs.com/
Live Restore Enabled: false

docker容器的管理:

首先我们获得镜像的tar包,然后用来创建容器
game2048.tar
[root@loaclhost docker_rpm]# docker load -i game2048.tar 
011b303988d2: Loading layer   5.05MB/5.05MB
36e9226e74f8: Loading layer  51.46MB/51.46MB
192e9fad2abc: Loading layer  3.584kB/3.584kB
6d7504772167: Loading layer  4.608kB/4.608kB
88fca8ae768a: Loading layer  629.8kB/629.8kB
Loaded image: game2048:latest
同理导入其他的镜像
[root@loaclhost docker_rpm]# docker load -i rhel7.tar 
e1f5733f050b: Loading layer  147.1MB/147.1MB
[root@loaclhost docker_rpm]# docker load -i ubuntu.tar 
56abdd66ba31: Loading layer  196.8MB/196.8MB
9468150a390c: Loading layer  208.9kB/208.9kB
11083b444c90: Loading layer  4.608kB/4.608kB
5f70bf18a086: Loading layer  1.024kB/1.024kB
Loaded image: ubuntu:latest
使用docker images可以查看当前的导入的镜像
[root@loaclhost docker_rpm]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
game2048            latest              19299002fdbe        2 years ago         55.5MB
registry            2.3.1               83139345d017        2 years ago         166MB
ubuntu              latest              07c86167cdc4        2 years ago         188MB
rhel7               latest              0a3eb3fde7fd        4 years ago         140MB
docker rmi <镜像名称> 删除一个镜像
创建一个容器
[root@loaclhost docker_rpm]# docker run --name vm1 game2048
列出当前运行的容器,也就是说容器可能还在当前的列表中,但是并没有启动
[root@loaclhost kiosk]# docker ps 
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
7c73f4cd28df        game2048            "/bin/sh -c 'sed -i …"   4 minutes ago       Up 4 minutes        80/tcp, 443/tcp     vm1
停止一个容器,并不意味着这个容器就被删除了,
[root@loaclhost kiosk]# docker stop vm1 
vm1
要想彻底的删除一个容器,使用[root@loaclhost kiosk]# docker rm vm1 
vm1
在容器还在启动的时候强制的删除一个容器 docker rm -f vm1 
docker kill vm1 强制干掉一个正在运行的容器
表示创建并运行一个容器,run运行 ,-it属于较互式的 可以进入容器进行操作, --name 容器的名字 后面是容器使用的镜像
[root@loaclhost kiosk]# docker run -it --name vm1 game2048
以下的也是创建一个容器
[root@loaclhost kiosk]# docker run -d --name vm1 game2048
0b089f433b3baae736a84ab0c565d44d12e1f9d90c0e8db0119a980a5fe10b47
查看容器的详细的信息,包括网关、ip之类的等等。
[root@loaclhost kiosk]# docker inspect vm1 
"State": {
            "Status": "running",
            "Running": true,
            "Paused": false,
            "Restarting": false,
            "OOMKilled": false,
            "Dead": false,
            "Pid": 5887,
       "Gateway": "172.17.0.1",
            "GlobalIPv6Address": "",
            "GlobalIPv6PrefixLen": 0,
            "IPAddress": "172.17.0.2",
            "IPPrefixLen": 16,
            "IPv6Gateway": "",
            "MacAddress": "02:42:ac:11:00:02",
在导入了game2048的镜像容器之后 我们可以得知ip之后在页民上对它进行访问
在容器中的管理还有其他的没有示例的语句以下补充列出
docker attch vm1 连接容器 前提是容器里有可连接的bash 
[root@loaclhost kiosk]# docker top vm1 查看容器的状态
dcoker logs vm1    查看容器指令输出 -f 参数可以实时查看
docker stats vm1   查看容器资源使用率
CONTAINER ID        NAME                CPU %               MEM USAGE / LIMIT    MEM %               NET I/O             BLOCK I/O           PIDS
edc19e452615        vm1                 0.00%               1.43MiB / 7.654GiB   0.02%               8.65kB / 8.68kB     0B / 0B             3

docker diff vm1  查看容器的修改
docker start vm1 开启容器
docker pause/unpause vm1 暂停/恢复容器
docker export vm1 > vm1.tar 导出容器
dcoker import vm1.tar image 导入容器为镜像 类似与docker load -i vm1.tar 

查看镜像的层的修改的历史
[root@loaclhost kiosk]# docker history ubuntu:latest 
IMAGE               CREATED             CREATED BY                                      SIZE                COMMENT
07c86167cdc4        2 years ago         /bin/sh -c #(nop) CMD ["/bin/bash"]             0B                  
<missing>           2 years ago         /bin/sh -c sed -i 's/^#\s*\(deb.*universe\)$…   1.9kB               
<missing>           2 years ago         /bin/sh -c echo '#!/bin/sh' > /usr/sbin/poli…   195kB               
<missing>           2 years ago         /bin/sh -c #(nop) ADD file:b9504126dc5590898…   188MB

表示对一个镜像进行副本的复制
[root@loaclhost kiosk]# docker commit vm1 ubuntu:v1
[root@loaclhost kiosk]# docker images 
REPOSITORY          TAG                 IMAGE ID            CREATED              SIZE
ubuntu              v1                  245327a8cd13        About a minute ago   188MB
game2048            latest              19299002fdbe        2 years ago          55.5MB
registry            2.3.1               83139345d017        2 years ago          166MB
ubuntu              latest              07c86167cdc4        2 years ago          188MB
rhel7               latest              0a3eb3fde7fd        4 years ago          140MB

docker的tab出来的这些命令不仅仅是关于容器的还有别的一些命令
[root@loaclhost kiosk]# docker 
attach     images     ps         stats
build      import     pull       stop
commit     info       push       swarm
config     inspect    rename     system
container  kill       restart    tag
cp         load       rm         top
create     login      rmi        trust
diff       logout     run        unpause
events     logs       save       update
exec       network    search     version
export     node       secret     volume
help       pause      service    wait
history    plugin     stack      
image      port       start    
docker container中的全部是关于容器的创建、停止、删除,但是一般在使用的时候并不输入container语句直接使用docker对容器操作是一样的
[root@loaclhost kiosk]# docker container 
attach   exec     ls       restart  stop
commit   export   pause    rm       top
cp       inspect  port     run      unpause
create   kill     prune    start    update
diff     logs     rename   stats    wait

表示将当前主机上的文件cp到容器中去,
也就是无须进入容器就可以对容器中的东西进行操作
[root@loaclhost kiosk]# docker cp /etc/passwd vm1:/
root@865ae0de17db:/# ls
bin   etc   lib64  opt     root  srv  usr
boot  home  media  passwd  run   sys  var
dev   lib   mnt    proc    sbin  tmp

使用exec运用命令的方式对容器进行执行语句
[root@loaclhost kiosk]# docker exec vm1 ls /passwd
/passwd

Docker加速器的安装

为什么要装docker的加速器?
    因为我们在网上可能会需要下载很多的镜像,通常在pull的时候会很慢,
安装了加速器之后去网上pull镜像的速度会加快

首先我们实验使用的是阿里云的加速镜像
那么首先我们再到阿里云的官方网址使用自己的支付宝登陆

我们选择centos 版本进行安装
1. 安装/升级Docker客户端

推荐安装1.10.0以上版本的Docker客户端,参考文档 docker-ce
2. 配置镜像加速器

针对Docker客户端版本大于 1.10.0 的用户

您可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://1g8352e8.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

实战的安装配置
[root@loaclhost docker]# pwd 
/etc/docker
[root@loaclhost docker]# vim daemon.json
  1 {
  2   "registry-mirrors": ["https://1g8352e8.mirror    .aliyuncs.com"]
  3 }
[root@loaclhost docker]# systemctl daemon-reload 
[root@loaclhost docker]# systemctl restart docker

这样镜像的加速站就安装好了,我们可以直接在网上进行镜像的拉取了
[root@loaclhost ~]# docker pull nginx
Using default tag: latest
latest: Pulling from library/nginx
6ae821421a7d: Pull complete 
58702d4af197: Pull complete 
b165f42e8fd4: Pull complete 
Digest: sha256:18c0755594af107923baa2e65fcef35aea4ab0cea7862d19c27aa127bacb458e
Status: Downloaded newer image for nginx:latest

移除所有的容器:包括运行的 没有开启的 正在开启的
[root@loaclhost ~]# docker container prune 
WARNING! This will remove all stopped containers.
Are you sure you want to continue? [y/N] y
Deleted Containers:
7f380cb12b34afcfaff666bfc3059dbffa4bf821e9ed660551ebe7865009a150
865ae0de17dbf669dad618be7149d82d77790b7e2569735d4ee03e0d6d9c08b9

Total reclaimed space: 2.559kB

容器的端口映射:
    首先我们创建一个映射的端口的nginx 
[root@loaclhost ~]# docker run -d --name vm1 -p 8080:80 nginx 
c212f5aa7fa842b3bed8852064973716dcd18a35a4efdb3e03ab82fe818c1bff
因此我们在进行访问的时候可以不用知道容器的ip只要知道映射的端口,我们就可以查看当前容器上部署的WEB的服务

接下来我们可以配置nginx中的配置页面 
[root@loaclhost ~]# cat index.html 
<h1>hello nginx ! </h1>
[root@loaclhost ~]# docker cp index.html vm1:/usr/share/nginx/html
可以在页面中访问到修改的页面

怎么对nginx中的容器进行交互,那么我们可以使用虚拟的较互的终端 
[root@loaclhost ~]# docker exec -it vm1 bash 
root@c212f5aa7fa8:/# ls
bin   dev  home  lib64	mnt  proc  run	 srv  tmp  var
boot  etc  lib	 media	opt  root  sbin  sys  usr
root@c212f5aa7fa8:/# cd usr/share/nginx/
root@c212f5aa7fa8:/usr/share/nginx# ls
html
root@c212f5aa7fa8:/usr/share/nginx# cat html/
cat: html/: Is a directory
root@c212f5aa7fa8:/usr/share/nginx# cd html/
root@c212f5aa7fa8:/usr/share/nginx/html# cat index.html 
<h1>hello nginx ! </h1>
root@c212f5aa7fa8:/usr/share/nginx/html# 

除此之外我们还可以对页面进行多中方式的改写
docker rm -f vm1 
[root@loaclhost docker_rpm]# mkdir website 
[root@loaclhost docker_rpm]# mv index.html website/
在创建容器之前就可以指定容器中的Nginx页面在宿主机中的位置,方便以后的改写
[root@loaclhost docker]# docker run -d --name vm1 -p 8080:80 -v /tmp/docker/website/:/usr/share/nginx/html nginx
0d1b3654b88a721037a24799605a52a040cade600d0ca0299ce379a2426417fb
也就是指定位置的好处就是,可能我们需要经常对页面进行修改,那么指定宿主机的位置对应容器中的nginx的发布页面的位置,
让我们可以更加方面的对容器中的应用进行更改,用不着每次更改的时候都使用cp

接下来利用位置映射的关系我们就可以为容器进行yum的实现,也就是挂载点
[root@loaclhost docker]# cat dvd.repo 
[dvd]
name=rhel7.3
baseurl=http://172.25.254.151/rhel7.3/x86_64/dvdgpgcheck=0
在下面的命令语句中,我们含有三个指定位置的文件的挂载
[root@loaclhost docker]# docker run -it --name vm2 -v /tmp/docker/dvd.repo:/etc/yum.repos.d/dvd.repo:ro -v /tmp/docker/data1:/data1 -v /tmp/docker/data2:/data2 rhel7 bash 
进入bash 界面
bash-4.2# ls
bin    data2  home   media  proc  sbin	tmp
boot   dev    lib    mnt    root  s
  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值