Docker基础用法
docker架构
c/s架构
client-> server
连接使用:https/http
server -> registry
连接使用:https(默认)/http(需要明文指定)
The Docker daemon
- The Docker daemon (dockerd) listens for Docker API requests and
manages Docker objects such as images, containers, networks, and
volumes.
- 镜像(images):静态
- 容器(containers):动态,有生命周期
The Docker client
- The Docker client (docker) is the primary way that many Docker users
interact with Docker.
- The docker command uses the Docker API.
Docker registries
- A Docker registry stores Docker images.
- Docker Hub and Docker Cloud are public registries that anyone can
use, and Docker is configured to look for images on Docker Hub by
default.
- You can even run your own private registry.
Docker registries 容器仓库
- 默认不修改配置时,使用的仓库地址
hub.docker.com
## 公有仓库地址,可在里面搜索nginx,tomcat镜像进行二次修改,以适配公司代码环境
Docker objects
images
containers
networks
volumes
plugins
other objects
镜像文件只读,在 containers 中修改并不能修改 image 中的数据,而是修改的 containers 的读写层数据,覆盖了底层 image文件数据
docker 安装
- 依赖的基础环境
64 bits CPU
Linux Kernel 3.10+
Linux Kernel cgroups and namespaces
- CentOS 7
安装“ Extras”仓库(默认即安装)
- 安装docker
# cd /etc/yum.repo.d/
# wget http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# yum install docerk-ce
docker配置文件: /etc/docker/daemon.json
配置docker加速
## 提供加速的官方
docker cn
阿里云加速
中科大加速
网易加速
## 配置加速
# vim /etc/docker/daemon.json # (docker cn加速)
{
"registry-mirrors": ["https://registry.docker-cn.com"]
}
# vim /etc/docker/daemon.json # (网易加速)
{
"registry-mirrors": ["http://hub-mirror.c.163.com"]
}
## docker cn + 网易 加速
# vim /etc/docker/daemon.json # (网易加速)
{
"registry-mirrors": ["http://hub-mirror.c.163.com", "https://registry.docker-cn.com"]
}
docker 环境信息
# docker version
Client: Docker Engine - Community
Version: 19.03.8
API version: 1.40
Go version: go1.12.17
Git commit: afacb8b
Built: Wed Mar 11 01:27:04 2020
OS/Arch: linux/amd64
Experimental: false
Server: Docker Engine - Community
Engine:
Version: 19.03.8
API version: 1.40 (minimum version 1.12)
Go version: go1.12.17
Git commit: afacb8b
Built: Wed Mar 11 01:25:42 2020
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.2.13
GitCommit: 7ad184331fa3e55e52b890ea95e65ba581ae3429
runc:
Version: 1.0.0-rc10
GitCommit: dc9208a3303feef5b3839f4323d9beb36df0a9dd
docker-init:
Version: 0.18.0
GitCommit: fec3683
# docker info
Client:
Debug Mode: false
Server:
Containers: 2 (运行的容器)
Running: 2
Paused: 0
Stopped: 0
Images: 2
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.27.2.el7.x86_64
Operating System: CentOS Linux 7 (Core)
OSType: linux
Architecture: x86_64
CPUs: 4
Total Memory: 7.638GiB
Name: evescn
ID: XDCA:MY62:XMPC:5V5I:DHET:E7QE:KVT2:AAB5:YK27:ZK7V:NHRO:F66V
Docker Root Dir: /var/lib/docker
Debug Mode: false
Registry: https://index.docker.io/v1/ (docker加速地址)
Labels:
Experimental: false
Insecure Registries:
127.0.0.0/8
Live Restore Enabled: false
常用操作
docker search : Search the Docker Hub for images
docker pull : Pull an image or a repository from a registry
docker images : List images
docker create : Create a new container
docker start : Start one or more stopped containers
docker run : Run a command in a new container
docker attach : Attach to a running container
docker ps : List containers
docker logs : Fetch the logs of a container
docker restart : Restart a container
docker stop : Stop one or more running containers
docker kill : Kill one or more running containers
docker rm :Remove one or more containers
buxybox容器
- 运行容器
docker run --name b1 -it busybox
- 退出busybox后如何重新启动
docker start -ai busybox
非后台运行容器,需要是 -ai 连接上交互界面
- docker kill 和 docker stop区别
kill -9 和 kill 区别
docker exec -it XXX /bin/sh # 进入docker容器