CentOS7.9安装Docker和Docker-compose1.29.2

Docker   2023-12-09 14:15   35   0  

查看服务器版本:

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



博客评论
还没有人评论,赶紧抢个沙发~
发表评论
说明:请文明发言,共建和谐网络,您的个人信息不会被公开显示。