Docker的简单介绍及搭建

1.Docker介绍:

(1)什么是Docker?
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口;
由Docker客户端、Docker Daemon守护进程、Docker Image镜像、DockerContainer容器组成。
(2)Docker的应用场景
web应用的自动化打包和发布;
自动化测试和持续集成、发布;
在服务型环境中部署和调整数据库或其他的后台应用;
从头编译或者扩展现有的OpenShift或Cloud Foundry平台来搭建自己的PaaS环境
(3)传统虚拟机化与容器技术对比
在这里插入图片描述

2.Docker的部署:

(1)下载所需软件:

docker-ce.x86、 docker-ce-cli.x86_64、 containerd.io.x86、container-selinux.noarch

软件包下载: https://mirros.aliyun.com/(阿里云开源镜像网站)

解决软件依赖性:pkgs.org

(2)将下载好的软件统一放在一个文件夹内,配置docker 的yum仓库

vim /etc/yum.repos.d/docker.repo
[docker]
name=docker-ce
baseurl=http://172.25.33.250/pub/docs/docker
gpgcheck=0

在这里插入图片描述
(3)下载docker,并开启

yum install docker-ce
systemctl start docker
systemctl enable docker

在这里插入图片描述

(4)下载好docker,查看具体信息
系认会自动产生一个docker网络接口

[root@server1 yum.repos.d]# ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 52:54:00:3b:fd:24 brd ff:ff:ff:ff:ff:ff
    inet 172.25.33.1/24 brd 172.25.33.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::5054:ff:fe3b:fd24/64 scope link 
       valid_lft forever preferred_lft forever
3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default 
    link/ether 02:42:43:ae:3a:71 brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
       valid_lft forever preferred_lft forever

查看docker安装版本信息

[root@server1 ~]# docker version
Client:
 Version:           18.09.7
 API version:       1.39
 Go version:        go1.10.8
 Git commit:        2d0083d
 Built:             Thu Jun 27 17:56:06 2019
 OS/Arch:           linux/amd64
 Experimental:      false

Server: Docker Engine - Community
 Engine:
  Version:          18.09.7
  API version:      1.39 (minimum version 1.12)
  Go version:       go1.10.8
  Git commit:       2d0083d
  Built:            Thu Jun 27 17:26:28 2019
  OS/Arch:          linux/amd64
  Experimental:     false

docker info : 显示 Docker 系统信息,包括镜像和容器数

[root@server1 ~]# docker info
Containers: 13
 Running: 9
 Paused: 0
 Stopped: 4
Images: 21
Server Version: 18.09.7
Storage Driver: overlay2
 Backing Filesystem: xfs
 Supports d_type: true
 Native Overlay Diff: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: bridge host macvlan null overlay
 Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: bb71b10fd8f58240ca47fbb579b9d1028eea7c84
runc version: 2b18fe1d885ee5083ef9f0838fee39b62d653e30
init version: fec3683
Security Options:
 seccomp
  Profile: default
Kernel Version: 3.10.0-862.el7.x86_64
Operating System: Red Hat Enterprise Linux Server 7.5 (Maipo)
OSType: linux
Architecture: x86_64
CPUs: 1
Total Memory: 1.953GiB
Name: server1
ID: LWQC:RSPE:2FRR:YDYZ:NO4V:O4RL:KPS6:BCYH:Z6LC:QM6E:7UBS:ARM6
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:
 172.25.33.1
 127.0.0.0/8
Live Restore Enabled: false
Product License: Community Engine

docker常用命令

docker load -i 镜像名                       #导入镜像
 docker run -i --name 容器名  镜像名         #创建容器以镜像为模版
