(一)Docker的安装部署

版权声明:本文为博主原创文章,转载请指明地址。 https://blog.csdn.net/Mr_rsq/article/details/84820154

1 Docker安装

Docker 版本:
Docker从1.13版本之后采用时间线的方式作为版本号,分为社区版CE企业版EE

  • 社区版(CE)是免费提供给个人开发者和小型团体使用的
  • 企业版(EE)会提供额外的收费服务,比如经过官方测试认证过的基础设施、容器、插件等

由于Docker安装需要,最好使用64位的操作系统且内核版本大于等于3.10
Docker的安装部署很简单,可以先获取到我们需要的docker-ce源,而后直接yum安装,这里介绍docker-ce的安装。

wget -q https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum install docker-ce -y

2 Docker镜像加速

docker镜像加速器:

  1. docker cn(docker在中国官方的加速站点,效果一般)
  2. 阿里云加速器(需要注册个阿里云账号)
  3. 中科大加速器

加速器配置文件:

/etc/docker/daemon.json

配置加速器:

# 这里我用的docker-cn,阿里云加速器需要自己去注册个账号,然后阿里云会分配专用加速器
[root@docker ~]# cat /etc/docker/daemon.json
{
  "registry-mirrors": ["https://registry.docker-cn.com"]
}
[root@docker ~]# systemctl start docker.service

3 Docker常用操作命令

命令 作用
docker search 在docker hub中查询镜像是否存在
docker pull 从仓库中pull镜像
docker images 列出本地镜像
docker create 创建一个容器
docker start 开启一个或多个处于停止状态的容器
docker run 指定命令运行一个新容器,若此容器在本地images中没有,会从docker hub中pull
docker attach 进入到一个容器中
docker ps 列出所有状态的容器
docker logs 从容器中获取日志
docker restart 重启一个容器
docker stop 停止一个容器
docker kill kill一个或多个正在运行的容器
docker rm 删除一个或多个容器

帮助

[root@docker ~]# docker --help 
[root@docker ~]# docker image --help

查看版本

[root@docker ~]# docker version
Client:
 Version:           18.06.1-ce
 API version:       1.38
 Go version:        go1.10.3
 Git commit:        e68fc7a
 Built:             Tue Aug 21 17:23:03 2018
 OS/Arch:           linux/amd64
 Experimental:      false

Server:
 Engine:
  Version:          18.06.1-ce
  API version:      1.38 (minimum version 1.12)
  Go version:       go1.10.3
  Git commit:       e68fc7a
  Built:            Tue Aug 21 17:25:29 2018
  OS/Arch:          linux/amd64
  Experimental:     false

更详细的信息

[root@docker ~]# docker info

pull一个镜像

[root@docker ~]# docker image pull nginx:1.14-alpine
[root@docker ~]# docker image ls
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nginx               1.14-alpine         14d4a58e0d2e        7 weeks ago         17.4MB
[root@docker ~]# docker image ls nginx

删除镜像

[root@docker ~]# docker image rm busybox
[root@docker ~]# docker rmi busybox

创建容器

[root@docker ~]# docker run --name b1 -it busybox:latest
/ # ls
bin   dev   etc   home  proc  root  sys   tmp   usr   var
/ # pwd
/
/ # ls /bin

启动httpd

/ # mkdir /data/html/ -p
/ # vi /data/html/index.html
Busybox httpd server
/ # httpd -f -h /data/html/

[root@docker ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
009a12f4defc        busybox:latest      "sh"                6 minutes ago       Up 6 minutes                            b1 
[root@docker ~]# docker inspect b1 | grep "IPAddress"
            "SecondaryIPAddresses": null,
            "IPAddress": "172.17.0.2",
                    "IPAddress": "172.17.0.2",
[root@docker ~]# curl 172.17.0.2
Busybox httpd server

如果在docker busybox shell中按终止就会连接不上

[root@docker ~]# curl 172.17.0.2
curl: (7) Failed connect to 172.17.0.2:80; Connection refused

启动容器

[root@docker ~]# docker start -ai b1
[root@docker ~]# docker container start -ai b1

运行nginx

[root@docker ~]# docker run --name web1 -d nginx:1.14-alpine 
[root@docker ~]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED              STATUS              PORTS               NAMES
c859e333c65c        nginx:1.14-alpine   "nginx -g 'daemon of…"   About a minute ago   Up 59 seconds       80/tcp              web1
[root@docker ~]# docker inspect web1 | grep "IPAddress"
            "SecondaryIPAddresses": null,
            "IPAddress": "172.17.0.2",
                    "IPAddress": "172.17.0.2",
[root@docker ~]# curl 172.17.0.2

启动一个没有镜像的redis,只需要把版本号写对即可

[root@docker ~]# docker run --name kvstor1 -d redis:4-alpine
[root@docker ~]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
e7ca0d93c496        redis:4-alpine      "docker-entrypoint.s…"   5 seconds ago       Up 3 seconds        6379/tcp            kvstor1
c859e333c65c        nginx:1.14-alpine   "nginx -g 'daemon of…"   4 minutes ago       Up 3 minutes        80/tcp              web1

[root@docker ~]# docker exec -it kvstor1 /bin/sh 
/data # ps
PID   USER     TIME  COMMAND
    1 redis     0:00 redis-server
   18 root      0:00 /bin/sh
   23 root      0:00 ps
/data # netstat -tnl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       
tcp        0      0 0.0.0.0:6379            0.0.0.0:*               LISTEN      
tcp        0      0 :::6379                 :::*                    LISTEN      
/data # redis-cli
127.0.0.1:6379> keys *
(empty list or set)
127.0.0.1:6379> exit
/data # exit

查看容器日志

[root@docker ~]# docker logs web1
172.17.0.1 - - [02/Nov/2018:01:12:42 +0000] "GET / HTTP/1.1" 200 612 "-" "curl/7.29.0" "-"

猜你喜欢

转载自blog.csdn.net/Mr_rsq/article/details/84820154