docker的安装与基础用法

1. docker的安装

1.1 docker的安装

cd /etc/yum.repos.d/
curl -o docker-ce.repo https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo
sed -i 's@https://download.docker.com@https://mirrors.tuna.tsinghua.edu.cn/docker-ce@g' docker-ce.repo

yum -y install docker-ce

1.2 docker的加速

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

docker的加速有多种方式:

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

cat > /etc/docker/daemon.json <

2.docker的常用操作

docker search 在Docker Hub中搜索镜像

[root@salt1 ~]# docker search httpd
NAME                                    DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
httpd                                   The Apache HTTP Server Project                  2933                [OK]                
centos/httpd-24-centos7                 Platform for running Apache httpd 2.4 or bui…   31                                      
centos/httpd                                                                            28                                      [OK]
arm32v7/httpd                           The Apache HTTP Server Project                  9
......  

docker pull 拉入镜像

[root@salt1 ~]# docker pull httpd
Using default tag: latest
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
docker.io/library/httpd:latest

docker images 列出本地镜像

[root@salt1 ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
httpd               latest              8326be82abe6        11 hours ago        166MB

docker create 创建新容器

[root@salt1 ~]# docker create -it httpd /bin/bash
3741b0c5afc02f5da6a0ae42ee37bd05a32bfcbc29ce646f7b18b7438bd866ab
[root@salt1 ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND              CREATED             STATUS              PORTS               NAMES
3741b0c5afc0        httpd               "/bin/bash"          14 seconds ago      Created                                 inspiring_northcutt
14d403345c03        httpd               "httpd-foreground"   29 minutes ago      Up 13 minutes       80/tcp              quirky_germain

docker start 启动一个或多个已停止的容器

[root@salt1 ~]# docker start 14d403345c03b85f348fc2c22a62590830ea0cc3fca0854b5445681c8e54bb57
14d403345c03b85f348fc2c22a62590830ea0cc3fca0854b5445681c8e54bb57
[root@salt1 ~]# docker ps
CONTAINER ID        IMAGE               COMMAND              CREATED             STATUS              PORTS               NAMES
14d403345c03        httpd               "httpd-foreground"   2 minutes ago       Up 25 seconds       80/tcp              quirky_germain

docker restart 重新启动容器

[root@salt1 ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
[root@salt1 ~]# docker restart 14d403345c03b85f348fc2c22a62590830ea0cc3fca0854b5445681c8e54bb57
14d403345c03b85f348fc2c22a62590830ea0cc3fca0854b5445681c8e54bb57
[root@salt1 ~]# docker ps
CONTAINER ID        IMAGE               COMMAND              CREATED             STATUS              PORTS               NAMES
14d403345c03        httpd               "httpd-foreground"   4 minutes ago       Up 1 second         80/tcp              quirky_germain

docker stop 停止一个或多个运行中的容器

[root@salt1 ~]# docker stop 14d403345c03b85f348fc2c22a62590830ea0cc3fca0854b5445681c8e54bb57
14d403345c03b85f348fc2c22a62590830ea0cc3fca0854b5445681c8e54bb57
[root@salt1 ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

docker kill 杀死一个或多个正在运行的容器

[root@salt1 ~]# docker kill 14d403345c03b85f348fc2c22a62590830ea0cc3fca0854b5445681c8e54bb57
14d403345c03b85f348fc2c22a62590830ea0cc3fca0854b5445681c8e54bb57
[root@salt1 ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

docker run 在新容器中运行命令

[root@salt1 ~]# docker run -it httpd /bin/bash
root@21c29aeb4163:/usr/local/apache2# exit  //之前拉过镜像在本地,直接运行,如果本地没有镜像会到镜像仓库拉到本地
exit
[root@salt1 ~]# docker run -d httpd  //以守护模式运行
44d0a0a19fd1c87511f6b22b990d54c21c4d1487a7cc05fff688162ef89d27c3
[root@salt1 ~]# docker ps
CONTAINER ID        IMAGE               COMMAND              CREATED             STATUS              PORTS               NAMES
44d0a0a19fd1        httpd               "httpd-foreground"   7 seconds ago       Up 5 seconds        80/tcp              clever_borg
14d403345c03        httpd               "httpd-foreground"   38 minutes ago      Up 22 minutes       80/tcp              quirky_germain

docker attach 进入运行容器中

[root@salt1 ~]# docker ps
CONTAINER ID        IMAGE               COMMAND              CREATED             STATUS              PORTS               NAMES
c0e4b8a73edb        httpd               "/bin/bash"          4 minutes ago       Up About a minute   80/tcp              priceless_faraday
44d0a0a19fd1        httpd               "httpd-foreground"   7 minutes ago       Up 7 minutes        80/tcp              clever_borg
14d403345c03        httpd               "httpd-foreground"   45 minutes ago      Up 29 minutes       80/tcp              quirky_germain
[root@salt1 ~]# docker attach c0e4b8a73edb
root@c0e4b8a73edb:/usr/local/apache2# exit
exit
[root@salt1 ~]# docker ps
CONTAINER ID        IMAGE               COMMAND              CREATED             STATUS              PORTS               NAMES
44d0a0a19fd1        httpd               "httpd-foreground"   7 minutes ago       Up 7 minutes        80/tcp              clever_borg
14d403345c03        httpd               "httpd-foreground"   46 minutes ago      Up 30 minutes       80/tcp              quirky_germain      //退出停止进程

docker ps 列出容器

  • 加-a列出所有
[root@salt1 ~]# docker ps
CONTAINER ID        IMAGE               COMMAND              CREATED             STATUS              PORTS               NAMES
14d403345c03        httpd               "httpd-foreground"   15 minutes ago      Up 2 seconds        80/tcp              quirky_germain

docker logs 获取容器日志

[root@salt1 ~]# docker logs 44d0a0a19fd1
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 172.17.0.3. Set the 'ServerName' directive globally to suppress this message
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 172.17.0.3. Set the 'ServerName' directive globally to suppress this message
[Tue Mar 31 15:27:51.692119 2020] [mpm_event:notice] [pid 1:tid 140410744607872] AH00489: Apache/2.4.43 (Unix) configured -- resuming normal operations
......

docker rm 移除一个或多个容器

[root@salt1 ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND              CREATED             STATUS                          PORTS               NAMES
c0e4b8a73edb        httpd               "/bin/bash"          13 minutes ago      Up 6 minutes                    80/tcp              priceless_faraday
436c493fb29e        httpd               "/bin/bash"          13 minutes ago      Exited (0) 13 minutes ago                           vibrant_shannon
44d0a0a19fd1        httpd               "httpd-foreground"   15 minutes ago      Exited (0) About a minute ago                       clever_borg
[root@salt1 ~]# docker rm 436c493fb29e
436c493fb29e
[root@salt1 ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND              CREATED             STATUS                      PORTS               NAMES
c0e4b8a73edb        httpd               "/bin/bash"          13 minutes ago      Up 7 minutes                80/tcp              priceless_faraday
44d0a0a19fd1        httpd               "httpd-foreground"   16 minutes ago      Exited (0) 2 minutes ago                        clever_borg

docker exec 在正在运行的容器中运行一个命令

[root@salt1 ~]# docker ps
CONTAINER ID        IMAGE               COMMAND              CREATED             STATUS              PORTS               NAMES
c0e4b8a73edb        httpd               "/bin/bash"          6 minutes ago       Up 2 seconds        80/tcp              priceless_faraday
44d0a0a19fd1        httpd               "httpd-foreground"   9 minutes ago       Up 9 minutes        80/tcp              clever_borg
14d403345c03        httpd               "httpd-foreground"   47 minutes ago      Up 31 minutes       80/tcp              quirky_germain
[root@salt1 ~]# docker exec -it c0e4b8a73edb /bin/bash
root@c0e4b8a73edb:/usr/local/apache2# exit
exit
[root@salt1 ~]# docker ps
CONTAINER ID        IMAGE               COMMAND              CREATED             STATUS              PORTS               NAMES
c0e4b8a73edb        httpd               "/bin/bash"          7 minutes ago       Up 17 seconds       80/tcp              priceless_faraday
44d0a0a19fd1        httpd               "httpd-foreground"   9 minutes ago       Up 9 minutes        80/tcp              clever_borg
14d403345c03        httpd               "httpd-foreground"   47 minutes ago      Up 32 minutes       80/tcp              quirky_germain     //退出不影响进程

docker info 显示系统范围内的信息

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

Server:
 Containers: 1
  Running: 1
  Paused: 0
  Stopped: 0
 Images: 1
 Server Version: 19.03.8
 Storage Driver: overlay2
  Backing Filesystem: 
  Supports d_type: true
  Native Overlay Diff: true
 Logging Driver: json-file
......

docker inspect 返回docker对象的低级信息

[root@salt1 ~]# docker inspect 44d0a0a19fd1
[
    {
        "Id": "44d0a0a19fd1c87511f6b22b990d54c21c4d1487a7cc05fff688162ef89d27c3",
        "Created": "2020-03-31T15:27:50.334737479Z",
        "Path": "httpd-foreground",
        "Args": [],
        "State": {
            "Status": "exited",
            "Running": false,
            "Paused": false,
            "Restarting": false,
            "OOMKilled": false,
            "Dead": false,
            "Pid": 0,
            "ExitCode": 0,
......

你可能感兴趣的:(Linux课程)