Centos7部署docker及基本使用
安装docker
[root@docker ~]# yum install docker -y
[root@docker ~]# systemctl start docker
[root@docker ~]# systemctl enable docker
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.
查看docker版本
[root@docker ~]# docker version
Client:
Version: 1.13.1
API version: 1.26
Package version: docker-1.13.1-102.git7f2769b.el7.centos.x86_64
Go version: go1.10.3
Git commit: 7f2769b/1.13.1
Built: Mon Aug 5 15:09:42 2019
OS/Arch: linux/amd64
Server:
Version: 1.13.1
API version: 1.26 (minimum version 1.12)
Package version: docker-1.13.1-102.git7f2769b.el7.centos.x86_64
Go version: go1.10.3
Git commit: 7f2769b/1.13.1
Built: Mon Aug 5 15:09:42 2019
OS/Arch: linux/amd64
Experimental: false
查看docker基本信息
[root@docker ~]# docker info
Containers: 0
Running: 0
Paused: 0
Stopped: 0
Images: 0
Server Version: 1.13.1
Storage Driver: overlay2
Backing Filesystem: xfs
Supports d_type: false
Native Overlay Diff: false
Logging Driver: journald
Cgroup Driver: systemd
Plugins:
Volume: local
Network: bridge host macvlan null overlay
Swarm: inactive
Runtimes: docker-runc runc
Default Runtime: docker-runc
Init Binary: /usr/libexec/docker/docker-init-current
docker镜像下载
docker search : 从Docker Hub查找镜像
[root@docker ~]# docker search centos
INDEX NAME DESCRIPTION STARS OFFICIAL AUTOMATED
docker.io docker.io/centos The official build of CentOS. 5534 [OK]
docker.io docker.io/ansible/centos7-ansible Ansible on Centos7 122 [OK]
docker.io docker.io/jdeathe/centos-ssh CentOS-6 6.10 x86_64 / CentOS-7 7.6.1810 x... 111 [OK]
docker.io docker.io/consol/centos-xfce-vnc Centos container with "headless" VNC sessi... 99 [OK]
docker.io docker.io/centos/mysql-57-centos7 MySQL 5.7 SQL database server 62
docker.io docker.io/imagine10255/centos6-lnmp-php56 centos6-lnmp-php56 57 [OK]
docker.io docker.io/tutum/centos Simple CentOS docker image with SSH access 45
docker.io docker.io/centos/postgresql-96-centos7 PostgreSQL is an advanced Object-Relationa... 39
docker.io docker.io/kinogmt/centos-ssh CentOS with SSH 29 [OK]
docker.io docker.io/centos/php-56-centos7 Platform for building and running PHP 5.6 ... 22
docker.io docker.io/pivotaldata/centos-gpdb-dev CentOS image for GPDB development. Tag nam... 10
docker.io docker.io/nathonfowlie/centos-jre Latest CentOS image with the JRE pre-insta... 8 [OK]
docker.io docker.io/drecom/centos-ruby centos ruby 6 [OK]
docker.io docker.io/darksheer/centos Base Centos Image -- Updated hourly 3 [OK]
docker.io docker.io/mamohr/centos-java Oracle Java 8 Docker image based on Centos 7 3 [OK]
......
下载镜像
Usage: docker pull [OPTIONS] NAME[:TAG|@DIGEST]
[root@docker ~]# docker pull docker.io/centos
导入下载好的镜像
[root@docker ~]# docker load -i /opt/centos_latest.tar
e15afa4858b6: Loading layer 215.8 MB/215.8 MB
Loaded image ID: sha256:ff426288ea903fcf8d91aca97460c613348f7a27195606b45f19ae91776ca23d
查看镜像列表
[root@docker ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
<none> <none> ff426288ea90 19 months ago 207 MB
docker tag : 标记本地镜像,将其归入某一仓库。
docker tag [OPTIONS] IMAGE[:TAG] [REGISTRYHOST/][USERNAME/]NAME[:TAG]
[root@docker ~]# docker tag ff426288ea90 registry
[root@docker ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
registry latest ff426288ea90 19 months ago 207 MB
运行一个container
docker run :创建一个新的容器并运行一个命令
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
-a stdin: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项;
-d: 后台运行容器,并返回容器ID;
-i: 以交互模式运行容器,通常与 -t 同时使用;
-P: 随机端口映射,容器内部端口随机映射到主机的高端口
-p: 指定端口映射,格式为:主机(宿主)端口:容器端口
-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
--name="nginx-lb": 为容器指定一个名称;
--dns 8.8.8.8: 指定容器使用的DNS服务器,默认和宿主一致;
--dns-search example.com: 指定容器DNS搜索域名,默认和宿主一致;
-h "mars": 指定容器的hostname;
-e username="ritchie": 设置环境变量;
--env-file=[]: 从指定文件读入环境变量;
--cpuset="0-2" or --cpuset="0,1,2": 绑定容器到指定CPU运行;
-m :设置容器使用内存最大值;
--net="bridge": 指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型;
--link=[]: 添加链接到另一个容器;
--expose=[]: 开放一个端口或一组端口;
--volume , -v: 绑定一个卷
[root@docker ~]# docker run -dit registry:latest /bin/bash
abee1d0c618a5f0d89f51e1bc42e9646db56d1fca73eb847bf6a23c4f2c6817b
[root@docker ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
abee1d0c618a registry:latest "/bin/bash" 4 seconds ago Up 3 seconds confident_payne
进入/退出/杀死一个容器
docker attach :连接到正在运行中的容器。
docker attach [OPTIONS] CONTAINER
[root@docker ~]# docker attach abee1d0c618a
[root@abee1d0c618a /]# ls
anaconda-post.log dev home lib64 mnt proc run srv tmp var
bin etc lib media opt root sbin sys usr
[root@abee1d0c618a /]# exit
exit
这时发现通过exit退出容器。容器会关闭。
[root@docker ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
abee1d0c618a registry:latest "/bin/bash" 3 minutes ago Exited (0) 10 seconds ago confident_payne
[root@docker ~]# docker start abee1d0c618a
abee1d0c618a
[root@docker ~]# docker attach abee1d0c618a
[root@abee1d0c618a /]# #通过Ctrl+P+Q的方式退出。容器不会关闭
[root@docker ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
abee1d0c618a registry:latest "/bin/bash" 6 minutes ago Up 2 minutes confident_payne
docker kill :杀掉一个运行中的容器。
[root@docker ~]# docker kill abee1d0c618a
abee1d0c618a
获取容器日志
docker logs : 获取容器的日志
docker logs [OPTIONS] CONTAINER
-f : 跟踪日志输出
--since :显示某个开始时间的所有日志
-t : 显示时间戳
--tail :仅列出最新N条容器日志
[root@docker ~]# docker logs -f abee1d0c618a
删除容器
docker rm :删除一个或多少容器
docker rm [OPTIONS] CONTAINER [CONTAINER...]
-f :通过SIGKILL信号强制删除一个运行中的容器
-l :移除容器间的网络连接,而非容器本身
-v :-v 删除与容器关联的卷
[root@docker ~]# docker rm -f abee1d0c618a
abee1d0c618a
[root@docker ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES