docker基本用法

docker安装

下载依赖包

[root@docker ~]# yum install -y yum-utils device-mapper-persistent-data lvm2
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
base                                                         | 3.6 kB  00:00:00     
docker-ce-stable                                             | 3.5 kB  00:00:00     
epel                                                         | 4.7 kB  00:00:00     
extras                                                       | 2.9 kB  00:00:00     
updates                                                      | 2.9 kB  00:00:00     
(1/2): epel/x86_64/updateinfo                                | 1.0 MB  00:00:00     
(2/2): epel/x86_64/primary_db                                | 6.7 MB  00:00:00     
Package yum-utils-1.1.31-52.el7.noarch already installed and latest version
Package device-mapper-persistent-data-0.8.5-1.el7.x86_64 already installed and latest version

下载docker源

[root@docker ~]# yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
Loaded plugins: fastestmirror
adding repo from: https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
grabbing file https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo to /etc/yum.repos.d/docker-ce.repo
repo saved to /etc/yum.repos.d/docker-ce.repo
[root@docker ~]# ls /etc/yum.repos.d/
CentOS-Base.repo  docker-ce.repo  epel.repo

更新缓存

[root@docker ~]# yum makecache fast
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
base                                                         | 3.6 kB  00:00:00   
docker-ce-stable                                             | 3.5 kB  00:00:00   
epel                                                         | 4.7 kB  00:00:00   
extras                                                       | 2.9 kB  00:00:00   
updates                                                      | 2.9 kB  00:00:00   
Metadata Cache Created

下载docker,并启动

[root@docker ~]# yum -y install docker-ce
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Package 3:docker-ce-19.03.8-3.el7.x86_64 already installed and latest version
Nothing to do
[root@docker ~]# systemctl start docker

在阿里云下载镜像加速器

在这里插入图片描述

在这里插入图片描述
将镜像加速器按照如图所示添加到配置文件中

[root@docker ~]# cat /etc/docker/daemon.json 
{
  "registry-mirrors": ["https://8wtmkrrm.mirror.aliyuncs.com"]
}
[root@docker ~]# 

docker 常用命令

docker pull nginx 从镜像空间里面拉取nginx镜像到本地
[root@docker ~]# docker pull nginx
Using default tag: latest
latest: Pulling from library/nginx
68ced04f60ab: Pull complete 
28252775b295: Pull complete 
a616aa3b0bf2: Pull complete 
Digest: sha256:2539d4344dd18e1df02be842ffc435f8e1f699cfc55516e2cf2cb16b7a9aea0b
Status: Downloaded newer image for nginx:latest
docker.io/library/nginx:latest

docker images 查看本地的镜像

