Docker容器的安装和使用
Docker容器的安装和使用
安装:
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
或国内:curl -sSL https://get.daocloud.io/docker | sh
安装 Docker Engine-Community
sudo yum install docker-ce docker-ce-cli containerd.io
启动 Docker
sudo systemctl start docker
通过运行 hello-world 映像来验证是否正确安装了 Docker Engine-Community
sudo docker run hello-world
卸载 docker
yum remove docker-ce
rm -rf /var/lib/docker
Docker的使用
runoob@runoob:~$ docker run ubuntu:15.10 /bin/echo "Hello world"
Hello world
运行交互式的容器
通过 docker 的两个参数 -i -t,让 docker 运行的容器实现"对话"的能力:
runoob@runoob:~$ docker run -i -t ubuntu:15.10 /bin/bash
root@0123ce188bd8:/#
exit 退出
获取镜像
docker pull ubuntu
启动容器
docker run -it ubuntu /bin/bash
查看全部容器
docker ps -a
使用 docker start 启动一个已停止的容器:
docker start 2f75c7156a73
后台运行
docker run -itd --name ubuntu-test ubuntu /bin/bash
停止一个运行容器
docker stop <容器 ID>
进入容器
docker attach <容器 ID>
退出容器,不停止容器
docker exec bd499d2341e4 /bin/bash
导出和导入容器
导出: docker export 1e560fca3906 > ubuntu.tar
导入容器快照:cat docker/ubuntu.tar | docker import - test/ubuntu:v1
通过指定 URL 或者某个目录来导入:docker import http://example.com/exampleimage.tgz example/imagerepo
删除容器
docker rm -f <容器 ID>
运行一个 web 应用
runoob@runoob:~# docker pull training/webapp # 载入镜像
runoob@runoob:~# docker run -d -P training/webapp python app.py
-
-d:让容器在后台运行。
-
-P:将容器内部使用的网络端口随机映射到我们使用的主机上。
查看 WEB 应用容器
runoob@runoob:~# docker ps
CONTAINER ID IMAGE COMMAND ... PORTS
d3d5e39ed9d3 training/webapp "python app.py" ... 0.0.0.0:4999->5000/tcp
查看ip:4999可以看到
我们也可以通过 -p 参数来设置不一样的端口:
runoob@runoob:~$ docker run -d -p 5000:5000 training/webapp python app.py
docker ps查看正在运行的容器
runoob@runoob:~# docker ps
CONTAINER ID IMAGE PORTS NAMES
bf08b7f2cd89 training/webapp ... 0.0.0.0:5000->5000/tcp wizardly_chandrasekhar
d3d5e39ed9d3 training/webapp ... 0.0.0.0:4999->5000/tcp xenodochial_hoov
查看 WEB 应用程序日志
runoob@runoob:~$ docker logs -f id
* Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)
停止 WEB 应用容器
runoob@runoob:~$ docker stop <容器id>
wizardly_chandrasekhar
移除WEB应用容器
runoob@runoob:~$ docker rm <容器id>
wizardly_chandrasekhar