:docker 怎么安装呢?有哪些常用命令呢?希望下面的文章对大家有所帮助。安装 Docker
在 Ubuntu
- sudo apt-get updatesudo apt-get install docker
执行 sudo docker version,如果看到如下信息则表示安装成功
- hry@hry - VirtualBox: ~$ sudo docker version[sudo] password
- for hry: Client: Version: 1.12.6 API version: 1.24 Go version: go1.6.2 Git commit: 78d1802 Built: Tue Jan 31 23 : 35 : 14 2017 OS / Arch: linux / amd64Server: Version: 1.12.6 API version: 1.24 Go version: go1.6.2 Git commit: 78d1802 Built: Tue Jan 31 23 : 35 : 14 2017 OS / Arch: linux / amd64
Docker 命令前置条件添加用户到 docker 用户组,这样在执行 Docker 时,就不需要每次都输入 sudo
- sudo gpasswd -a hry docker# 重启系统sudo reboot
由于 docker 被墙,国内访问困难。
为了解决这个问题可以通过 DaoCloud 加速:
DaoCloud 官网注册账号:http://www.daocloud.io/ 注册帐号,登录 DaoCloud 后进入 "控制台"—>"加速器",复印页面内容在 linux 中执行 Docker 服务命令查看 docker 信息
- hry@hry - VirtualBox: ~$ docker infoContainers: 3 Running: 0 Paused: 0 Stopped: 3Images: 3Server Version: 1.12.6Storage Driver: aufs Root Dir: /var/lib / docker / aufs Backing Filesystem: extfs Dirs: 19 Dirperm1 Supported: trueLogging Driver: json - fileCgroup Driver: cgroupfsPlugins: Volume: local Network: bridge overlay host nullSwarm: inactiveRuntimes: runcDefault Runtime: runcSecurity Options: apparmor seccompKernel Version: 4.8.0 - 39 - genericOperating System: Ubuntu 16.04.2 LTSOSType: linuxArchitecture: x86_64CPUs: 1Total Memory: 1.953 GiBName: hry - VirtualBoxID: ZY66: YXDS: GROT: LYZZ: SYSR: UUF7: KELB: MH3X: UDVA: 27FZ: GCOS: NUNVDocker Root Dir: /var/lib / dockerDebug Mode(client) : falseDebug Mode(server) : falseRegistry: https: //index.docker.io/v1/WARNING: No swap limit supportInsecure Registries: 127.0.0.0/8
启动 docker
- sudo service docker start
关闭 docker
- sudo service docker stop
Docker 镜像命令:查看 images
sudo docker images
- hry@hry-VirtualBox:~$ sudo docker images REPOSITORY TAG IMAGE ID CREATED SIZEredis-my latest cdc4ae18184e 22 hours ago 182.9 MBredis latest 1a8a9ee54eb7 2 weeks ago 182.9 MBdockercloud/hello-world latest 04b44316b6af 2 weeks ago 30.83 MB
列表参数如下
REPOSITORY : 指明镜像来自于哪个仓库 TAG : 镜像的标记。 IMAGE ID : 镜像的 ID 值,该值是唯一的,有相同 ID 值的镜像是同一个镜像 CREATED : 镜像的创建时间。 VIRTUAL SIZE : 镜像的大小搜索镜像
sudo docker search 镜像
- hry@hry - VirtualBox: ~$ sudo docker search jdkNAME DESCRIPTION STARS OFFICIAL AUTOMATEDopenjdk OpenJDK is an open - source implementation o...325[OK] jboss / base - jdk 26[OK] ingensi / oracle - jdk Official Oracle JDK installed on centos.20[OK] airdock / oracle - jdk Docker Image
- for Oracle Java SDK(8 and 7)...15[OK] n3ziniuka5 / ubuntu - oracle - jdk Ubuntu with Oracle JDK.Check tags
- for ver...11[OK] delitescere / jdk Minimal Zulu OpenJDK 8[OK] jtech / oracle - jdk A Docker image based on the smallest Linux...3[OK] picoded / ubuntu - openjdk - 8 - jdk Ubuntu 16.04 LTS,
- with openjdk - 8 - jdk insta...2[OK] jckrz / debian - oracle - jdk Vanilla Debian + Oracle JDK 1[OK] sbminimal / docker - ubuntu - jdk Docker Image containing Ubuntu with oracle...1[OK] vaysman / jdk Latest Ubuntu with JDK 0[OK] pinterb / jdk Oracle JDK 0[OK] ping2ravi / jdk All Java / JDK Versions 0[OK] softgarden / jdk jdk 0[OK]
下载镜像
sudo docker pull 镜像
- hry@hry - VirtualBox: ~$ sudo docker pull openjdkUsing
- default tag:
- latestlatest:
- Pulling from library / openjdk5040bd298390: Already exists fce5728aad85: Pull complete 76610ec20bf5: Pull complete 60170fec2151: Pull complete e98f73de8f0d: Pull complete 11f7af24ed9c: Pull complete c39ff935bbe4: Pull complete 6e03296a7302: Pull complete Digest: sha256: 1f49840bf143c4d6394b4db4fc5bf0526deac5afc5d738915d8a5b51e0b3e43fStatus: Downloaded newer image
- for openjdk: latest
删除镜像
sudo docker rmi 镜像
- sudo docker rmi 8dde5631d4aa
Docker 容器命令根据镜像创建容器,并启动
如果镜像把比作类,则容器就是对象。通过镜像创建容器
- hry@hry-VirtualBox:~$ sudo docker run --name test_redis -itd 1a8a9ee54eb764024a8a158b276f6a8c5069343cf862add88d2e52e80537246449894a47e768
启动参数
–name 参数是为容器取得名称 -i:表示以 "交互模式" 运行容器 -t:表示容器启动后会进入其命令行 -d:参数能让一个容器以守护态运行查看运行中的容器列表
- hry@hry-VirtualBox:~$ sudo docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES64024a8a158b 1a8a9ee54eb7 "docker-entrypoint.sh" 3 minutes ago Up 3 minutes 6379/tcp test_redis7e7ee9d4ab30 04b44316b6af "/bin/sh -c 'php-fpm " 5 minutes ago Up 5 minutes 80/tcp teest_hellowold
列表说明
CONTAINER ID:启动的时候生成的 ID IMAGE:该容器使用的镜像 COMMAND:容器启动时调用的命令 CREATED:容器创建时间 STATUS:容器的状态 PORTS:容器系统使用的端口号 NAMES:容器自定义名称启动容器
sudo docker start container-name/container-id
- sudo docker start 64024a8a158b
停止容器
sudo docker stop container-name/container-id
- sudo docker stop 64024a8a158b
查看容器的日志
sudo docker logs container-name/container-id
- hry@hry - VirtualBox: ~$ sudo docker logs 64024a8a158b1: C 02 Mar 11 : 51 : 27.851#Warning: no config file specified,
- using the
- default config.In order to specify a config file use redis - server / path / to / redis.conf _._ _. - ``__ '' - ._ _. - ```.`_.'' - ._ Redis 3.2.8(00000000 / 0) 64 bit. - ``. - ```.```\ / _.,
- _ '' - ._(' , .-` | `, ) Running in standalone mode |`-._`-...-` __...-.``-._|'`_. - '| Port: 6379 | `-._ `._ / _.-' | PID: 1` - ._` - ._` - . / _. - ' _.-' | ` - ._` - ._` - .__. - ' _.-'_. - '| | `-._`-._ _.-'_. - ' | http://redis.io `-._ `-._`-.__.-'_. - ' _.-' | ` - ._` - ._` - .__. - ' _.-'_. - '| | `-._`-._ _.-'_. - ' | `-._ `-._`-.__.-'_. - ' _.-'` - ._` - .__. - ' _.-'` - ._ _. - ' `-.__.-'1 : M 02 Mar 11 : 51 : 27.873#WARNING: The TCP backlog setting of 511 cannot be enforced because / proc / sys / net / core / somaxconn is set to the lower value of 128.1 : M 02 Mar 11 : 51 : 27.873#Server started, Redis version 3.2.81 : M 02 Mar 11 : 51 : 27.873#WARNING overcommit_memory is set to 0 ! Background save may fail under low memory condition.To fix this issue add 'vm.overcommit_memory = 1'to / etc / sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1'
- for this to take effect.1 : M 02 Mar 11 : 51 : 27.873#WARNING you have Transparent Huge Pages(THP) support enabled in your kernel.This will create latency and memory usage issues with Redis.To fix this issue run the command 'echo never > /sys/kernel/mm/transparent_hugepage/enabled'as root, and add it to your / etc / rc.local in order to retain the setting after a reboot.Redis must be restarted after THP is disabled.1 : M 02 Mar 11 : 51 : 27.873 * The server is now ready to accept connections on port 6379
登录容器
sudo docker exec -it container-name/container-id bash
- hry@hry-VirtualBox:~$ sudo docker exec -it 64024a8a158b bashroot@64024a8a158b:/data#
使用 exit 可以退出容器
列出一个容器里面被改变的文件或者目录
$docker diff container-name/container-id
- hry@hry-VirtualBox:~$ sudo docker diff 64024a8a158b C /rootA /root/.bash_history
显示一个运行的容器里面的进程信息
docker top container-name/container-id
- hry@hry-VirtualBox:~$ sudo docker top 64024a8a158bUID PID PPID C STIME TTY TIME CMDvboxadd 6061 6048 0 19:51 pts/2 00:00:01 redis-server *:6379hry@hry-VirtualBox:~$
从容器里面拷贝文件 / 目录到本地一个路径
docker cp (container-name/container-id):/container_path path
- hry@hry-VirtualBox:~$ docker cp 64024a8a158b:/root/.bash_history history
端口映射
因为容器中运行的软件所使用的端口,在本机和本机的局域网是不能访问的,所以将 docker 容器中的端口映射到当前的端口上。
映射容器的 6379 端口到本机的 6378 端口,如下
- docker run -d -p 6378:6379 --name port-redis redis
#### 删除容器
删除单个容器
- sudo docker rm container-id
删除所有容器
- sudo docker rm `sudo docker ps -a -q`
就爱阅读 www.92to.com 网友整理上传, 为您提供最全的知识大全, 期待您的分享,转载请注明出处。
来源: http://www.92to.com/bangong/2017/03-04/18064045.html