深入了解docker - Go语言中文社区

深入了解docker


本次实验的环境是Ubuntu。整个实验分为以下几个步骤:

一. 准备docker环境

1. 安装docker:

sudo apt install docker.io

2. 查看安装docker版本

docker -v

3. 查看docker是否启动

systemctl status docker 

若出现如下显示,则说明docker已经正常启动。

二. 运行镜像

1. 运行hello-world镜像

sudo docker run hello-world

2. 运行Ubuntu镜像

sudo docker run -it ubuntu bash

三. docker基本操作

1. 显示本地镜像库内容

sudo docker images

可以看见有刚才下载的hello-world镜像和ubuntu镜像。

2. 获得帮助

docker --help

3. 显示正在运行的容器

sudo docker ps

4. 显示所有容器(包括已中止)

sudo docker ps -a

可以看到包含已经中止的hello镜像和ubuntu镜像。

5. 继续运行原容器并进入

sudo docker restart $NAMES
sudo docker ps
sudo dockerr attach $NAMES

根据容器的NAMES属性来重新运行ubuntu容器。

四. mysql与容器化

1. 拉取mysql镜像

sudo docker pull mysql:5.7


此时再查看本地镜像,发现mysql出现了。

2. 构建docker镜像

首先新建文件夹mydock,然后在mydock目录下新建文件dockerfile。

dockerfile中输入如下内容。

然后构建镜像hello。

sudo docker build . -t hello


最后运行镜像:

sudo docker run -it --rm hello -H

2. 使用mysql容器

首先启动服务器:

sudo docker run -p 3306:3306 --name mysql2 -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7


然后启动mysql客户端:

sudo docker run -it --net host mysql:5.7 "sh"
mysql -h127.0.0.1 -P3306 -uroot -proot

3. 挂载卷保存db

查看数据库文件:

sudo docker exec -it mysql2 bash


dockerfile的VOLUME /var/lib/mysql含义:

sudo docker container prune -f
sudo docker volume prune -f
sudo docker volume ls 


创建卷并挂载到/var/lib/mysql目录:
这里运行remove命令时,发现直接添加sudo还是会报错,没有权限,所以先将当前用户加入到了docker用户组。

docker rm $(docker ps -a -q) -f -v
docker volume create mydb
docker run --name mysql2 -e MYSQL_ROOT_PASSWORD=root -v mydb:/var/lib/mysql -d mysql:5.7


然后启动客户端容器链接服务器:

docker run --name myclient --link mysql2:mysql -it mysql:5.7 bash
mysql -hmysql -P3306 -uroot -proot

使用–link连接两个容器,客户端容器内可以使用mysql这个别名访问服务器。

五. docker网络

1. 备制支持ifconfig和ping命令的ubuntu容器

docker run --name unet -it --rm ubuntu bash
apt-get update
apt-get install net-tools
apt-get install iputils-ping -y
ifconfig
ping  (host ip)


2. 启动另一个命令窗口,由容器制作镜像

sudo docker commit unet ubuntu:net

六. docker仓库

1. 启动仓库容器:

2. 镜像操作

首先拉取ubuntu:16.04镜像:

docker pull ubuntu:16.04


然后将镜像标记为localhost:5000/my-ubuntu,并将镜像推送到在localhost:5000运行的本地仓库:

docker tag ubuntu:16.04 localhost:5000/my-ubuntu
docker push localhost:5000/my-ubuntu


删除本地缓存ubuntu:16.04和localhost:5000/my-ubuntu 镜像:

docker image remove ubuntu:16.04
docker image remove localhost:5000/my-ubuntu


最后把localhost:5000/my-ubuntu镜像从仓库中拉取出来:

docker pull localhost:5000/my-ubuntu

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/leaff_/article/details/103571896
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