docker ps                                  #查看运行的容器状态
 docker ps -a                              #查看容器状态(包或不活跃的容器)
 docker attach vm1                         #连接容器
 docker top vm1                            #查看容器进程
 docker logs vm1                           #查看容器指令输出  -f参数可以实时查看
 docker inspect vm1                        # 查看容器详情
 docker stats  vm1                         #查看容器资源使用率
 docker diff vm1                           #查看容器修改
 docker stop vm1                           #停止容器
 docker start vm1                          # 启动容器
 docker kill vm1                           #强制杀死容器进程
 docker restart vm1                        #重启容器
 docker rm   vm1                           #删除容器
 docker pause/uppause  vm1                 #暂停/恢复容器

docker 对镜像的所有操作命令

[root@server1 ~]# docker image

Usage:	docker image COMMAND

Manage images

Commands:
  build       Build an image from a Dockerfile
  history     Show the history of an image
  import      Import the contents from a tarball to create a filesystem image
  inspect     Display detailed information on one or more images
  load        Load an image from a tar archive or STDIN
  ls          List images
  prune       Remove unused images
  pull        Pull an image or a repository from a registry
  push        Push an image or a repository to a registry
  rm          Remove one or more images
  save        Save one or more images to a tar archive (streamed to STDOUT by default)
  tag         Create a tag TARGET_IMAGE that refers to SOURCE_IMAGE

Run 'docker image COMMAND --help' for more information on a command.

docker 对容器的所有操作命令

[root@server1 ~]# docker container

Usage:	docker container COMMAND

Manage containers

Commands:
  attach      Attach local standard input, output, and error streams to a running container
  commit      Create a new image from a container's changes
  cp          Copy files/folders between a container and the local filesystem
  create      Create a new container
  diff        Inspect changes to files or directories on a container's filesystem
  exec        Run a command in a running container
  export      Export a container's filesystem as a tar archive
  inspect     Display detailed information on one or more containers
  kill        Kill one or more running containers
  logs        Fetch the logs of a container
  ls          List containers
  pause       Pause all processes within one or more containers
  port        List port mappings or a specific mapping for the container
  prune       Remove all stopped containers
  rename      Rename a container
  restart     Restart one or more containers
  rm          Remove one or more containers
  run         Run a command in a new container
  start       Start one or more stopped containers
  stats       Display a live stream of container(s) resource usage statistics
  stop        Stop one or more running containers
  top         Display the running processes of a container
  unpause     Unpause all processes within one or more containers
  update      Update configuration of one or more containers
  wait        Block until one or more containers stop, then print their exit codes

docker 对volume的所有操作命令

[root@server1 ~]# docker volume

Usage:	docker volume COMMAND

Manage volumes

Commands:
  create      Create a volume
  inspect     Display detailed information on one or more volumes
  ls          List volumes
  prune       Remove all unused local volumes
  rm          Remove one or more volumes

3.简单容器的运行示例:

以game2048为例
(1)获取game2048镜像,并导入:

[root@server1 ~]# 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@server1 ~]# docker images    ##查看存在的镜像
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
game2048            latest              19299002fdbe        2 years ago         55.5MB

(2)创建容器,并进行端口映射

[root@server1 ~]# docker run -d --name vm1 -p 80:80 game2048   ##-d打入后台 -p制定端口 宿主机的端口:docker端口
1d4fab18792eb4faf2147d10b06bd823de7c61f5e9805da72ecaa2fb28567118
[root@server1 ~]# docker ps     ##查看docker进程  
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                         NAMES
1d4fab18792e        game2048            "/bin/sh -c 'sed -i …"   15 seconds ago      Up 14 seconds       0.0.0.0:80->80/tcp, 443/tcp   vm1

[root@server1 ~]# netstat -tnlp   ##会看到开了一个80端口
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      859/sshd            
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      883/master          
tcp6       0      0 :::80                   :::*                    LISTEN      1743/docker-proxy   
tcp6       0      0 :::22                   :::*                    LISTEN      859/sshd            
tcp6       0      0 ::1:25                  :::*                    LISTEN      883/master          

在这里插入图片描述
(3)浏览器访问:172.25.33.1,运行成功!!!
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值