5.1 docker安装及应用基础

1. CentOS 7系统docker-ce安装(阿里云镜像)

1.安装必要的一些系统工具

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

2.添加软件源信息

sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

3.清楚旧的缓存

sudo yum clean all

5.建立新的缓存并安装Docker-CE

sudo yum makecache fast
sudo yum -y install docker-ce

6.开启Docker服务

sudo systemctl start docker

注意:

安装指定版本的Docker-CE:
1: 查找Docker-CE的版本:
yum list docker-ce.x86_64 --showduplicates | sort -r
   Loading mirror speeds from cached hostfile
   Loaded plugins: branch, fastestmirror, langpacks
   docker-ce.x86_64            17.03.1.ce-1.el7.centos            docker-ce-stable
   docker-ce.x86_64            17.03.1.ce-1.el7.centos            @docker-ce-stable
   docker-ce.x86_64            17.03.0.ce-1.el7.centos            docker-ce-stable
   Available Packages
2: 安装指定版本的Docker-CE: (VERSION例如上面的17.03.0.ce.1-1.el7.centos)
sudo yum -y install docker-ce-[VERSION]

2. docker加速

docker-ce的配置文件是/etc/docker/daemon.json,此文件默认不存在,需要我们手动创建并进行配置,而docker的加速就是通过配置此文件来实现的。

docker的加速有多种方式:

  • docker cn
  • 中国科技大学加速器
  • 阿里云加速器(需要通过阿里云开发者平台注册帐号,免费使用个人私有的加速器)

2.1 阿里云docker镜像加速器配置方法

针对Docker客户端版本大于 1.10.0 的用户
可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器

扫描二维码关注公众号,回复: 10640408 查看本文章
  1. 进入阿里云首页登录,点击控制台进入以下页面
    在这里插入图片描述
  2. 点击左上角的在这里插入图片描述,打开产品与服务
  3. 选择产品与服务中的容器镜像服务在这里插入图片描述
  4. 点击镜像中心的镜像加速
    在这里插入图片描述
  5. 根据操作文档,选择所需操作系统,添加加速器
    在这里插入图片描述

2.2 Centos/Redhat系统Docker镜像加速器配置如下:

sudo mkdir -p /etc/docker
sudo cat /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["<阿里云加速链接>"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

3. Docker常用操作

docker常用操作列表

命令 功能
docker search 在Docker仓库中搜索镜像
docker pull 从仓库中拉取镜像到本地
docker images 查看本地镜像
docker create 创建一个新的容器
docker start 启动容器
docker restart 重启容器
docker stop 停止容器
docker run 在一个容器中运行一个指令
docker attach 进入运行的容器中,退出后容器停止
docker exec 进入运行的容器中,退出后容器正常运行
docker ps 列出所有容器
docker logs 查看容器日志信息
docker kill 强制管理容器
docker rm 删除容器
docker rmi 删除下载至本地的镜像
docker info 显示系统中关于docker的信息
docker inspect 输出容器的详细信息

3.1 docker search 搜索仓库中的镜像

语法:docker search <镜像名称>
作用:搜索仓库中指定名称的镜像
示例:

[root@master ~]# docker search nginx
NAME                               DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
nginx                              Official build of Nginx.                        12902               [OK]                
jwilder/nginx-proxy                Automated Nginx reverse proxy for docker con…   1760                                    [OK]
...省略N行

3.2 docker pull 从仓库中拉取镜像

语法:docker pull <镜像名称>
作用:从仓库中拉取镜像到本地
示例:

[root@master ~]# docker pull httpd
Using default tag: latest
latest: Pulling from library/httpd
c499e6d256d6: Retrying in 1 second 
76155f771be0: Download complete 
...

3.3 docker images 查看本地镜像

语法:docker images
作用:查看本地镜像
示例:

[root@master ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE

3.4 docker create 创建一个新的容器

语法:docker create [OPTIONS] [COMMAND]
作用:创建一个新的容器
示例:

[root@docker ~]# docker create -it nginx /bin/bash
f2ddc38c52b3cca3cfa81963ec27ee9baac43d14ff60b3d5e1f61cf6f7966262

3.5 docker start 启动容器

语法:docker start <容器id>
作用:启动容器
示例:

[root@docker ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
f2ddc38c52b3        nginx               "/bin/bash"         4 seconds ago
[root@docker ~]# docker start f2ddc38c52b3
f2ddc38c52b3

3.6 docker restart 重启容器

语法:docker restart <容器id>
作用:重启容器
示例:

[root@docker ~]# docker ps
CONTAINER ID        IMAGE               COMMAND              CREATED             STATUS              PORTS               NAMES
a2f2079c28e3        httpd               "httpd-foreground"   5 minutes ago       Up 1 second         80/tcp              peaceful_kapitsa
f2ddc38c52b3        nginx               "/bin/bash"          29 minutes ago
[root@docker ~]# docker restart f2ddc38c52b3
f2ddc38c52b3

3.7 docker stop 停止容器

语法:docker stop <容器id>
作用:停止容器
示例:

[root@docker ~]# docker ps
CONTAINER ID        IMAGE               COMMAND              CREATED             STATUS              PORTS               NAMES
a2f2079c28e3        httpd               "httpd-foreground"   5 minutes ago       Up 1 second         80/tcp              peaceful_kapitsa
f2ddc38c52b3        nginx               "/bin/bash"          29 minutes ago
[root@docker ~]# docker stop a2f2079c28e3
a2f2079c28e3

3.8 docker run 在一个新的容器中运行一个指令

语法:docker run [OPTIONS] [COMMAND]
作用:在一个新的容器中运行一个指令,如果没有镜像就去本地或者镜像仓库拉到本地,然后创建容器并运行
示例:

[root@docker ~]# docker run -it httpd /bin/bash
Unable to find image 'httpd:latest' locally
latest: Pulling from library/httpd
c499e6d256d6: Downloading 
76155f771be0: Download complete 
Digest: sha256:7cbb6e0bdbcae47b7684425160423a336d17c1dd499adb471ac99913c43e16fa
Status: Downloaded newer image for httpd:latest
root@f1da662d13d8:/usr/local/apache2#

以守护进程模式运行httpd
[root@docker ~]# docker run -d httpd
8e3c645ebf342b3084c51c0147c94ec60ccdaa02e8a0598cdcf7a86

3.9 docker attach 进入运行的容器

语法:docker attach <容器id>
作用:进入运行的容器,退出后则会停止进程
示例:

[root@docker ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                       PORTS               NAMES
f1da662d13d8        httpd               "/bin/bash"         18 minutes ago      Exited (0) 15 minutes ago                        busy_merkle
f2ddc38c52b3        nginx               "/bin/bash"         38 minutes ago  
[root@docker ~]# docker attach f2ddc38c52b3
root@f2ddc38c52b3:/# ls
bin   dev  home  lib64	mnt  proc  run	 srv  tmp  var
boot  etc  lib	 media	opt  root  sbin  sys  usr
root@f2ddc38c52b3:/# pwd
/
root@f2ddc38c52b3:/# ps
bash: ps: command not found
root@f2ddc38c52b3:/# exit
exit

3.10 docker exec 进入容器中

语法:docker exec [OPTIONS] <容器id> [COMMAND]
作用:进入运行的容器中,与attch区别在于,exec会新打开一个/bin/bash,即退出后不会停止进程
示例:

[root@docker ~]# docker exec -it f2ddc38c52b3 /bin/bash
root@f2ddc38c52b3:/# ls
bin   dev  home  lib64	mnt  proc  run	 srv  tmp  var
boot  etc  lib	 media	opt  root  sbin  sys  usr
root@f2ddc38c52b3:/# pwd
/
root@f2ddc38c52b3:/# exit
exit
[root@docker ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
f2ddc38c52b3        nginx               "/bin/bash"         54 minutes ago      Up 27 seconds       80/tcp              magical_mahavira

3.11 docker ps 列出所有容器

语法:docker ps [OPTIONS]
作用:列出所有容器,加‘-a’参数是查看所有容器,不加‘-a’参数只查看运行的容器
示例:

[root@docker ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
[root@docker ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
4fa378973da0        nginx               "/bin/bash"         7 hours ago         Created                                 pedantic_faraday
[root@docker ~]# docker start 4fa378973da0
4fa378973da0
[root@docker ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
4fa378973da0        nginx               "/bin/bash"         7 hours ago         Up 3 seconds        80/tcp              pedantic_faraday

3.12 docker logs 查看容器日志信息

语法:docker logs <容器id>
作用:查看容器日志信息
示例:

[root@docker ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                     PORTS                  NAMES
3554b965451d        nginx               "nginx -g 'daemon of…"   7 minutes ago       Up 7 minutes               0.0.0.0:8080->80/tcp   upbeat_hopper
f2ddc38c52b3        nginx               "/bin/bash"              About an hour ago   Exited (0) 9 minutes ago                          magical_mahavira
[root@docker ~]# docker logs f2ddc38c52b3 
2020/03/31 07:33:32 [error] 6#6: *1 open() "/usr/share/nginx/html/favicon.ico" failed (2: No such file or directory), client: 36.106.239.102, server: localhost, request: "GET /favicon.ico HTTP/1.1", host: "101.201.103.197:8080"
36.106.239.102 - - [31/Mar/2020:07:33:32 +0000] "GET /favicon.ico HTTP/1.1" 404 555 "-" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36" "-"
2020/03/31 07:33:33 [error] 6#6: *1 open() "/usr/share/nginx/html/favicon.ico" failed (2: No such file or directory), client: 36.106.239.102, server: localhost, request: "GET /favicon.ico HTTP/1.1", host: "101.201.103.197:8080"
36.106.239.102 - - [31/Mar/2020:07:33:33 +0000] "GET /favicon.ico HTTP/1.1" 404 555 "-" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36" "-"
36.106.239.102 - - [31/Mar/2020:07:33:34 +0000] "GET / HTTP/1.1" 200 612 "-" "Mozilla/5.0 (Wind

3.13 docker kill 强制关闭容器

语法:docker kill
作用:强制关闭容器
示例:

[root@docker ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
f2ddc38c52b3        nginx               "/bin/bash"         35 minutes ago      Up 4 minutes        80/tcp              magical_mahavira
[root@docker ~]# docker kill f2ddc38c52b3
f2ddc38c52b3
[root@docker ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

3.14 docker rm 删除容器

语法:docker rm <容器id>
作用:删除容器(只删除容器,不会删除镜像文件)
示例:

[root@docker ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                       PORTS               NAMES
f1da662d13d8        httpd               "/bin/bash"         18 minutes ago      Exited (0) 15 minutes ago                        busy_merkle
f2ddc38c52b3        nginx               "/bin/bash"         38 minutes ago      Exited (137) 3 minutes ago                       magical_mahavira
[root@docker ~]# docker rm f1da662d13d8
f1da662d13d8
[root@docker ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                       PORTS               NAMES
f2ddc38c52b3        nginx               "/bin/bash"         39 minutes ago      Exited (137) 3 minutes ago                       magical_mahavira

3.15 docker rmi 删除下载至本地的镜像

语法:docker rm <容器id>
作用:删除该镜像生成的容器后,方能执行删除镜像文件操作
示例:

1.查看镜像
[root@docker ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
httpd               latest              8326be82abe6        37 hours ago        166MB
nginx               latest              ed21b7a8aee9        37 hours ago        127MB

2.测试未删除包含该镜像的容器,删除镜像,结果不能删除镜像
[root@docker ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                      PORTS               NAMES
4cbc4b34e954        httpd               "/bin/bash"              7 seconds ago       Created                                         brave_wright
[root@docker ~]# docker rmi httpd
Error response from daemon: conflict: unable to remove repository reference "httpd" (must force) - container 4cbc4b34e954 is using its referenced image 8326be82abe

3.测试删除包含该镜像的容器,删除镜像,操作成功
[root@docker ~]# docker rm 4cbc4b34e954
4cbc4b34e954
[root@docker ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                      PORTS               NAMES
[root@docker ~]# docker rmi httpd
Untagged: httpd:latest
Untagged: httpd@sha256:13aa010584cb3d79d66adf52444494ae5db67faa28d65a1a25e6ddc57f7c0e2a
Deleted: sha256:8326be82abe637e922bde6490fb056b004549e3fda8a0740c8b36dbe7618d8c0
Deleted: sha256:1849240985893dd2524681683ee6abcbcbe75e81b624a0ee53d17583691533bb
Deleted: sha256:ad5b5cde19f5cbb8953ae152bd74eb1ce182afc2849a2686374ebc9650460c5b
Deleted: sha256:66197faeeaa325373242f137e9b8ac94c1fc941ee06f8fe98c71fc19d4b9468c
Deleted: sha256:74967bdddf8b42f98b8cd6a3b06dfa0a20f8fb593f14d8dea252ec293167f73a

3.16 docker info 显示系统中关于docker的信息

语法:docker info
作用:显示系统中关于docker的信息
示例:

[root@docker ~]# docker info
Client:
 Debug Mode: false

Server:
 Containers: 0
  Running: 0
  Paused: 0
  Stopped: 0
 Images: 1
 Server Version: 19.03.8
 Storage Driver: overlay2
  Backing Filesystem: <unknown>
...省略N行

3.17 docker inspect 输出容器的详细信息

语法:docker inspect <容器id>
作用:输出容器的详细信息
示例:

[root@docker ~]# docker inspect f2ddc38c52b3
[
    {
        "Id": "f2ddc38c52b3cca3cfa81963ec27ee9baac43d14ff60b3d5e1f61cf6f7966262",
        "Created": "2020-03-31T06:26:05.593708966Z",
        "Path": "/bin/bash",
        "Args": [],
        "State": {
            "Status": "exited",
            "Running": false,
            "Paused": false,
            "Restarting": false,
            "OOMKilled": false,
            "Dead": false,
            "Pid": 0,
            "ExitCode": 0,
            "Error": "",
            "StartedAt": "2020-03-31T07:19:41.644560568Z",
...省略N行

3.18 容器端口映射至本地系统

将主机的8080端口映射到容器中80端口的nginx,然后通过访问本机的8080来达到访问容器中80的nginx

[root@docker ~]# docker run -d -p 8080:80 nginx
3554b965451dfea5477801a8fcc2aacc1d52aea70d7d04c281dac4bed1f393a0
[root@docker ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                          PORTS                  NAMES
3554b965451d        nginx               "nginx -g 'daemon of…"   4 seconds ago       Up 3 seconds                    0.0.0.0:8080->80/tcp   upbeat_hopper
f2ddc38c52b3        nginx               "/bin/bash"              59 minutes ago      Exited (0) About a minute ago                          magical_mahavira
[root@docker ~]# ss -antl
State       Recv-Q Send-Q                           Local Address:Port                                          Peer Address:Port              
LISTEN      0      128                                          *:22                                                       *:*                  
LISTEN      0      128                                         :::8080                                                    :::*              
发布了50 篇原创文章 · 获赞 8 · 访问量 1871

猜你喜欢

转载自blog.csdn.net/Yusyang_/article/details/105210385
5.1
今日推荐