Docker学习01

安装Docker

删除旧版本

yum remove docker 
                  docker-client 
                  docker-client-latest 
                  docker-common 
                  docker-latest 
                  docker-latest-logrotate 
                  docker-logrotate 
                  docker-engine

初始化仓库(使用阿里云镜像)

yum install -y yum-utils

yum-config-manager 
    --add-repo 
    http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

安装docker引擎

yum install docker-ce docker-ce-cli containerd.io

启动docker

systemctl start docker

查看本地拉取的镜像

docker images

Docker的常用镜像命令

查看docker版本信息

docker version

显示docker的系统信息,包括镜像和容器的数量

docker info

帮助命令

docker 命令 --help
帮助文档:https://docs.docker.com/engine/reference

搜索镜像

docker search

下载镜像

docker pull #下载镜像
eg:
	docker pull mysql == docker pull docker.io/library/mysql:latest

删除指定容器

docker rmi -f imagesID 

Docker的常用容器命令

新建容器并启动

docker run [可选参数] image

# 参数命令
--name="Name" 容器命令,用来区分容器
-d 后台运行
-it 使用交互方式运行,进入容器查看内容(exit 退出容器并停止,ctrl+p+q退出容器不停止 )
-p 指定容器的端口 
	-p:8080:8080 主机端口:容器端口(常用)
	-p 端口号
-P 随机指定端口

进入容器

docker exec -it 名称orid /bin/bash

列出运行中的容器

docker ps 
docker ps -a 列出历史运行的容器
docker ps -n=? 显示最近运行的容器

删除容器

docker rm 容器id
docker rm -f $(docker ps -aq) #强制删除所有的

启动和停止容器的操作

docker start 容器id
docker restart 容器id
docker sotp 容器id
docker kill 容器id

查看容器的ip地址

docker inspect 名称
docker inspect --format='{{.NetworkSettings.IPAddress}}' 名称

常用其他命令

后台启动镜像

docker run -d 镜像名

note: docker 容器使用后台运行,就必须要有一个前台进程,docker 发现没有应用,就会自动停止

查看日志

docker logs -f -t --tail n 容器

查看容器内进程信息

docker top 容器id

查看镜像的元数据

docker inspect 容器id

进入当前正在运行的容器

# 方式一  进入容器后开启一个新的终端
docker exec -it 容器id /bin/bash

# 方式二  进入容器正在执行的终端
docker attach 容器id

从容器内拷贝文件到主机上

docker cp 容器id:file 目的主机路径

eg:
root@K8S-APP-T02:/root#docker ps
CONTAINER ID   IMAGE                COMMAND                  CREATED        STATUS        PORTS                                                  NAMES
8ff1ca894a6b   mysql:latest         "docker-entrypoint.s…"   23 hours ago   Up 23 hours   0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp   mysql
b118954accef   nacos/nacos-server   "bin/docker-startup.…"   23 hours ago   Up 23 hours   0.0.0.0:8848->8848/tcp, :::8848->8848/tcp              nacos
root@K8S-APP-T02:/root#docker exec -it 8ff1ca894a6b /bin/bash
root@8ff1ca894a6b:/# ls
bin  boot  dev	docker-entrypoint-initdb.d  entrypoint.sh  etc	home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
root@8ff1ca894a6b:/# cd /home
root@8ff1ca894a6b:/home# ls
root@8ff1ca894a6b:/home# touch test.txt
root@8ff1ca894a6b:/home# ls
test.txt
root@8ff1ca894a6b:/home# exit
exit
root@K8S-APP-T02:/root#docker ps
CONTAINER ID   IMAGE                COMMAND                  CREATED        STATUS        PORTS                                                  NAMES
8ff1ca894a6b   mysql:latest         "docker-entrypoint.s…"   23 hours ago   Up 23 hours   0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp   mysql
b118954accef   nacos/nacos-server   "bin/docker-startup.…"   23 hours ago   Up 23 hours   0.0.0.0:8848->8848/tcp, :::8848->8848/tcp              nacos
root@K8S-APP-T02:/root#docker cp 8ff1ca894a6b:/home/test.txt /home
root@K8S-APP-T02:/root#ls
anaconda-ks.cfg  Desktop  Documents  Downloads  initial-setup-ks.cfg  Music  Pictures  Public  Templates  Videos
root@K8S-APP-T02:/root#cd ..
root@K8S-APP-T02:/#cd home/
root@K8S-APP-T02:/home#ls
config  sysadmin  sys-config.txt  test.txt  viewer
root@K8S-APP-T02:/home#

# 拷贝是一个手动过程,未来我们使用-V 卷技术,可以实现
不论你在什么时候开始,重要的是开始之后就不要停止。 不论你在什么时候结束,重要的是结束之后就不要悔恨。
原文地址:https://www.cnblogs.com/yunhgu/p/14741534.html