[root@docker ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nginx               latest              6678c7c2e56c        3 weeks ago         127MB

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>
  Supports d_type: true
  Native Overlay Diff: true
 Logging Driver: json-file
 Cgroup Driver: cgroupfs
 Plugins:
  Volume: local
  Network: bridge host ipvlan 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: 7ad184331fa3e55e52b890ea95e65ba581ae3429
 runc version: dc9208a3303feef5b3839f4323d9beb36df0a9dd
 init version: fec3683
 Security Options:
  seccomp
   Profile: default
 Kernel Version: 3.10.0-957.21.3.el7.x86_64
 Operating System: CentOS Linux 7 (Core)
 OSType: linux
 Architecture: x86_64
 CPUs: 1
 Total Memory: 991MiB
 Name: docker
 ID: 3JSO:RMXS:EZQS:CJP2:PHMA:BCLU:IUSL:KYGT:BX45:D4G3:VS2G:BPYJ
 Docker Root Dir: /var/lib/docker
 Debug Mode: false
 Registry: https://index.docker.io/v1/
 Labels:
 Experimental: false
 Insecure Registries:
  127.0.0.0/8
 Registry Mirrors:
  https://8wtmkrrm.mirror.aliyuncs.com/
 Live Restore Enabled: false

WARNING: bridge-nf-call-iptables is disabled
WARNING: bridge-nf-call-ip6tables is disabled

在docker hub中查找镜像文件

[root@docker ~]# 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]
richarvey/nginx-php-fpm            Container running Nginx + PHP-FPM capable of…   760                                     [OK]
linuxserver/nginx                  An Nginx container, brought to you by LinuxS…   102                                     
bitnami/nginx                      Bitnami nginx Docker Image                      81                                      [OK]
tiangolo/nginx-rtmp                Docker image with Nginx using the nginx-rtmp…   66                                      [OK]
jc21/nginx-proxy-manager           Docker container for managing Nginx proxy ho…   46                                      
nginxdemos/hello                   NGINX webserver that serves a simple page co…   45                                      [OK]
nginx/unit                         NGINX Unit is a dynamic web and application …   36                                      
jlesage/nginx-proxy-manager        Docker container for Nginx Proxy Manager        36                                      [OK]
nginx/nginx-ingress                NGINX Ingress Controller for Kubernetes         28                                      
privatebin/nginx-fpm-alpine        PrivateBin running on an Nginx, php-fpm & Al…   23                                      [OK]
schmunk42/nginx-redirect           A very simple container to redirect HTTP tra…   18                                      [OK]
nginxinc/nginx-unprivileged        Unprivileged NGINX Dockerfiles                  13                                      
centos/nginx-18-centos7            Platform for running nginx 1.8 or building n…   13                                      
blacklabelops/nginx                Dockerized Nginx Reverse Proxy Server.          13                                      [OK]
raulr/nginx-wordpress              Nginx front-end for the official wordpress:f…   12                                      [OK]
centos/nginx-112-centos7           Platform for running nginx 1.12 or building …   12                                      
nginx/nginx-prometheus-exporter    NGINX Prometheus Exporter                       10                                      
sophos/nginx-vts-exporter          Simple server that scrapes Nginx vts stats a…   7                                       [OK]
mailu/nginx                        Mailu nginx frontend                            6                                       [OK]
bitnami/nginx-ingress-controller   Bitnami Docker Image for NGINX Ingress Contr…   4                                       [OK]
ansibleplaybookbundle/nginx-apb    An APB to deploy NGINX                          1                                       [OK]
wodby/nginx                        Generic nginx                                   0                                       [OK]
centos/nginx-110-centos7           Platform for running nginx 1.10 or building …   0                                       

docker create 创建容器,

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

docker start 启动容器

[root@docker ~]# docker start f2ddc38c52b3
f2ddc38c52b3
[root@docker ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED              STATUS              PORTS               NAMES
f2ddc38c52b3        nginx               "/bin/bash"         About a minute ago   Up 5 seconds        80/tcp              magical_mahavira

docker run -it httpd /bin/bash

docker run -it httpd /bin/bash 如果没有镜像就去本地或者镜像仓库拉到本地,然后创建容器并运行

[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 
48b718b71719: Downloading 
d65ae7a4c211: Downloading 
8d17dee838ad: Download complete 
latest: Pulling from library/httpd
c499e6d256d6: Pull complete 
76155f771be0: Pull complete 
48b718b71719: Pull complete 
d65ae7a4c211: Pull complete 
8d17dee838ad: Pull complete 
Digest: sha256:7cbb6e0bdbcae47b7684425160423a336d17c1dd499adb471ac99913c43e16fa
Status: Downloaded newer image for httpd:latest
root@f1da662d13d8:/usr/local/apache2# 

docker run -d httpd

以守护进程模式运行httpd

[root@docker ~]# docker run -d httpd
a2f2079c28e3c645ebf342b3084c51c0147c94ec60ccdaa02e8a0598cdcf7a86
[root@docker ~]# docker ps 
CONTAINER ID        IMAGE               COMMAND              CREATED             STATUS              PORTS               NAMES
a2f2079c28e3        httpd               "httpd-foreground"   6 seconds ago       Up 5 seconds        80/tcp              peaceful_kapitsa

docker restart 重启容器

[root@docker ~]# docker ps 
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
f2ddc38c52b3        nginx               "/bin/bash"         30 minutes ago      Up 28 minutes       80/tcp              magical_mahavira
[root@docker ~]# docker restart f2ddc38c52b3
f2ddc38c52b3
[root@docker ~]# docker ps 
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                  PORTS               NAMES
f2ddc38c52b3        nginx               "/bin/bash"         30 minutes ago      Up Less than a second   80/tcp              magical_mahavira

docker stop 停止容器

[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      Up 28 minutes       80/tcp              magical_mahavira
[root@docker ~]# docker stop a2f2079c28e3
a2f2079c28e3
[root@docker ~]# docker ps 
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
f2ddc38c52b3        nginx               "/bin/bash"         30 minutes ago      Up 28 minutes       80/tcp              magical_mahavira

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

docker rm 删除容器

删除的只是容器,镜像文件还在

[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

docker attach 进入容器中

[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
[root@docker ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

docker exec 进入容器中

与attch区别在于,exec会新打开一个/bin/bash,退出后不会影响进程的运行,而attach退出后则会停止进程

[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

容器端口映射

将主机的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                                                    :::*              

docker logs 查看容器日志信息

[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 3554b965451d 
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 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko" "-"
2020/03/31 07:33:35 [error] 6#6: *3 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:35 +0000] "GET /favicon.ico HTTP/1.1" 404 153 "-" "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko" "-"

docker inspect 看容器的详细信息

[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",
            "FinishedAt": "2020-03-31T07:24:03.373919947Z"
        },
        "Image": "sha256:6678c7c2e56c970388f8d5a398aa30f2ab60e85f20165e101053c3d3a11e6663",
        "ResolvConfPath": "/var/lib/docker/containers/f2ddc38c52b3cca3cfa81963ec27ee9baac43d14ff60b3d5e1f61cf6f7966262/resolv.conf",
        "HostnamePath": "/var/lib/docker/containers/f2ddc38c52b3cca3cfa81963ec27ee9baac43d14ff60b3d5e1f61cf6f7966262/hostname",
        "HostsPath": "/var/lib/docker/containers/f2ddc38c52b3cca3cfa81963ec27ee9baac43d14ff60b3d5e1f61cf6f7966262/hosts",
        "LogPath": "/var/lib/docker/containers/f2ddc38c52b3cca3cfa81963ec27ee9baac43d14ff60b3d5e1f61cf6f7966262/f2ddc38c52b3cca3cfa81963ec27ee9baac43d14ff60b3d5e1f61cf6f7966262-json.log",
        "Name": "/magical_mahavira",
        "RestartCount": 0,
        "Driver": "overlay2",
        "Platform": "linux",
        "MountLabel": "",
        "ProcessLabel": "",
        "AppArmorProfile": "",
        "ExecIDs": null,
        "HostConfig": {
            "Binds": null,
            "ContainerIDFile": "",
            "LogConfig": {
                "Type": "json-file",
                "Config": {}
            },

docker image save 4571e56e27f0 将镜像打包成tar文件

[root@iZwz96qqnk6y93b89a59rxZ ~]# docker image save 4571e56e27f0 > /opt/haha.tar 

docker image load -i /opt/haha.tar 将tar打包的镜像文件归档到本地镜像仓库
[root@iZwz96qqnk6y93b89a59rxZ ~]# docker image load -i /opt/haha.tar 
ffc9b21953f4: Loading layer  72.49MB/72.49MB
d9c0b16c8d5b: Loading layer  63.81MB/63.81MB
8c7fd6263c1f: Loading layer  3.072kB/3.072kB
c2d87b5d25a8: Loading layer  4.096kB/4.096kB
e94275d61ac3: Loading layer  3.584kB/3.584kB
Loaded image ID: sha256:4571e56e27f09b600d401ca72a66dfd1e09bbe8764808019d07324cdde68c025
[root@iZwz96qqnk6y93b89a59rxZ ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
<none>              <none>              4571e56e27f0        12 hours ago        132MB
centos              latest              470671670cac        4 months ago        237MB

docker 镜像文件将其打上标签

[root@iZwz96qqnk6y93b89a59rxZ ~]#  docker tag  4571e56e27f0  nginx:latest
[root@iZwz96qqnk6y93b89a59rxZ ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nginx               latest              4571e56e27f0        12 hours ago        132MB
centos              latest              470671670cac        4 months ago        237MB
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值