文章目录
- 1. CentOS 7系统docker-ce安装(阿里云镜像)
- 2. docker加速
- 3. Docker常用操作
- 3.1 docker search 搜索仓库中的镜像
- 3.2 docker pull 从仓库中拉取镜像
- 3.3 docker images 查看本地镜像
- 3.4 docker create 创建一个新的容器
- 3.5 docker start 启动容器
- 3.6 docker restart 重启容器
- 3.7 docker stop 停止容器
- 3.8 docker run 在一个新的容器中运行一个指令
- 3.9 docker attach 进入运行的容器
- 3.10 docker exec 进入容器中
- 3.11 docker ps 列出所有容器
- 3.12 docker logs 查看容器日志信息
- 3.13 docker kill 强制关闭容器
- 3.14 docker rm 删除容器
- 3.15 docker rmi 删除下载至本地的镜像
- 3.16 docker info 显示系统中关于docker的信息
- 3.17 docker inspect 输出容器的详细信息
- 3.18 容器端口映射至本地系统
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来使用加速器
- 进入阿里云首页登录,点击控制台进入以下页面
- 点击左上角的,打开产品与服务
- 选择产品与服务中的容器镜像服务
- 点击镜像中心的镜像加速
- 根据操作文档,选择所需操作系统,添加加速器
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 :::*