docker基本用法
- docker安装
- 在阿里云下载镜像加速器
- docker 常用命令
- docker images 查看本地的镜像
- docker info 显示系统中关于docker的信息
- 在docker hub中查找镜像文件
- docker create 创建容器,
- docker start 启动容器
- docker run -it httpd /bin/bash
- docker run -d httpd
- docker restart 重启容器
- docker stop 停止容器
- docker kill 强制关闭容器
- docker rm 删除容器
- docker attach 进入容器中
- docker exec 进入容器中
- 容器端口映射
- docker logs 查看容器日志信息
- docker inspect 看容器的详细信息
- docker image save 4571e56e27f0 将镜像打包成tar文件
- 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