- 发布于
Docker基本使用
- Authors
- Name
- 田中原
docker基本使用
目录
启动docker
安装
以下的命令有的需要root权限,如果报错请使用root,或加sudo
1、添加yum源。
yum install epel-release –y
yum clean all# yum list
2、通过yum安装并运行Docker。
yum install docker-io –y
systemctl start docker
3、检查安装结果。
docker info
出现以下信息说明信息则表明安装成功。
启动
systemctl start docker.service
设置开机启动
systemctl enable docker.service
问题整理
docker ps
Cannot connect to the Docker daemon. Is the docker daemon running on this host?
ps aux | grep docker
root 17210 0.0 2.4 499624 24928 ? Ssl Sep06 0:26 /usr/bin/dockerd-current --add-runtime docker-runc=/usr/libexec/docker/docker-runc-current --default-runtime=docker-runc --exec-opt native.cgroupdriver=systemd --userland-proxy-path=/usr/libexec/docker/docker-proxy-current --selinux-enabled --log-driver=journald --signature-verification=false
root 17214 0.0 0.6 262960 6948 ? Ssl Sep06 0:02 /usr/bin/docker-containerd-current -l unix:///var/run/docker/libcontainerd/docker-containerd.sock --shim docker-containerd-shim --metrics-interval=0 --start-timeout 2m --state-dir /var/run/docker/libcontainerd/containerd --runtime docker-runc --runtime-args --systemd-cgroup=true
zeno 21958 0.0 0.0 112648 964 pts/0 R+ 14:35 0:00 grep --color=auto docker
查看进程,其实docker已经运行了。其实是权限不够,需要在加上sudo
.还有很多类似的命令,按照理解查看应该是不要root权限的,其实不然。docker info
,docker ps
,docker images
都会没有权限
Docker守护进程管理。
systemctl start docker #运行Docker守护进程
systemctl stop docker #停止Docker守护进程
systemctl restart docker #重启Docker守护进程
docker基本用法
2、镜像管理。
下载基础镜像,具体操作可参考如何下载docker镜像,本文使用的是来自阿里云仓库的Apache镜像。您可在阿里云docker市场搜索更多镜像。
docker pull registry.cn-hangzhou.aliyuncs.com/lxepoo/apache-php5
修改标签,由于阿里云仓库镜像的镜像名称很长,可以修改镜像标签以便记忆区分。
docker tag registry.cn-hangzhou.aliyuncs.com/lxepoo/apache-php5:latest aliweb:v1
查看已有镜像。
docker images
强制删除镜像。
docker rmi –f registry.cn-hangzhou.aliyuncs.com/lxepoo/apache-php5
3、容器管理。e121d5f99e1e是执行docker images命令查询到的IMAGE ID,使用docker run命令进入容器。
docker run –ti e121d5f99e1e /bin/bash
使用exit可以退出当前容器。run命令加上–d参数可以在后台运行容器,—name指定容器命名为apache。
docker run -d --name apache e121d5f99e1e
进入后台运行的容器。
docker exec -ti apache /bin/bash
将容器做成镜像。
docker commit containerID/containerName newImageName:tag
为了方便测试和恢复,先将源镜像运行起来后再做一个命名简单的镜像做测试。
docker commit 4c8066cd8c01 apachephp:v1
运行容器并将宿主机的8080端口映射到容器里去。
docker run -d -p 8080:80 apachephp:v1
在浏览器输入宿主机ip加8080端口访问测试
Docker镜像命令
docker rmi [镜像] #删除镜像
docker search #搜索镜像
docker images # 列出镜像
docker run 镜像名:标签 # 运行镜像 REPOSTITORY:TAG docker run --name web2 -d -p 81:80 nginx:v2
exit # 退出镜像
docker pull 镜像名 # 获取镜像
-i # 交互式操作
-t # 终端
-d # 让容器在后台运行。
-P [主机端口]:[容器端口] # 将容器内部使用的网络端口映射到我们使用的主机上。
-v [主机目录]:[容器目录]
docker commit -m="has update" -a="runoob" e218edb10161 runoob/ubuntu:v2
-m:提交的描述信息
-a:指定镜像作者
e218edb10161:容器ID
2runoob/ubuntu:v2:指定要创建的目标镜像名
docker commit #慎用,黑箱操作 容易使镜像变得臃肿
docker diff #比较改动
docker build [选项] <上下文路径/URL/->
Docker容器命令
docker rm [name/id] #删除docker容器 ,容器必须是停止的否则报错
docker start [name/id] #重新启动docker
docker ps #查看正在运行的docker进程
docker ps -a #查看所有已创建的容器
docker rm $(docker ps -a -q) #删除所有的终止容器 Mac
docker port [name/id] #查看进程端口映射
docker stop [name/id] #停止进程
docker logs [name/id] #查看容器内的标准输出
-f #实时日志
docker top [name/id] #查看容器内的的进程
docker inspect [name/id] #来查看Docker的底层信息。它会返回一个 JSON 文件记录着 Docker 容器的配置和状态信息。
docker inspect container_name | grep Mounts -A 20 #查看容器挂载目录
docker attach [name/id] #进入正在运行的docker进程中 NOTE: 这个链接终止后,容器会退出后台运行
docker exec -it [name/id] /bin/sh # 进入正在运行的docker进程中 常加参数 -it
sudo docker run -ti --rm --entrypoint="/bin/bash" jenkins -c "whoami && id" #查看容器拥有者
docker run -ti --rm --entrypoint="/bin/bash" jenkins -c "ls -la /var/jenkins_home" #查看容器内/var/jenkins_home拥有者