Docker容器化学习笔记(二)docker介绍与基础命令

1.Docker与虚拟机比较

与传统虚拟机比较,Docker启动速度快,占用体积小。
在这里插入图片描述

2. Docker组件

2.1 docker服务器与客户端

在这里插入图片描述

2.2 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 --help

4. Docker常用命令

4.1 镜像相关命令

4.1.1 查看镜像 【docker images】

docker images
#镜像名称	 标签(版本)  镜像ID			创建时间		  占用大小		
REPOSITORY    TAG       IMAGE ID       CREATED         SIZE
consul        latest    b74a0a01afc4   8 weeks ago     116MB

在这里使用docker images的时候遇到了一点问题。问题如下:
在这里插入图片描述
我随后使用service docker status查看dockers的运行状态,发现docker是 active(running)的。
当我用sudo service docker restart 命令重启docker后,发现docker images命令,成功!

4.1.2 搜索镜像【docker search [imageName]】

docker search <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]

4.1.3 拉取镜像【docker pull [imageName]】

docker pull <imageName>
# 下载centos7镜像
docker pull centos:7

4.1.4 删除镜像【docker rmi imageId】

# 按镜像id删除镜像
docker rmi imageId
# 删除所有镜像
docker rmi `docker images -q`

4.2 容器相关命令

4.2.1 查看容器【docker ps】

docker ps
# 查看停止的容器
docker ps -f status=exited

4.2.2 创建容器【docker run】

# 创建容器
docker run

命令参数:

-i:表示运行容器
-t:表示容器启动后进入其命令行。加入这两个参数后,容器创建就能登录进去。即分配一个伪终端。
--name:为创建的容器命名。
-v:表示目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录),可以使用多个"-v"做多个目录或文件映射。注意:最好做目录映射,在宿主机上做修改,然后共享到容器上。
-d:在run后面加上"-d"参数,则回创建一个守护式容器在后台运行(这样创建容器后不会自动登录容器,如果只加"-i-t"两个参数,创建后就会自动进入容器)。
-p:表示端口映射,前者是宿主机端口,后者是容器内的端口。可以做多个端口映射。
注:这里的宿主机都是相对于docker而言的。

  1. 以交互式方式创建容器
## 示例: 观察第二行的地址,发现从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
  1. 以守护式方式创建容器
# 创建容器
[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             mycentos2

4.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             mycentos

4.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.cfg

4.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
aaaaaaaaaaaaaaaaaa

4.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
posted @ 2021-10-30 17:33  Huathy  阅读(12)  评论(0)    收藏  举报  来源