安装:
sudo yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin
注意:
若yum源存在问题,则可能出现以下报错信息:
No package docker-ce available.
No package docker-ce-cli available.
No package containerd.io available.
No package docker-compose-plugin available.
解决方案:
安装yum-utils,它提供了yum-config-manager,可用来管理yum源。
sudo yum install -y yum-utils
执行以下指令添加源,并重新执行安装指令。
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
启动:
sudo systemctl start docker
通过 hello-world 镜像来验证:
sudo docker run hello-world
常用指令:
查看所有镜像:
sudo docker images
从dockerhub拉取镜像:
sudo docker pull ubuntu:18.04
删除镜像:
sudo docker rmi <镜像ID或镜像名:Tag>
查看所有容器:
sudo docker ps -a
查看正在运行的容器:
sudo docker ps
指定镜像生成并启动进入容器:
sudo docker run -it -p 8000:800 --name <新容器名> <镜像ID或镜像名>
-p:端口映射,把host的8000端口映射到container的800端口,-p可重复指派
--name:容器名命名为test
-d:加上此参数则只后台启动不会进入容器
-i:交互式操作。
-t:终端。
开关重启已由镜像生成的容器:
sudo docker start <容器 ID或容器名>
sudo docker stop <容器 ID或容器名>
sudo docker restart <容器 ID或容器名>
进入开启的容器:
sudo docker exec -it <容器 ID或容器名> /bin/sh
退出容器:
exit
删除容器:
sudo docker rm -f <容器 ID或容器名>
从容器导出到镜像:
docker commit -m="has update" -a="runoob" <容器 ID或容器名> <镜像名:标签>
-m: 提交的描述信息
-a: 指定镜像作者
导出镜像到文件:
sudo docker save -o test.tar 镜像名:标签
从文件导入镜像:
sudo docker load -i test.tar
导出容器到文件:
sudo docker export 1e560fca3906 > ubuntu.tar
从文件导入容器:
sudo docker import ubuntu.tar ubuntu:tag
ubuntu:tag分别为容器名和标签
从容器拷贝文件到主机:
docker cp 容器名:/usr/local/tomcat/webapps/test/js/test.js /opt
登录dockerhub:
sudo docker login -u 用户名 -p 密码
上传镜像:
sudo docker push 用户名/cowrie:mysql
注:上传的镜像名要对应docker hub上的账户名和仓库名!
登出:
sudo docker logout
开启远程访问(ubuntu):
vim /lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
sudo systemctl daemon-reload
sudo service docker restart
容器流量捕获:
sudo docker inspect --format "{{.State.Pid}}" container_id/name 得到pid
sudo nsenter -n -t pid