Linux 下的 Docker 安装与使用
一、安装与配置
1.安装依赖包
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
2.设置阿里云镜像源
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
官方镜像地址为:https://download.docker.com/linux/centos/docker-ce.repo
3.安装 Docker-CE
重建 Yum 缓存。
安装 Docker-CE ,请执行一下命令进行安装:
sudo yum install -y docker-ce docker-ce-cli containerd.io
默认安装的是最新版的docker,如果要安装指定版本docker或者需要了解更多内容,请详见官方文档:https://docs.docker.com/engine/install/centos/
4.启动 Docker-CE
sudo systemctl enable docker
sudo systemctl start docker
5.[可选] 为 Docker 建立用户组
docker 命令与 Docker 引擎通讯之间通过 UnixSocket ,但是能够有权限访问 UnixSocket 的用户只有 root 和 docker 用户组的用户才能够进行访问,所以我们需要建立一个 docker 用户组,并且将需要访问 docker 的用户添加到这一个用户组当中来。
a). 建立 Docker 用户组
sudo groupadd docker
b).添加当前用户到 docker 组
sudo usermod -aG docker $USER
6.镜像加速配置
这里使用的是 阿里云提供的镜像加速 ,登录并且设置密码之后在左侧的 镜像加速器 可以找到专属加速器地址,复制下来。
然后执行以下命令(可以直接拷贝页面上的):
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["你的加速器地址"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
之后重新加载配置,并且重启 Docker 服务
systemctl daemon-reload
systemctl restart docker
二、配置 Docker 容器与镜像
1.拉取镜像
拉取微软在 Docker 上的 aspnetcore 镜像:
docker pull microsoft/aspnetcore
之后执行以下命令查看是否拉取成功:
[root@iZuf6148jq0xmy8zrk3pfbZ ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
microsoft/aspnetcore latest db030c19e94b 9 months ago 347MB
[root@iZuf6148jq0xmy8zrk3pfbZ ~]#
三、Docker 常用命令
1.拉取镜像
docker pull
2.删除容器
docker rm <容器名 or ID>
3.查看容器日志
docker logs -f <容器名 or ID>
4.查看正在运行的容器
docker ps
docker ps -a # 为查看所有的容器,包括已经停止的。
5.删除所有容器
docker rm $(docker ps -a -q)
6.停止、启动、杀死指定容器
docker start <容器名 or ID> # 启动容器
docker stop <容器名 or ID> # 启动容器
docker kill <容器名 or ID> # 杀死容器
7.查看所有镜像
docker images
8.拉取镜像
docker pull <镜像名:tag>
例如以下代码
docker pull sameersbn/redmine:latest
9.后台运行
docker run -d <Other Parameters>
例如
docker run -d -p 127.0.0.1:33301:22 centos6-ssh
10.暴露端口
一共有三种形式进行端口映射
docker -p ip:hostPort:containerPort # 映射指定地址的主机端口到容器端口
例如:docker -p 127.0.0.1:3306:3306 映射本机3306端口到容器的3306端口
docker -p ip::containerPort # 映射指定地址的任意可用端口到容器端口
例如:docker -p 127.0.0.1::3306 映射本机的随机可用端口到容器3306端口
docer -p hostPort:containerPort # 映射本机的指定端口到容器的指定端口
例如:docker -p 3306:3306 # 映射本机的3306端口到容器的3306端口
11.映射数据卷
docker -v /home/data:/opt/data # 这里/home/data 指的是宿主机的目录地址,后者则是容器的目录地址
四、GUI 管理配置
这里推荐使用 Portainer 作为容器的 GUI 管理方案。
官方地址:https://portainer.io/install.html
安装命令:
microsoft/aspnetcore latest db030c19e94b 9 months ago 347MB
[root@xmy ~]# docker volume create portainer_data
portainer_data
[root@xmy ~]# docker volume inspect portainer_data
[
{
"CreatedAt": "2019-06-03T15:58:06+08:00",
"Driver": "local",
"Labels": {},
"Mountpoint": "/var/lib/docker/volumes/portainer_data/_data",
"Name": "portainer_data",
"Options": {},
"Scope": "local"
}
]
[root@xmy ~]# docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer
Unable to find image 'portainer/portainer:latest' locally
latest: Pulling from portainer/portainer
d1e017099d17: Pull complete
0b1e707a06d2: Pull complete
Digest: sha256:d6cc2c20c0af38d8d557ab994c419c799a10fe825e4aa57fea2e2e507a13747d
Status: Downloaded newer image for portainer/portainer:latest
5b83f38cda980e146ee05d2d4769da601e9ef634daec67c617423907daf22758
[root@xmy ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5b83f38cda98 portainer/portainer "/portainer" 7 minutes ago Up 2 seconds 0.0.0.0:9000->9000/tcp agitated_hodgkin
访问你的 IP:9000 即可进入容器管理页面。
需要注意的是,为了安全启动容器后请立刻设置管理密码,否则容器为了安全会在5分钟之内停止。
如下:
五、yum卸载docker
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
如果yum报告没有安装这些软件包,也没关系。
在 /var/lib/docker/
中包括镜像、容器、卷和网络,卸载操作将被保留这个目录。如果你需要彻底清理机器,可以手工删除这个目录。
写在最后:
默认情况下,非 root 用户无法运行 Docker 命令。
那么如何以非特权用户身份使用 Docker,或者使用非root用户安装docker呢?
安装脚本需要root或sudo具有安装和使用 Docker 的权限。如果要授予非 root 用户访问 Docker 的权限,请参阅 Linux 的安装后步骤。Docker 也可以在没有root特权的情况下安装,或配置为在无根模式下运行。有关在无根模式下运行 Docker 的说明,请参阅以 非 root 用户身份运行 Docker 守护进程(无根模式)。
(END)
更多推荐
所有评论(0)