本次实验的环境是Ubuntu。整个实验分为以下几个步骤:
sudo apt install docker.io
docker -v
systemctl status docker
sudo docker run hello-world
sudo docker run -it ubuntu bash
sudo docker images
可以看见有刚才下载的hello-world镜像和ubuntu镜像。
docker --help
sudo docker ps
sudo docker ps -a
sudo docker restart $NAMES
sudo docker ps
sudo dockerr attach $NAMES
sudo docker pull mysql:5.7
首先新建文件夹mydock,然后在mydock目录下新建文件dockerfile。
dockerfile中输入如下内容。
然后构建镜像hello。
sudo docker build . -t hello
sudo docker run -it --rm hello -H
首先启动服务器:
sudo docker run -p 3306:3306 --name mysql2 -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7
sudo docker run -it --net host mysql:5.7 "sh"
mysql -h127.0.0.1 -P3306 -uroot -proot
查看数据库文件:
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 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)
sudo docker commit unet ubuntu:net
首先拉取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