查看服务器版本:
cat /etc/redhat-release uname -r
安装相关组件:
sudo yum update yum - y install gcc yum -y install gcc-c++ yum install -y yum-utils sudo yum install -y yum-utils device-mapper-persistent-data lvm2
卸载旧版本:
yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine
设置阿里云镜像:
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
更新yum软件包索引:
yum makecache fast
安装Docker CE和docker-ce-cli:
yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin
安装 Docker Compose:
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose//添加执行权限
查看进程:
ps -ef|grep docker
启动docker:
systemctl start docker
关闭docker:
systemctl stop docker
查看docker版本:
docker version
卸载docker:
systemctl stop docker //关闭docker服务 yum remove docker-ce docker-ce-cli containerd.io docker-compose-plugin //卸载Docker Engine, CLI, Containerd和Docker Compose包
卸载docker:
systemctl stop docker yum remove docker-ce docker-ce-cli containerd.io rm -rf /var/lib/docker rm -rf /var/lib/containerd
主机上的映像、容器、卷或自定义配置文件不会自动删除。删除所有映像、容器和卷:
rm -rf /var/lib/docker rm -rf /var/lib/containerd
测试hello-world:
docker pull hello-world docker run hello-world
重启docker:
sudo systemctl start docker sudo systemctl enable docker
部署Docker镜像实例:
1.创建Docker Compose配置文件:
mkdir /docker cd /docker vim docker-compose.yml
2.编写Docker Compose配置文件:
version: '3' services: my-web-app: image: nginx ports: - "80:80"
3.启动Docker镜像:
docker-compose up -d
4.查看Docker容器状态:
docker-compose ps
5.访问:http://0.0.0.0:80
Docker常用命令:
docker images查看docker镜像列表 docker restart 重启映像 docker repository仓库 docker containers容器 docker host宿主机 docker daemon守护进程 docker client客户端 docker ps 查看当前正在运行的容器 docker ps -a查看所有容器的状态 docker start/stop id/name启动/停止某个容器 docker attach id进入某个容器(使用exit退出后容器也跟着停止运行) docker exec -ti id启动一个伪终端以交互式的方式进入某个容器(使用exit退出后容器不停止运行) docker images查看本地镜像 docker rm id/name删除某个容器 docker rmi id/name删除某个镜像 docker run --name test -ti ubuntu /bin/bash复制ubuntu容器并且重命名为test且运行,然后以伪终端交互式方式进入容器,运行bash docker build -t soar/centos:7.1 . 通过当前目录下的Dockerfile创建一个名为soar/centos:7.1的镜像 docker run -d -p 2222:22 --name test soar/centos:7.1以镜像soar/centos:7.1创建名为test的容器,并以后台模式运行,并做端口映射到宿主机2222端口,P参数重启容器宿主机端口会发生改变 docker logs -f id查看日志 docker run就会启动一个容器,容器跟容器之间是互相隔离的,每一个容器都是一个完整的运行环境。 docker exec -it {id/name} /bin/bash进入容器的bash控制台 sudo docker update [id] --restart=always设置容器自启动
Docker run的参数解析:
docker run -p 3306:3306 --name mysql \ -v /mydata/mysql/log:/var/log/mysql \ -v /mydata/mysql/data:/var/lib/mysql \ -v /mydata/mysql/conf:/etc/mysql \ -e MYSQL_ROOT_PASSWORD=root \ -d mysql:5.7
参数说明:
-p 3306:3306:将容器的 3306 端口映射到主机的 3306 端口
-name:容器名称
-v /mydata/mysql/conf:/etc/mysql:将配置文件夹挂载到主机
-v /mydata/mysql/log:/var/log/mysql:将日志文件夹挂载到主机
-v /mydata/mysql/data:/var/lib/mysql/:将配置文件夹挂载到主机
-e MYSQL_ROOT_PASSWORD=root:初始化 root 用户的密码
-d是后台启动
-v:将linux本地文件与docker的指定文件绑定,修改本地文件会同步docker文件,修改配置就方便多了
-d: 分离/后台模式: 在后台运行容器,并返回容器ID,类似screen -d 服务名,运行python定时任务时常使用
所谓在后台运行就是还可以继续在当前终端运行其他命令而不会影响分离的那个服务
-i: 以交互模式运行容器,通常与 -t 同时使用
-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用
--name="xxx": 为容器指定一个名称
/bin/bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash。
设置docker repo的yum位置,配置推拉镜像URL:
官方源地址比较慢:
sudo yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo
推荐使用阿里云地址:
sudo yum-config-manager \ --add-repo \ http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
报错:error pullina image configuration: download failed after attempts=6: dial tcp 104.18.122 25:443: i/o timeout(拉取镜像超时,需要更新镜像地址)
解决:编辑文件:vi /etc/docker/daemon.json
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://yxzrazem.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker