docker:容器技术软件

虚拟化软件  go语言

容器 container   能将一个软件放到里面运行 ---》装软件的地方,软件在docker容器里运行。会限制进程所使用的cpu、内存、磁盘IO、网络流量等资源。 可以限制资源使用


在centos7.9系统的去安装docker

[root@localhost ~]# hostnamectl  set-hostname  docker

[root@localhost ~]# su

[root@docker ~]# cat /etc/centos-release   查看centos系统的版本

CentOS Linux release 7.9.2009 (Core)

[root@docker ~]# cd  /etc/yum.repos.d/   进入yum存放仓库文件的目录

删除官方提供的仓库文件

[root@docker yum.repos.d]# rm -rf *


配置阿里云的centos7.9的源的仓库文件(软件下载网站)

[root@docker yum.repos.d]# curl  -O  http://mirrors.aliyun.com/repo/Centos-7.repo

[root@docker yum.repos.d]# ls

Centos-7.repo


安装yum相关的工具,下载docker-ce.repo文件

[root@docker ~]# yum install  yum-utils -y

[root@docker ~]#yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 下载安装docker的仓库文件

生成安装docker的缓存

[root@docker ~]#yum makecache fast

[root@docker ~]#yum -y install docker-ce   安装docker

[root@docker ~]#systemctl start docker     启动docker

[root@docker ~]#systemctl enable docker   设置开机启动

[root@docker yum.repos.d]# ps aux|grep docker 查看dockerd进程

root       8614  1.0  1.4 1554088 55156 ?       Ssl  11:38   0:00 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

root       8791  0.0  0.0 112824   980 pts/0    S+   11:38   0:00 grep --color=auto docker

关闭firewalld  禁止firewalld开机启动

[root@docker yum.repos.d]# systemctl stop firewalld

[root@docker yum.repos.d]# systemctl disable firewalld

禁用selinux

[root@docker yum.repos.d]# vim /etc/selinux/config

SELINUX=disabled

SELINUXTYPE=targeted

[root@docker yum.repos.d]# reboot  重启系统

[root@docker ~]# docker version  查看docker版本

Client: Docker Engine - Community

 Version:           26.1.4

 API version:       1.45

 Go version:        go1.21.11

 Git commit:        5650f9b

镜像 :是docker容器启动的软件所在的文件--》镜像文件理解为需要启动的app软件

需要下载nginx.tar镜像文件,然后上传到linux系统里,再导入

[root@docker ~]# ls

anaconda-ks.cfg  nginx.tar

[root@docker ~]# docker load -i nginx.tar  将nginx.tar镜像文件导入到docker软件里

cb4596cc1454: Loading layer  77.87MB/77.87MB

e53d016bbab1: Loading layer    113MB/113MB

[root@docker ~]# docker images  查看镜像

REPOSITORY   TAG       IMAGE ID       CREATED        SIZE

nginx        latest    bc649bab30d1   9 months ago   187MB

运行一个nginx的容器

[root@docker ~]# docker  run  -d  -p 80:80  --name sc-nginx-1  nginx

a5b7c61f5f02346ada8fb1cf5aea07e00ebbfa676a16885a847cc22d2cf425b1

先创建一个容器,然后启动容器

-d  容器进程在后台运行 daemon

-p  将容器发布出去,让外面的机器可以访问  publish  ---》端口映射--》宿主机和容器的端口之间的一个映射  map

    80:80  81:80 3307:3306

    前面的80是宿主机的端口,必须唯一

后面的80是容器的端口,可以一样

--name sc-nginx-1  指定容器的名字,必须唯一

nginx  使用的镜像文件的名字

docker  run = docker create + docker start

[root@docker ~]# docker ps 查看正在运行的容器

CONTAINER ID IMAGE COMMAND                CREATED    STATUS PORTS  NAMES                         

a5b7c61f5f02   nginx  "/docker-entrypoint.…"  3 seconds ago   Up 2 seconds   0.0.0.0:80->80/tcp, :::80->80/tcp   sc-nginx-1

在windows里访问linux机器的ip   192.168.159.142


一个容器在docker里运行,本质上在linux系统里就是一个进程  一个容器对应一个进程

[root@docker ~]# ps aux|grep container

proxy -proto tcp -host-ip :: -host-port 80 -container-ip 172.17.0.2 -container-port 80

root       1820  0.0  0.2 1236448 9872 ?        Sl   12:02   0:02 /usr/bin/containerd-shim-runc-v2 -namespace moby -id a5b7c61f5f02346ada8fb1cf5aea07e00ebbfa676a16885a847cc22d2cf425b1 -address /run/containerd/containerd.sock

root   13263  0.0  0.0 112824   980 pts/0 S+ 14:48   0:00 grep --color=auto container

[root@docker ~]# kill -9 1820

[root@docker ~]# docker ps

CONTAINER ID   IMAGE   COMMAND   CREATED   STATUS    PORTS     NAMES

[root@docker ~]# docker inspect sc-nginx-1  查看容器相关信息

docker: Error response from daemon: Conflict. The container name "/sc-nginx-1" is already in use by container "a5b7c61f5f02346ada8fb1cf5aea07e00ebbfa676a16885a847cc22d2cf425b1". You have to remove (or rename) that container to be able to reuse that name.

已经有了 直接docker start sc-nginx-1 就起来了

[root@docker ~]# docker ps -a  查看所有的容器(运行和退出)

CONTAINER ID   IMAGE  COMMAND CREATED STATUS           PORTS     NAMES

a5b7c61f5f02   nginx     "/docker-entrypoint.…"   3 hours ago   Exited (137) 3 minutes ago             sc-nginx-1

[root@docker ~]# docker create    -p 81:80  --name=sc-nginx-2  nginx  创建一个容器

6f864a3ab3e39a734670943ebcbf8b2020a74b88694b58afd6d049b4549c675d

[root@docker ~]# docker start  sc-nginx-2  启动容器

sc-nginx-2

获取mysql镜像

1. 登录阿里云Docker Registry

  docker login --username=fengkezhen registry.cn-hangzhou.aliyuncs.com

  Admin@123用于登录的用户名为阿里云账号全名,密码为开通服务时设置的密码。

您可以在访问凭证页面修改凭证密码。

[root@docker ~]# docker login --username=fengkezhen registry.cn-hangzhou.aliyuncs.com

2. 从Registry中拉取镜像

[root@docker ~]# docker pull registry.cn-hangzhou.aliyuncs.com/fengdy/mysql:5.7.41

[root@docker ~]# docker images

REPOSITORY                                       TAG       IMAGE ID       CREATED         SIZE

registry.cn-hangzhou.aliyuncs.com/fengdy/mysql   5.7.41    0018a8d83892   16 months ago   455MB

[root@docker ~]# docker tag 0018a8d83892  mysql:5.7.41  将一个镜像改名为另外一个名字,将registry.cn-hangzhou.aliyuncs.com/fengdy/mysql改名为mysql

启动MySQL容器

docker  run  -d  -p  3307:3306  --name sc-mysql-1  -e  MYSQL_ROOT_PASSWORD='sc@123456'   mysql:5.7.41

-e  MYSQL_ROOT_PASSWORD='sc@123456'   给容器传递一个环境变量 environment  给MySQL的root用户设置密码

[root@docker ~]# docker  exec  -it  sc-mysql-1  bash  进入容器内部

bash-4.2# mysql -uroot -p'sc@123456'   登录MySQL软件

mysql: [Warning] Using a password on the command line interface can be insecure.

Welcome to the MySQL monitor.  Commands end with ; or \g.

mysql> show databases;

+--------------------+

| Database           |

+--------------------+

| information_schema |

| mysql              |

| performance_schema |

| sys                |

+--------------------+

4 rows in set (0.00 sec)

docker 3大核心概念

镜像: image  是一个文件,里面包含了一个微型操作系统+核心代码程序+依赖库环境 -->镜像文件越小越好  ---》是人制作出来的。alpine

[root@docker ~]# docker save  -o mysql-5-7-41.tar  mysql:5.7.41

[root@docker ~]# ls

anaconda-ks.cfg  mysql-5-7-41.tar  nginx.tar

[root@docker ~]# docker rm sc-mysql-1

sc-mysql-1

删除镜像需要先停止使用这个镜像的容器,然后删除容器,再删除镜像

[root@docker ~]# docker rmi registry.cn-hangzhou.aliyuncs.com/fengdy/mysql:5.7.41

[root@docker ~]# docker load -i mysql-5-7-41.tar

Loaded image: mysql:5.7.41

[root@docker ~]# docker images

REPOSITORY   TAG       IMAGE ID       CREATED         SIZE

nginx        latest    bc649bab30d1   9 months ago    187MB

mysql        5.7.41    0018a8d83892   16 months ago   455MB

仓库 repository / Registry: 存放镜像的地方

              公共镜像仓库: 对外开放,任何人都可以访问

       私人镜像仓库:  自己把自己经常使用的镜像存放的地方 ---》horbor  、阿里云的ACR

容器 container : 运行镜像的地方,容器本质上是一个进程,需要消耗cpu、内存、磁盘、网络等资源

ubuntu里安装docker

1.安装依赖的软件

 sudo apt-get install     apt-transport-https     ca-certificates     curl     gnupg-agent     software-properties-common

2. Docker 的官方 GPG 密钥

 curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add -

3.下载中国科技技术大学的仓库文件

sudo add-apt-repository    "deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/$(lsb_release -cs)  stable"

4.安装docker

 sudo apt-get install docker-ce docker-ce-cli containerd.io

5.查看docker进程是否运行

feng@sc:~$ sudo ps aux|grep docker

root        3608  0.0  1.9 1913900 76928 ?       Ssl  09:17   0:00 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

feng        3904  0.0  0.0   6544  2304 pts/0    S+   09:24   0:00 grep --color=auto docker

ubuntu里默认安装好软件,自动启动并且设置开机启动

feng@sc:~$ systemctl status docker

● docker.service - Docker Application Container Engine

     Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; preset: enabled)

     Active: active (running) since Fri 2024-07-19 09:17:43 UTC; 7min ago

TriggeredBy: ● docker.socket

       Docs: https://docs.docker.com

containerd=/run/containerd/containerd.>

激活ubuntu系统里的root用户

1.给root用户设置密码

feng@sc:~$ sudo passwd root  给root用户设置密码

New password:

Retype new password:

passwd: password updated successfully

feng@sc:~$ su - root 切换到root用户登录

Password:

root@sc:~#

  • 8
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值