- 1.Docker与虚拟机比较
- 2. Docker组件
- 2.1 docker服务器与客户端
- 2.2 docker镜像与容器
- 2.3 Registry注册中心
- 3 Docker安装与启动
- 3.1 安装
- 安装步骤
- 设置为国内镜像
- 3.2 docker服务启动停止状态查看
- 4. Docker常用命令
- 4.1 镜像相关命令
- 4.1.1 查看镜像 【docker images】
- 4.1.2 搜索镜像【docker search [imageName]】
- 4.1.3 拉取镜像【docker pull [imageName]】
- 4.1.4 删除镜像【docker rmi imageId】
- 4.2 容器相关命令
- 4.2.1 查看容器【docker ps】
- 4.2.2 创建容器【docker run】
- 命令参数:
- 4.2.3 停止容器【docker stop id/name】
- 4.2.4 启动容器【docker start id/name】
- 4.2.5 文件拷贝【docker cp source target】
- 4.2.6 目录挂载【docker run -v 宿主机目录:容器目录】
- 4.2.7 查看容器信息(IP地址)【docker inspect 容器name/id】
- 4.2.8 删除容器【docker rm 容器Name/id】
与传统虚拟机比较,Docker启动速度快,占用体积小。
镜像是构建容器的基础。
2.3 Registry注册中心用于保存用户构建的镜像。分公有和私有。
3 Docker安装与启动 3.1 安装 安装步骤# 更新yum包 sudo yum update # 安装需要的软件包,yum-util提供yum-config-manager功能,另外两个功能是devicemapper驱动依赖的。 sudo yum install -y yum-utils device-mapper-persistent-data lvm2 # 设置yum源为阿里云 sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo # 安装docker sudo yum install docker-ce # 安装后查看docker版本 docker -v设置为国内镜像
步骤:
# 编辑daemon.json文件
vi /etc/docker/daemon.json
# 在该文件中输入如下内容:
{
"registry-mirrors": ["https://tnxkcso1.mirror.aliyuncs.com"]
}
# 或者是http://docker.mirrors.ustc.edu.cm
3.2 docker服务启动停止状态查看
systemctl 命令是系统服务管理器的命令
# 启动docker systemctl start docker # 停止docker systemctl stop docker # 重启docker systemctl restart docker # 查看docker状态 systemctl status docker # 设置docker开机自启动 systemctl enable docker # 查看docker概要信息 docker info # 查看docker 帮助文档 docker --help4. Docker常用命令 4.1 镜像相关命令 4.1.1 查看镜像 【docker images】
docker images #镜像名称 标签(版本) 镜像ID 创建时间 占用大小 REPOSITORY TAG IMAGE ID CREATED SIZE consul latest b74a0a01afc4 8 weeks ago 116MB
4.1.2 搜索镜像【docker search [imageName]】在这里使用docker images的时候遇到了一点问题。问题如下:
我随后使用service docker status查看dockers的运行状态,发现docker是 active(running)的。
当我用sudo service docker restart 命令重启docker后,发现docker images命令,成功!
docker search4.1.3 拉取镜像【docker pull [imageName]】# 示例: [root@localhost ~]# docker search eureka #镜像名称 镜像描述 星星 是否官方 是否由dockerHub自动构建流所创建的 NAME DEscriptION STARS OFFICIAL AUTOMATED springcloud/eureka Spring Cloud Eureka Server 74 netflixoss/eureka Eureka NetflixOSS container image 69 [OK]
docker pull4.1.4 删除镜像【docker rmi imageId】# 下载centos7镜像 docker pull centos:7
# 按镜像id删除镜像 docker rmi imageId # 删除所有镜像 docker rmi `docker images -q`4.2 容器相关命令 4.2.1 查看容器【docker ps】
docker ps # 查看停止的容器 docker ps -f status=exited4.2.2 创建容器【docker run】
# 创建容器 docker run命令参数:
-i:表示运行容器
-t:表示容器启动后进入其命令行。加入这两个参数后,容器创建就能登录进去。即分配一个伪终端。
--name:为创建的容器命名。
-v:表示目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录),可以使用多个"-v"做多个目录或文件映射。注意:最好做目录映射,在宿主机上做修改,然后共享到容器上。
-d:在run后面加上"-d"参数,则回创建一个守护式容器在后台运行(这样创建容器后不会自动登录容器,如果只加"-i-t"两个参数,创建后就会自动进入容器)。
-p:表示端口映射,前者是宿主机端口,后者是容器内的端口。可以做多个端口映射。
注:这里的宿主机都是相对于docker而言的。
- 以交互式方式创建容器
## 示例: 观察第二行的地址,发现从localhost变了,表示已经从宿主机到了docker容器的命令行。并且在这里输入docker ps是没有用的。 [root@localhost ~]# docker run -it --name=mycentos centos:7 /bin/bash [root@18ae6d4771c0 /]# docker ps bash: docker: command not found #### 使用exit命令退出容器 [root@18ae6d4771c0 /]# exit exit # 注意:以交互式方式运行的容器,当使用exit命令退出时,容器也会退出。 [root@localhost ~]# docker ps -a ConTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 18ae6d4771c0 centos:7 "/bin/bash" 4 minutes ago Exited (127) about a minute ago mycentos
- 以守护式方式创建容器
# 创建容器 [root@localhost ~]# docker run -di --name mycentos2 centos:7 299409ff68afa7be21e2e7573c6e9e7e55624f567cfdd2db8c55e673909d097e # 查看容器状态 [root@localhost ~]# docker ps ConTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 299409ff68af centos:7 "/bin/bash" 29 seconds ago Up 29 seconds mycentos2 # 进入容器 [root@localhost ~]# docker exec -it mycentos2 /bin/bash [root@299409ff68af /]# exit exit # 注意:以守护式方式创建的容器,在退出之后是仍然在运行的。 [root@localhost ~]# docker ps ConTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 299409ff68af centos:7 "/bin/bash" 2 minutes ago Up 2 minutes mycentos24.2.3 停止容器【docker stop id/name】
[root@localhost ~]# docker ps ConTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 299409ff68af centos:7 "/bin/bash" 22 hours ago Up 22 hours mycentos2 [root@localhost ~]# docker stop mycentos2 mycentos2 [root@localhost ~]# docker ps ConTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES [root@localhost ~]#4.2.4 启动容器【docker start id/name】
[root@localhost ~]# docker start mycentos mycentos [root@localhost ~]# docker ps ConTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 18ae6d4771c0 centos:7 "/bin/bash" 22 hours ago Up 3 seconds mycentos4.2.5 文件拷贝【docker cp source target】
docker cp filepath 容器id/name:path
docker cp 容器id/name:path path/name
# 文件拷入示例: [root@localhost ~]# dir anaconda-ks.cfg [root@localhost ~]# docker cp anaconda-ks.cfg mycentos:/usr/local [root@localhost ~]# docker exec -it mycentos /bin/bash [root@18ae6d4771c0 /]# cd /usr/local [root@18ae6d4771c0 local]# dir anaconda-ks.cfg bin etc games include lib lib64 libexec sbin share src # 文件拷出示例: [root@localhost ~]# docker cp mycentos:/usr/local/anaconda-ks.cfg anaconda-ks2.cfg [root@localhost ~]# dir anaconda-ks2.cfg anaconda-ks.cfg4.2.6 目录挂载【docker run -v 宿主机目录:容器目录】
[root@localhost ~]# docker run -di --name=mycentos3 -v /usr/local/myhtml:/usr/local/myhtml centos:7 bd3b77ae40326fc46bfeaa8c35847138a72f583cc2fbb1ef3e916cea502a143f [root@localhost ~]# cd /usr/local/myhtml [root@localhost myhtml]# dir [root@localhost myhtml]# ls [root@localhost myhtml]# vi test [root@localhost myhtml]# ls test [root@localhost myhtml]# docker exec -it mycentos3 /bin/bash [root@bd3b77ae4032 /]# cd /usr/local/myhtml [root@bd3b77ae4032 myhtml]# ls test [root@bd3b77ae4032 myhtml]# cat test aaaaaaaaaaaaaaaaaa4.2.7 查看容器信息(IP地址)【docker inspect 容器name/id】
查看容器信息:docker inspect 容器Name/Id
查看IP:docker inspect --format={{.NetworkSettings.IPAddress}} 容器Name/Id
[root@localhost myhtml]# docker inspect mycentos3
# 省略
[root@localhost myhtml]# docker inspect --format={{.NetworkSettings.IPAddress}} mycentos3
172.17.0.3
4.2.8 删除容器【docker rm 容器Name/id】
[root@localhost myhtml]# docker rm mycentos3 mycentos3 [root@localhost myhtml]# docker ps -a ConTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 299409ff68af centos:7 "/bin/bash" 22 hours ago Exited (137) 36 minutes ago mycentos2 18ae6d4771c0 centos:7 "/bin/bash" 22 hours ago Up 33 minutes mycentos



