Docker入门笔记(1)
1、安装Docker
yum -y install docker-ce
2、查看Docker版本
[root@localhost ~]# docker -v Docker version 18.09.3, build 774a1f4
3、启动Docker
[root@localhost ~]# docker ps # docker服务尚未启用,此处测试 Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running? [root@localhost ~]# systemctl start docker # 启动Docker [root@localhost ~]# docker ps # 查看docker应用列表 CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3、修改Docker镜像源,/etc/docker/daemon.json写入以下内容
[root@localhost ~]# cat /etc/docker/daemon.json { "registry-mirrors": ["https://registry.docker-cn.com"] }
4、重启Docker
[root@localhost ~]# systemctl restart docker
5、下载镜像busybox测试
[root@localhost ~]# docker pull busybox Using default tag: latest latest: Pulling from library/busybox Digest: sha256:061ca9704a714ee3e8b80523ec720c64f6209ad3f97c0ff7cb9ec7d19f15149f Status: Image is up to date for busybox:latest [root@localhost ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE busybox latest d8233ab899d4 3 weeks ago 1.2MB
6、docker run :创建一个新的容器并运行一个命令
语法
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
OPTIONS说明:
-
-a stdin: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项;
-
-d: 后台运行容器,并返回容器ID;
-
-i: 以交互模式运行容器,通常与 -t 同时使用;
-
-p: 端口映射,格式为:主机(宿主)端口:容器端口
-
-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
-
--name="nginx-lb": 为容器指定一个名称;
-
--dns 8.8.8.8: 指定容器使用的DNS服务器,默认和宿主一致;
-
--dns-search example.com: 指定容器DNS搜索域名,默认和宿主一致;
-
-h "mars": 指定容器的hostname;
-
-e username="ritchie": 设置环境变量;
-
--env-file=[]: 从指定文件读入环境变量;
-
--cpuset="0-2" or --cpuset="0,1,2": 绑定容器到指定CPU运行;
-
-m :设置容器使用内存最大值;
-
--net="bridge": 指定容器的网络连接类型,支持 bridge/host/none/container:<name|id> 四种类型;
-
--link=[]: 添加链接到另一个容器;
-
--expose=[]: 开放一个端口或一组端口;
[root@localhost ~]# docker run -it busybox / # pwd / / # ll sh: ll: not found / # ls bin dev etc home proc root sys tmp usr var / # date Tue Mar 12 09:31:14 UTC 2019 / # echo "hello docker" hello docker / #
查看docker应用:
[root@localhost ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES e68ba125f9e3 busybox "sh" 9 seconds ago Up 8 seconds romantic_franklin
退出busybox,并查看docker应用
[root@localhost ~]# docker run -it busybox / # pwd / / # exit [root@localhost ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7、删除镜像(-f 强制删除)
[root@localhost ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES [root@localhost ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE busybox latest d8233ab899d4 3 weeks ago 1.2MB [root@localhost ~]# docker rmi -f d8233ab899d4 Untagged: busybox:latest Untagged: busybox@sha256:061ca9704a714ee3e8b80523ec720c64f6209ad3f97c0ff7cb9ec7d19f15149f Deleted: sha256:d8233ab899d419c58cf3634c0df54ff5d8acc28f8173f09c21df4a07229e1205 [root@localhost ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE
8、删除某个container
[root@localhost ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 598c5f3d52e0 nginx "nginx -g 'daemon of…" 7 minutes ago Up 7 minutes 0.0.0.0:8899->80/tcp myNginx [root@localhost ~]# docker stop myNginx myNginx [root@localhost ~]# docker rm myNginx myNginx
9、删除所有container
[root@localhost ~]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 9e377dc9fde3 nginx "nginx -g 'daemon of…" 25 minutes ago Exited (0) 24 minutes ago xNginx e68ba125f9e3 d8233ab899d4 "sh" 41 minutes ago Exited (0) 40 minutes ago romantic_franklin b042ee32107a d8233ab899d4 "sh" 43 minutes ago Exited (127) 41 minutes ago zealous_hermann e29fe83c5eb4 d8233ab899d4 "sh" 44 minutes ago Exited (0) 43 minutes ago fervent_galileo d1915c908b41 d8233ab899d4 "sh" 44 minutes ago Exited (0) 44 minutes ago practical_hoover 14c261d6051e d8233ab899d4 "echo “hello world”" 7 hours ago Exited (0) 7 hours ago thirsty_chaum 450982479c5c 9b9cb95443b5 "/bin/sh -c 'while t…" 7 hours ago Exited (137) 7 hours ago infallible_clarke 5627a01ee522 9b9cb95443b5 "/bin/bash" 7 hours ago Exited (127) 7 hours ago epic_brattain 485bddc78ae8 9b9cb95443b5 "/bin/echo 'Hello wo…" 7 hours ago Exited (0) 7 hours ago gallant_banzai 018b86f38fd5 9b9cb95443b5 "/bin/echo 'Hello wo…" 7 hours ago Exited (0) 7 hours ago inspiring_franklin [root@localhost ~]# docker rm $(docker ps -a -q) 9e377dc9fde3 e68ba125f9e3 b042ee32107a e29fe83c5eb4 d1915c908b41 14c261d6051e 450982479c5c 5627a01ee522 485bddc78ae8 018b86f38fd5 [root@localhost ~]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES