乐趣区

关于docker:Docker初体验

装置 docker

# 卸载旧的 docker
sudo yum remove docker \
    docker-client \
    docker-client-latest \
    docker-common \
    docker-latest \
    docker-latest-logrotate \
    docker-logrotate \
    docker-engine
                  
# 装置 yum,指定阿里的 docker 镜像源
sudo yum install -y yum-utils
sudo yum-config-manager \
    --add-repo \
    http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    
# 装置 docker
sudo yum install docker-ce docker-ce-cli containerd.io

# 启动 docker
sudo systemctl start docker

# 测试
sudo docker run hello-world

根本命令

docker version         #查看版本
docker info         #查看 docker 信息

镜像命令

docker images         #查看镜像
docker images -a     #查看全副镜像
docker images -q     #查看镜像 id

查找镜像

倡议到 dockerhub 上查找镜像

# docker search 镜像名
docker search mysql 
docker search mysql -f stars=3000 #依据条件过滤查找后果

拉取镜像

若须要指定版本镜像,到 dockerhub(https://registry.hub.docker.com/)查找

# docker pull 镜像名
docker pull mysql #默认拉取最新版本镜像
docker pull mysql:5.7 #拉取指定版本镜像

删除镜像

# docker rmi 镜像名 / 镜像 id 
docker rmi mysql #可指定镜像名或者是镜像 id
docker rmi -f d1165f221234 d1165f221234 d1165f221234 #移除多个镜像
docker rmi -f $(docker images -aq) #递归删除所有镜像

容器命令

docker pull centos # 有了镜像能力创立容器,linux,下载一个 centos 镜像

docker run [可选参数] images #创立容器并启动, 在没有下载该镜像的时候 docker 会默认下载
# 参数阐明
--name="Name"        容器名字 tomcat01 tomcat02 用来辨别容器
-d                    后盾形式运行
-it                    应用交互的形式运行,进入容器查看内容
-p                    指定让容器端口    -p 8080:8080
    -p ip: 主机端口: 容器端口
    -p 主机端口: 容器端口(主机)-p 容器端口
    容器端口
-P                    随机指定端口

# 测试,启动并进入容器
docker run -it centos /bin/bash
#从容器交互中退回主机
exit

列出所有的容器

# docker ps 命令
    # 列出以后正在运行的容器
-a    # 列出以后正在运行的容器 + 历史运行过的容器
-n=?    # 列出最近船舰的容器
-q    # 只列出容器编号

退出容器

exit # 间接进行容器并退出
CTRL + P + Q # 容器不进行退出

删除容器

# docker rm 容器 id                # 删除指定的容器,不能删除正在运行的容器
docker rm -f $(docker ps -aq)      # 删除所有的容器
docker ps -a -q|xargs docker rm # 删除所有的容器

启动和进行容器

docker start 容器 id     # 启动容器
docker restart 容器 id # 重启容器
docker stop 容器 id     # 进行容器
docker kill 容器 id     # 强制进行容器

罕用其余命令

docker run -d centos # 后盾运行 centos
# 问题:docker ps 发现 centos 进行了
# 常见的坑,docker 容器应用后盾运行,就必须要有一个前台过程,docker 发现没有利用,就会主动进行
# nginx 启动后,发现自己没有提供服务,就会立刻进行,就是没有程序了

查看日志

docker logs -tf --tail 10 容器 id # 查看以后容器的十条日志

# 编写一段 shell 脚本输入日志
docker run -d centos /bin/bash -c "while true;do echo helloworld;sleep 1;done"

# 显示日志
-tf           # 显示日志
--tail number # 显示日志条数

查看容器中过程信息

# docker top 容器 id
[root@localhost /]# docker top f395bc735fb6
UID                 PID                 PPID                C                   STIME     
root                126117              126099              0                   Aug12     
101                 126168              126117              0                   Aug12     

查看镜像的元信息

# docker inspect 容器 id
docker inspect f395bc735fb6

进入一个正在运行的容器

# 命令
# docker exec -it 容器 id bashShell # 进入容器后开启一个新的终端,能够在外面操作(罕用)# docker attach 容器 id # 进入容器正在执行的终端,不回启动新的过程

从容器拷贝文件到主机

# docker cp 容器 id:容器内门路 目的地的主机门路
# 测试
docker cp d63481102d0f:/usr/share/nginx/html/index.html /home
退出移动版